You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@struts.apache.org by mr...@apache.org on 2006/12/08 20:58:01 UTC

svn commit: r484717 - in /struts/struts2/trunk/core/src: main/java/org/apache/struts2/dispatcher/ main/java/org/apache/struts2/views/velocity/ test/java/org/apache/struts2/dispatcher/ test/java/org/apache/struts2/interceptor/ test/resources/org/apache/...

Author: mrdon
Date: Fri Dec  8 11:57:59 2006
New Revision: 484717

URL: http://svn.apache.org/viewvc?view=rev&rev=484717
Log:
Fixed submit unit tests, file upload test, date picker test, improved
dispatcher cleanup
WW-1538 WW-1544

Modified:
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
    struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java
    struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java
    struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DatePickerTagTest-1.txt
    struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
    struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt
    struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/ActionContextCleanUp.java Fri Dec  8 11:57:59 2006
@@ -35,6 +35,7 @@
 import org.apache.commons.logging.LogFactory;
 
 import com.opensymphony.xwork2.ActionContext;
+import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.util.profiling.UtilTimerStack;
 
 /**

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/dispatcher/Dispatcher.java Fri Dec  8 11:57:59 2006
@@ -168,6 +168,17 @@
      */
     public static void setInstance(Dispatcher instance) {
         Dispatcher.instance.set(instance);
+        
+        if (instance != null) {
+            Container cont = instance.getContainer();
+            if (cont != null) {
+                ObjectFactory.setObjectFactory(cont.getInstance(ObjectFactory.class));
+            } else {
+                LOG.warn("This dispatcher instance doesn't have a container, so the object factory won't be set.");
+            }
+        } else {
+            ObjectFactory.setObjectFactory(null);
+        }
     }
 
     /**
@@ -258,6 +269,7 @@
                 LOG.error("exception occurred while destroying ObjectFactory ["+objectFactory+"]", e);
             }
         }
+        ObjectFactory.setObjectFactory(null);
         
         // clean up Dispatcher itself
         instance.set(null);
@@ -815,6 +827,16 @@
      * @return Our dependency injection container
      */
     public Container getContainer() {
-        return getConfigurationManager().getConfiguration().getContainer();
+        ConfigurationManager mgr = getConfigurationManager();
+        if (mgr == null) {
+            throw new IllegalStateException("The configuration manager shouldn't be null");
+        } else {
+            Configuration config = mgr.getConfiguration();
+            if (config == null) {
+                throw new IllegalStateException("Unable to load configuration");
+            } else {
+                return config.getContainer();
+            }
+        }
     }
 }

Modified: struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java (original)
+++ struts/struts2/trunk/core/src/main/java/org/apache/struts2/views/velocity/VelocityManager.java Fri Dec  8 11:57:59 2006
@@ -105,8 +105,8 @@
  */
 public class VelocityManager {
     private static final Log log = LogFactory.getLog(VelocityManager.class);
-    private static VelocityManager instance;
     public static final String STRUTS = "struts";
+    private ObjectFactory objectFactory;
 
     /**
      * the parent JSP tag
@@ -138,6 +138,11 @@
 
     public VelocityManager() {
     }
+    
+    @Inject
+    public void setObjectFactory(ObjectFactory fac) {
+        this.objectFactory = fac;
+    }
 
     /**
      * retrieve an instance to the current VelocityManager
@@ -238,7 +243,7 @@
         for (int i = 0; i < chainedContextNames.length; i++) {
             String className = chainedContextNames[i];
             try {
-                VelocityContext velocityContext = (VelocityContext) ObjectFactory.getObjectFactory().buildBean(className, null);
+                VelocityContext velocityContext = (VelocityContext) objectFactory.buildBean(className, null);
                 contextList.add(velocityContext);
             } catch (Exception e) {
                 log.warn("Warning.  " + e.getClass().getName() + " caught while attempting to instantiate a chained VelocityContext, " + className + " -- skipping");

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterDispatcherTest.java Fri Dec  8 11:57:59 2006
@@ -100,11 +100,12 @@
         MockHttpServletResponse res = new MockHttpServletResponse();
         MockFilterChain chain = new MockFilterChain();
         final NoOpDispatcher _dispatcher = new NoOpDispatcher(servletContext);
-        Dispatcher.setInstance(_dispatcher);
-
         ConfigurationManager confManager = new ConfigurationManager();
         confManager.setConfiguration(new DefaultConfiguration());
         _dispatcher.setConfigurationManager(confManager);
+        Dispatcher.setInstance(_dispatcher);
+
+        
 
 
         ObjectFactory.setObjectFactory(new InnerObjectFactory());

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/dispatcher/FilterTest.java Fri Dec  8 11:57:59 2006
@@ -43,6 +43,7 @@
 import com.mockobjects.servlet.MockFilterChain;
 import com.opensymphony.xwork2.ObjectFactory;
 import com.opensymphony.xwork2.config.ConfigurationManager;
+import com.opensymphony.xwork2.inject.Container;
 
 
 /**
@@ -132,84 +133,71 @@
     }
 
     public void testUsingFilterDispatcherOnly() throws Exception {
-        ObjectFactory oldObjecFactory = ObjectFactory.getObjectFactory();
-        try {
-            ObjectFactory.setObjectFactory(new InnerObjectFactory());
-
-            assertEquals(cleanUpFilterCreateDispatcherCount, 0);
-            assertEquals(filterDispatcherCreateDispatcherCount, 0);
-            assertFalse(_dispatcher1.init);
-            assertFalse(_dispatcher1.prepare);
-            assertFalse(_dispatcher1.wrapRequest);
-            assertFalse(_dispatcher1.service);
-            assertFalse(_dispatcher2.init);
-            assertFalse(_dispatcher2.prepare);
-            assertFalse(_dispatcher2.wrapRequest);
-            assertFalse(_dispatcher2.service);
-
-            filterDispatcher.init(filterConfig);
-            FilterDispatcher.setActionMapper(new FilterTest.InnerMapper());
-            filterDispatcher.doFilter(request, response, filterChain2);
-            filterDispatcher.destroy();
-
-            // we are using FilterDispatcher only, so cleanUp filter's Dispatcher should not be created.
-            assertEquals(cleanUpFilterCreateDispatcherCount, 0);
-            assertEquals(filterDispatcherCreateDispatcherCount, 1);
-            assertFalse(_dispatcher1.init);
-            assertFalse(_dispatcher1.prepare);
-            assertFalse(_dispatcher1.wrapRequest);
-            assertFalse(_dispatcher1.service);
-            assertTrue(_dispatcher2.init);
-            assertTrue(_dispatcher2.prepare);
-            assertTrue(_dispatcher2.wrapRequest);
-            assertTrue(_dispatcher2.service);
-            assertTrue(Dispatcher.getInstance() == null);
-        }
-        finally {
-            ObjectFactory.setObjectFactory(oldObjecFactory);
-        }
+        assertEquals(cleanUpFilterCreateDispatcherCount, 0);
+        assertEquals(filterDispatcherCreateDispatcherCount, 0);
+        assertFalse(_dispatcher1.init);
+        assertFalse(_dispatcher1.prepare);
+        assertFalse(_dispatcher1.wrapRequest);
+        assertFalse(_dispatcher1.service);
+        assertFalse(_dispatcher2.init);
+        assertFalse(_dispatcher2.prepare);
+        assertFalse(_dispatcher2.wrapRequest);
+        assertFalse(_dispatcher2.service);
+
+        filterDispatcher.init(filterConfig);
+        FilterDispatcher.setActionMapper(new FilterTest.InnerMapper());
+        filterDispatcher.doFilter(request, response, filterChain2);
+        filterDispatcher.destroy();
+
+        // we are using FilterDispatcher only, so cleanUp filter's Dispatcher should not be created.
+        assertEquals(cleanUpFilterCreateDispatcherCount, 0);
+        assertEquals(filterDispatcherCreateDispatcherCount, 1);
+        assertFalse(_dispatcher1.init);
+        assertFalse(_dispatcher1.prepare);
+        assertFalse(_dispatcher1.wrapRequest);
+        assertFalse(_dispatcher1.service);
+        assertTrue(_dispatcher2.init);
+        assertTrue(_dispatcher2.prepare);
+        assertTrue(_dispatcher2.wrapRequest);
+        assertTrue(_dispatcher2.service);
+        assertTrue(Dispatcher.getInstance() == null);
     }
 
 
     public void testUsingFilterDispatcherOnly_Multiple() throws Exception {
-        ObjectFactory oldObjecFactory = ObjectFactory.getObjectFactory();
-        try {
-            ObjectFactory.setObjectFactory(new InnerObjectFactory());
-            filterDispatcher.setActionMapper(new FilterTest.InnerMapper());
-
-            assertEquals(cleanUpFilterCreateDispatcherCount, 0);
-            assertEquals(filterDispatcherCreateDispatcherCount, 0);
-            assertFalse(_dispatcher1.prepare);
-            assertFalse(_dispatcher1.wrapRequest);
-            assertFalse(_dispatcher1.service);
-            assertFalse(_dispatcher1.cleanUp);
-            assertFalse(_dispatcher2.prepare);
-            assertFalse(_dispatcher2.wrapRequest);
-            assertFalse(_dispatcher2.service);
-            assertFalse(_dispatcher2.cleanUp);
-
-            filterDispatcher.init(filterConfig);
-            FilterDispatcher.setActionMapper(new FilterTest.InnerMapper());
-            filterDispatcher.doFilter(request, response, filterChain2);
-            filterDispatcher.doFilter(request, response, filterChain2);
-            filterDispatcher.destroy();
+        
+        filterDispatcher.setActionMapper(new FilterTest.InnerMapper());
 
-            assertEquals(cleanUpFilterCreateDispatcherCount, 0);
-            // We should create dispatcher once, although filter.doFilter(...) is called  many times.
-            assertEquals(filterDispatcherCreateDispatcherCount, 1);
-            assertFalse(_dispatcher1.prepare);
-            assertFalse(_dispatcher1.wrapRequest);
-            assertFalse(_dispatcher1.service);
-            assertFalse(_dispatcher1.cleanUp);
-            assertTrue(_dispatcher2.prepare);
-            assertTrue(_dispatcher2.wrapRequest);
-            assertTrue(_dispatcher2.service);
-            assertTrue(_dispatcher2.cleanUp);
-            assertTrue(Dispatcher.getInstance() == null);
-        }
-        finally {
-            ObjectFactory.setObjectFactory(oldObjecFactory);
-        }
+        assertEquals(cleanUpFilterCreateDispatcherCount, 0);
+        assertEquals(filterDispatcherCreateDispatcherCount, 0);
+        assertFalse(_dispatcher1.prepare);
+        assertFalse(_dispatcher1.wrapRequest);
+        assertFalse(_dispatcher1.service);
+        assertFalse(_dispatcher1.cleanUp);
+        assertFalse(_dispatcher2.prepare);
+        assertFalse(_dispatcher2.wrapRequest);
+        assertFalse(_dispatcher2.service);
+        assertFalse(_dispatcher2.cleanUp);
+
+        filterDispatcher.init(filterConfig);
+        FilterDispatcher.setActionMapper(new FilterTest.InnerMapper());
+        filterDispatcher.doFilter(request, response, filterChain2);
+        filterDispatcher.doFilter(request, response, filterChain2);
+        filterDispatcher.destroy();
+
+        assertEquals(cleanUpFilterCreateDispatcherCount, 0);
+        // We should create dispatcher once, although filter.doFilter(...) is called  many times.
+        assertEquals(filterDispatcherCreateDispatcherCount, 1);
+        assertFalse(_dispatcher1.prepare);
+        assertFalse(_dispatcher1.wrapRequest);
+        assertFalse(_dispatcher1.service);
+        assertFalse(_dispatcher1.cleanUp);
+        assertTrue(_dispatcher2.prepare);
+        assertTrue(_dispatcher2.wrapRequest);
+        assertTrue(_dispatcher2.service);
+        assertTrue(_dispatcher2.cleanUp);
+        assertTrue(Dispatcher.getInstance() == null);
+        
     }
 
     
@@ -304,6 +292,11 @@
         @Override
         public void init() {
         	init= true;
+        }
+        
+        @Override 
+        public Container getContainer() {
+            return null;
         }
 
         @Override

Modified: struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java (original)
+++ struts/struts2/trunk/core/src/test/java/org/apache/struts2/interceptor/FileUploadInterceptorTest.java Fri Dec  8 11:57:59 2006
@@ -228,7 +228,9 @@
     }
 
     private MultiPartRequestWrapper createMultipartRequest(HttpServletRequest req, int maxsize) throws IOException {
-       return new MultiPartRequestWrapper(new JakartaMultiPartRequest(), req, tempDir.getAbsolutePath());
+       JakartaMultiPartRequest jak = new JakartaMultiPartRequest();
+       jak.setMaxSize(String.valueOf(maxsize));
+       return new MultiPartRequestWrapper(jak, req, tempDir.getAbsolutePath());
     }
 
     protected void setUp() throws Exception {

Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DatePickerTagTest-1.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DatePickerTagTest-1.txt?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DatePickerTagTest-1.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/DatePickerTagTest-1.txt Fri Dec  8 11:57:59 2006
@@ -1,4 +1,6 @@
-<script type="text/javascript">
+<tr>
+    <td class="tdLabel"></td>
+    <td><script type="text/javascript">
 	dojo.require("dojo.widget.DatePicker");
 </script>
 <div dojoType="datepicker"
@@ -11,4 +13,6 @@
  endDate="d"
  weekStartsOn="g"
  staticDisplay="false">
-</div>
\ No newline at end of file
+</div>
+</td>
+</tr>

Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-1.txt Fri Dec  8 11:57:59 2006
@@ -1,3 +1,5 @@
+<tr>
+    <td colspan="2"><div align="right">
 <input
   type="submit"
   dojoType="struts:Bind"
@@ -11,4 +13,7 @@
   refreshListenTopic="e"
   beforeLoading="f"
   afterLoading="g"
-  handler="h"/>
\ No newline at end of file
+  handler="h"/>
+  </div>
+  </td>
+  </tr>
\ No newline at end of file

Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-2.txt Fri Dec  8 11:57:59 2006
@@ -1,3 +1,5 @@
+<tr>
+    <td colspan="2"><div align="right">
 <input
   type="button"
   dojoType="struts:Bind"
@@ -11,4 +13,7 @@
   beforeLoading="f"
   afterLoading="g"
   handler="h"
-  value="i"/>
\ No newline at end of file
+  value="i"/>
+  </div>
+  </td>
+  </tr>
\ No newline at end of file

Modified: struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt
URL: http://svn.apache.org/viewvc/struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt?view=diff&rev=484717&r1=484716&r2=484717
==============================================================================
--- struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt (original)
+++ struts/struts2/trunk/core/src/test/resources/org/apache/struts2/views/jsp/ui/submit-ajax-3.txt Fri Dec  8 11:57:59 2006
@@ -1,3 +1,5 @@
+<tr>
+    <td colspan="2"><div align="right">
 <input
   type="image"
   dojoType="struts:Bind"
@@ -13,4 +15,7 @@
   refreshListenTopic="e"
   beforeLoading="f"
   afterLoading="g"
-  handler="h"/>
\ No newline at end of file
+  handler="h"/>
+  </div>
+  </td>
+  </tr>
\ No newline at end of file