## 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 | Total number of occurrences
--- | ---
@todo | 0
TODO | 29

Each tag is detailed below:

### @todo

Number of occurrences found in the code: 0

### TODO

Number of occurrences found in the code: 29

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. | 162

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. | 290
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. | 389

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. | 222

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> | 261
investigate invoking the jsp.ExpressionFactory class to look up the variable. Possibly that could be done in a different JspFrameworkAdapter class. | 263
look up application-scoped objects. | 283

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