You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by sk...@apache.org on 2007/10/09 11:11:03 UTC
svn commit: r583084 - in
/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra:
conversation/ frameworkAdapter/ frameworkAdapter/basic/
frameworkAdapter/jsf/ frameworkAdapter/local/
Author: skitching
Date: Tue Oct 9 02:11:02 2007
New Revision: 583084
URL: http://svn.apache.org/viewvc?rev=583084&view=rev
Log:
Rename private member. Update documentation.
Modified:
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationManager.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationMessager.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/FrameworkAdapter.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapter.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapterFilter.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapter.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapterFilter.java
myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/local/LocalFrameworkAdapter.java
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationManager.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationManager.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationManager.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationManager.java Tue Oct 9 02:11:02 2007
@@ -63,11 +63,6 @@
// a HashMap is not thread-safe and this class must be thread-safe.
private final Map conversationContexts = new HashMap();
- // Used to report problems to the user. This member is only ever assigned to once, during the constructor
- // for this class, and all ConversationMessager implementations are required to be thread-safe so there
- // are no thread-safety issues with accessing this member.
- // private ConversationMessager conversationMessager;
-
protected ConversationManager()
{
// conversationMessager = createMessager();
@@ -310,17 +305,12 @@
/**
* Get the Messager used to inform the user about anomalies.
* <p>
- * The instance to use can be configured by defining a bean in the IOC configuration
- * with the name org.apache.orchestra.conversation.ConversationMessager. This should
- * be a "prototype" object, ie one that returns a new instance on each lookup.
- * <p>
- * Alternatively the class to use can be configured in your web.xml using a servlet
- * config init parameter named <code>org.apache.myfaces.conversation.MESSAGER</code>.
+ * What instance is returned is controlled by the FrameworkAdapter. See
+ * {@link org.apache.myfaces.orchestra.frameworkAdapter.FrameworkAdapter} for details.
*/
public ConversationMessager getMessager()
{
return FrameworkAdapter.getCurrentInstance().getConversationMessager();
- // return conversationMessager;
}
/**
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationMessager.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationMessager.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationMessager.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/conversation/ConversationMessager.java Tue Oct 9 02:11:02 2007
@@ -29,12 +29,8 @@
* <p>
* All methods on this class must be implemented in a thread-safe manner.
* <p>
- * The instance to use can be configured by defining a bean in the IOC configuration
- * with the name org.apache.orchestra.conversation.ConversationMessager. This should
- * be a "prototype" object, ie one that returns a new instance on each lookup.
- * <p>
- * Alternatively the class to use can be configured in your web.xml using a servlet
- * config init parameter named <code>org.apache.myfaces.conversation.MESSAGER</code>.
+ * The instance used by Orchestra is controlled by the FrameworkAdapter. See
+ * {@link org.apache.myfaces.orchestra.frameworkAdapter.FrameworkAdapter} for details.
*/
public abstract class ConversationMessager
{
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/FrameworkAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/FrameworkAdapter.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/FrameworkAdapter.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/FrameworkAdapter.java Tue Oct 9 02:11:02 2007
@@ -133,6 +133,10 @@
/**
* Return an object that can report internal application problems to the user associated
* with the current request.
+ * <p>
+ * If setConversationManager was called explicitly when this object was set up, then the
+ * provided instance is returned. Otherwise what is returned is determined by the
+ * concrete subclass. See the appropriate subclass documentation for details.
*/
public ConversationMessager getConversationMessager()
{
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapter.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapter.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapter.java Tue Oct 9 02:11:02 2007
@@ -37,6 +37,24 @@
* <p>
* This class requires the BasicFrameworkAdapterFilter to be configured to run
* for every request.
+ *
+ * <h2>Configuring the ConversationMessager</h2>
+ *
+ * This class allows the concrete ConversationMessager instance returned
+ * by the getConversationMessager method to be configured
+ * in a number of ways:
+ * <ul>
+ * <li>By calling an explicit setter, passing an instance.</li>
+ * <li>By specifying a conversationMessagerName parameter to the constructor
+ * of this method which matches a bean name defined in the dependency injection
+ * framework.</li>
+ * <li>By specifying a conversationMessagerName that is the fully-qualified
+ * name of a ConversationMessager class to be instantiated</li>
+ * <li>Otherwise, method createDefaultConversationMessager is called which
+ * returns a LogConversationMessager instance (unless overridden in a subclass).</li>
+ * </ul>
+ *
+ * See also the BasicFrameworkAdapterFilter class.
*/
public class BasicFrameworkAdapter extends FrameworkAdapter
{
@@ -48,28 +66,31 @@
private final Log log = LogFactory.getLog(BasicFrameworkAdapter.class);
private final ServletContext servletContext;
- private final String conversationMessager;
+ private final String conversationMessagerClass;
- public BasicFrameworkAdapter(ServletContext context, String conversationMessager)
+ public BasicFrameworkAdapter(ServletContext context, String conversationMessagerClass)
{
servletContext = context;
- this.conversationMessager = conversationMessager;
+ this.conversationMessagerClass = conversationMessagerClass;
}
protected ConversationMessager createConversationMessager()
{
- if (conversationMessager == null)
+ if (conversationMessagerClass == null)
{
return createDefaultConversationMessager();
}
- Object instance = getBean(conversationMessager);
+ // First try to find a bean of that name in the dependency-injection
+ // framework.
+ Object instance = getBean(conversationMessagerClass);
if (instance instanceof ConversationMessager)
{
return (ConversationMessager) instance;
}
- return (ConversationMessager) _ClassUtils.newInstance(conversationMessager);
+ // Now resort to trying the value as a classname.
+ return (ConversationMessager) _ClassUtils.newInstance(conversationMessagerClass);
}
protected ConversationMessager createDefaultConversationMessager()
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapterFilter.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapterFilter.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapterFilter.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/basic/BasicFrameworkAdapterFilter.java Tue Oct 9 02:11:02 2007
@@ -35,7 +35,13 @@
* <p>
* Orchestra accesses information about the request, response, session, etc via a
* FrameworkAdapter so that it can be used with multiple web tier frameworks. This
- * class selects and configures the simplest version of this adapter.
+ * class selects and configures the simplest version of this adapter, which only
+ * depends on the <i>basic</i> Servlet APIs.
+ * <p>
+ * If filter config parameter "conversationMessagerClass" is set, then this is
+ * passed to the BasicFrameworkAdapter, meaning that this can be either a
+ * beanname defined in the dependency-injection framework, or an absolute
+ * classname of a type implementing ConversationMessager.
*/
public class BasicFrameworkAdapterFilter implements Filter
{
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapter.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapter.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapter.java Tue Oct 9 02:11:02 2007
@@ -30,6 +30,8 @@
* <p>
* This class requires the JsfFrameworkAdapterFilter to be configured to run
* or every JSF request.
+ * <p>
+ * This class defaults to using a JsfConversationMessager instance.
*/
public class JsfFrameworkAdapter extends BasicFrameworkAdapter
{
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapterFilter.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapterFilter.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapterFilter.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/jsf/JsfFrameworkAdapterFilter.java Tue Oct 9 02:11:02 2007
@@ -40,6 +40,11 @@
* Note that the conversation.jsf.OrchestraServletFilter class executes this class
* as a "subfilter", so defining this filter is not required if that filter is
* already defined.
+ * <p>
+ * If filter config parameter "conversationMessagerClass" is set, then this is
+ * passed to the BasicFrameworkAdapter, meaning that this can be either a
+ * beanname defined in the dependency-injection framework, or an absolute
+ * classname of a type implementing ConversationMessager.
*/
public class JsfFrameworkAdapterFilter implements Filter
{
Modified: myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/local/LocalFrameworkAdapter.java
URL: http://svn.apache.org/viewvc/myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/local/LocalFrameworkAdapter.java?rev=583084&r1=583083&r2=583084&view=diff
==============================================================================
--- myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/local/LocalFrameworkAdapter.java (original)
+++ myfaces/orchestra/trunk/core/src/main/java/org/apache/myfaces/orchestra/frameworkAdapter/local/LocalFrameworkAdapter.java Tue Oct 9 02:11:02 2007
@@ -57,6 +57,10 @@
* <p>
* Note also that because this is intended for use only without a real request
* and response, there is no corresponding Filter class.
+ * <p>
+ * This class does not override the inherited createConversationMessager method, so
+ * it is mandatory for anyone using this class to explicitly call method
+ * setConversationMessager before using an instance of this adapter.
*/
public class LocalFrameworkAdapter extends FrameworkAdapter implements ApplicationContextAware
{