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