## Tag List Report

The following document contains the listing of user tags found in the code. Below is the summary of the occurrences per tag.

Tag Class | Total number of occurrences | Tag strings used by tag class
--- | --- | ---
@todo | 1 | @todo
TODO | 56 | TODO

Each tag is detailed below:

### @todo

Number of occurrences found in the code: 1

org.apache.myfaces.shared_orchestra.renderkit.html.HtmlRenderer | Line
--- | ---
Is this a bottleneck? If so, optimize! | 108

### TODO

Number of occurrences found in the code: 56

org.apache.myfaces.orchestra.annotation.spring.AnnotationsInfoInitializer | Line
--- | ---
Move this method into orchestra-core, then call it from here, from AbstractSpringOrchestraScope and BeanDefinition*Decorator. This of course creates a dependency from this code onto that modified orchestra-core version. | 166
org.apache.myfaces.orchestra.conversation.AccessScopeManager | Line
Make this error message less spring-specific. Spring is not the only IOC container that Orchestra can be used with. | 96
org.apache.myfaces.orchestra.conversation.ConversationManager | Line
fix serialization issues. | 53
add the "user" name here, otherwise this debugging is not very useful except when testing a webapp with only one user. | 296
add the deleted context ids to a list stored in the session, and redirect to an error page if any future request specifies this id. This catches things like going "back" into a flow that has ended, or navigating with the parent page of a popup flow (which kills the popup flow context) then trying to use the popup page. | 398
org.apache.myfaces.orchestra.conversation.ConversationRequestParameterProvider | Line
consider using a request-scope variable rather than a ThreadLocal; less damage if the flag is not reset.. | 59
theoretical security problem here as something can call this method then modify the 0th element of the returned array. If this library is deployed at the "shared" level, that means that one webapp can cause a "denial of service" or similar against other webapps in the container by changing this critical field. Not a very important flaw, but nevertheless... | 91
org.apache.myfaces.orchestra.conversation.jsf.components.UISeparateConversationContext | Line
actually save the original value? | 74
org.apache.myfaces.orchestra.conversation.servlet.ConversationManagerSessionListener | Line
rename this class to ConversationWiperThreadManager or similar; it is not just a SessionListener as it also implements ServletContextListener. This class specifically handles ConversationWiperThread issues... | 68
maybe touch the "last accessed" stamp for the conversation manager and all its children? Without this, a conversation that has been passivated might almost immediately get cleaned up after being reactivated. | 237
org.apache.myfaces.orchestra.conversation.spring.AbstractSpringOrchestraScope | Line
what does Spring use this for???? | 144
org.apache.myfaces.orchestra.conversation.spring.JpaPersistenceContextFactory | Line
what happens when a bean invokes a method on itself? Does bind get called again? If so, then this implementation is inefficient as it will push itself onto the stack over and over again. This could be optimised by checking whether this is the current context, and if so just incrementing a counter rather than pushing onto a stack... | 69
org.apache.myfaces.orchestra.conversation.spring.ScopedBeanTargetSource | Line
deal with serialization issues here. When an http session containing conversation-scoped beans is serialized, instances of this type will of course be serialized too. But the "scope" and "objectFactory" members here are not serializable. Somehow instances of this class need enough information to relocate the appropriate objects on deserialization. | 38
org.apache.myfaces.orchestra.conversation.spring.SimpleAdvisor | Line
maybe it would be nice to allow an orchestra scope object to hold Advisors as well as just Advices, so that users can configure specific code to run only for specific methods of orchestra beans. <p> NB: In Spring2.5, this class can simply implement Advisor, and it will be applied to all methods. However in Spring2.0, class DefaultAdvisorChainFactory only accepts PointcutAdvisor or IntroductionAdvisor, and silently ignores Advisor classes that are not of those types. So here for Spring2.x compatibility we need to make this class a PointcutAdvisor with a dummy pointcut that matches all methods... | 36
org.apache.myfaces.orchestra.frameworkAdapter.basic.BasicFrameworkAdapter | Line
also look in the application scope. <p> | 267
investigate invoking the jsp.ExpressionFactory class to look up the variable. Possibly that could be done in a different JspFrameworkAdapter class. | 269
look up application-scoped objects. | 289
org.apache.myfaces.orchestra.lib.jsf.ExternalContextUtils | Line
This class is a copy of org.apache.myfaces.commons.util.ExternalContextUtils | 31
org.apache.myfaces.orchestra.lib.jsf.PortletOrchestraFacesContextFactory | Line
put this one causes context never released because in portlets different threads could handle same request (one thread action and the other one render) handlers.add(new ContextLockRequestHandler()); | 145
org.apache.myfaces.orchestra.lib.jsf.RequestType | Line
This class is a copy of org.apache.myfaces.commons.util.RequestType | 22
org.apache.myfaces.orchestra.requestParameterProvider.RequestParameterProviderManager | Line
investigate why this is transient. At least some callers of register call it only once per session, so if the session data is passed to another machine or is saved then restored then it seems the registered providers will be lost when they should not be... | 63
remove this factory code. Not IOC-friendly. | 94
org.apache.myfaces.orchestra.viewController.DefaultViewControllerNameMapper | Line
move this list to some shared class. Other ViewControllerNameMapper implementations could find this list useful. Note, however, that it is servlet-specific. This class is supposed to not assume any particular request/response technology. | 111
org.apache.myfaces.orchestra.viewController.PlainAnnotationsViewControllerManager | Line
add a feature to the core that allows (view, beanname) pairs to be added to a list held by a normal ViewController. A ViewController annotation is then just one of the ways in which a bean's name can be added to the list. Maybe also add a map of (event->Method) that can be added, so that method annotations are then just another way of configuring these method mappings? Watch out for environments that allow hot-deploy/replace though! | 36
how can this be configured by an application? | 42
org.apache.myfaces.orchestra.viewController.ViewControllerManager | Line
Consider renaming this method. It is very Orchestra-specific, although this ViewController framework is supposed to be generic. In fact this method is really just a "validate view" hook, and one of the validations that can be hooked in here is a conversation-check. | 70
implement an endView callback too (and corresponding annotation). | 108
implement isPostback() for JSF1.1 users? This is of course built-in for JSF1.2 users... | 110
org.apache.myfaces.orchestra.viewController.ViewControllerNameMapper | Line
should this class have the same warning as ViewControllerExecutor, and an equivalent abstract base class? | 26
org.apache.myfaces.shared_orchestra.renderkit.RendererUtils | Line
Shall we cache the list in a component attribute? | 452
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlButtonRendererBase | Line
overwrite in extended HtmlButtonRenderer and check for enabledOnUserRole | 195
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlCheckboxRendererBase | Line
Check here for getSubmittedValue. Look at RendererUtils.getValue | 148
overwrite in extended HtmlCheckboxRenderer and check for enabledOnUserRole | 266
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlLinkRendererBase | Line
or encodeActionURL ? | 484
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlListboxRendererBase | Line
overwrite in extended HtmlListboxRenderer and check for enabledOnUserRole | 91
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlMenuRendererBase | Line
overwrite in extended HtmlMenuRenderer and check for enabledOnUserRole | 71
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlRadioRendererBase | Line
Check here for getSubmittedValue. Look at RendererUtils.getValue this is useless object creation Object itemValue = selectItem.getValue(); | 142
overwrite in extended HtmlRadioRenderer and check for enabledOnUserRole | 262
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlRendererUtils | Line
/FIX: we always compare the String vales, better fill lookupSet with Strings only when useSubmittedValue==true, else use the real item value Objects | 429
/FIX: we always compare the String vales, better fill lookupSet with Strings only when useSubmittedValue==true, else use the real item value Objects | 730
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlResponseWriterImpl | Line
Escaping: must not have "-->" inside! | 407
Make HTMLEncoder support char arrays directly | 457
Make HTMLEncoder support char arrays directly | 464
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlSecretRendererBase | Line
overwrite in extended HtmlSecretRenderer and check for enabledOnUserRole | 85
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlTextRendererBase | Line
overwrite in extended HtmlTextRenderer and check for enabledOnUserRole | 157
org.apache.myfaces.shared_orchestra.renderkit.html.HtmlTextareaRendererBase | Line
overwrite in extended HtmlTextareaRenderer and check for enabledOnUserRole | 72
org.apache.myfaces.shared_orchestra.renderkit.html.util.JavascriptUtils | Line
/FIXME (manolito): This info should be better stored in the viewroot component and not in the session | 261
org.apache.myfaces.shared_orchestra.taglib.UIComponentBodyTagBase | Line
Ignore <!-- --> comments | 61
org.apache.myfaces.shared_orchestra.taglib.UIComponentTagUtils | Line
Warning if component has no such property (with reflection) | 112
More sophisticated way to convert boolean value (yes/no, 1/0, on/off, etc.) | 133
org.apache.myfaces.shared_orchestra.taglib.html.HtmlOutputTextTagBase | Line
idea: set transient and override setValue method in UIOutput so that transient is set to false when a new value is set | 59
org.apache.myfaces.shared_orchestra.taglib.html.HtmlSelectManyCheckboxTagBase | Line
needed? | 54
org.apache.myfaces.shared_orchestra.util.MessageUtils | Line
/FIX: Note that this has fallback behavior to default Locale for message, but similar behavior above does not. The methods should probably behave | 576
/FIX: Note that this has fallback behavior to default Locale for message, but similar behavior above does not. The methods should probably behave | 596
org.apache.myfaces.shared_orchestra.util.RestoreStateUtils | Line
constant | 83
org.apache.myfaces.shared_orchestra.util.xml.XmlUtils | Line
see jsf-samples throw new FacesException("Unexpected node type " + n.getNodeType()); | 53