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
 {