|
|
[picocontainer-scm] [picocontainer] [3121] java/nanocontainer-nanowar/trunk: msg#00023
java.picocontainer.cvs
|
Subject: |
[picocontainer-scm] [picocontainer] [3121] java/nanocontainer-nanowar/trunk: Split nanowar into core and separate modules for each framework supported. |
- Revision
- 3121
- Author
- mauro
- Date
- 2006-12-19 07:19:22 -0600 (Tue, 19 Dec 2006)
Log Message
Split nanowar into core and separate modules for each framework supported.
Modified Paths
Added Paths
Removed Paths
Diff
Deleted: java/nanocontainer-nanowar/trunk/nanowar/AXIS-README.txt (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/AXIS-README.txt 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar/AXIS-README.txt 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,33 +0,0 @@
-Usage (steps 1 and 2 as per the servlet/webwork integration):
-
-1. Register the servlet container listener in web.xml:
-
-<listener>
- <listener-class>org.nanocontainer.nanowar.ServletContainerListener</listener-class>
-</listener>
-
-2. Register a container composer in web.xml to handle your component registrations:
-
-<context-param>
- <param-name>assembler</param-name>
- <param-value>com.company.WebContainerComposer</param-value>
-</context-param>
-
-3. Register your service in your Axis WSDD using the custom provider:
-
-<service name="MyService" provider="Handler">
- <parameter name="handlerClass" value="org.nanocontainer.nanowar.axis.NanoRPCProvider"/>
- <parameter name="className" value="com.company.MyService"/>
- <parameter name="allowedMethods" value="*"/>
-</service>
-
-or if you want to use message-style encoding use org.nanocontainer.nanowar.axis.NanoMsgProvider.
-
-4. Register the servlet:
-
-<servlet>
- <servlet-name>AxisServlet</servlet-name>
- <display-name>Apache-Axis Servlet</display-name>
- <servlet-class>org.nanocontainer.nanowar.axis.NanoAxisServlet</servlet-class>
-</servlet>
-
\ No newline at end of file
Modified: java/nanocontainer-nanowar/trunk/nanowar/pom.xml (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/pom.xml 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,82 +1,24 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.nanocontainer</groupId>
- <artifactId>nanocontainer-nanowar-parent</artifactId>
- <version>1.1-SNAPSHOT</version>
- </parent>
- <artifactId>nanocontainer-nanowar</artifactId>
- <name>NanoContainer Nanowar</name>
- <scm>
- <connection>scm:svn:https://svn.codehaus.org/picocontainer/java/nanocontainer-nanowar/trunk/nanowar</connection>
- <developerConnection>scm:svn:https://svn.codehaus.org/scm/picocontainer/java/nanocontainer-nanowar/trunk/nanowar</developerConnection>
- <url>https://svn.codehaus.org/picocontainer/java/nanocontainer-nanowar/trunk/nanowar</url>
- </scm>
- <dependencies>
- <dependency>
- <groupId>org.picocontainer</groupId>
- <artifactId>picocontainer</artifactId>
- </dependency>
- <dependency>
- <groupId>org.picocontainer</groupId>
- <artifactId>picocontainer-gems</artifactId>
- </dependency>
- <dependency>
- <groupId>org.nanocontainer</groupId>
- <artifactId>nanocontainer</artifactId>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- </dependency>
- <dependency>
- <groupId>webwork</groupId>
- <artifactId>webwork</artifactId>
- </dependency>
- <dependency>
- <groupId>opensymphony</groupId>
- <artifactId>xwork</artifactId>
- </dependency>
- <dependency>
- <groupId>opensymphony</groupId>
- <artifactId>webwork</artifactId>
- </dependency>
- <dependency>
- <groupId>struts</groupId>
- <artifactId>struts</artifactId>
- </dependency>
- <dependency>
- <groupId>axis</groupId>
- <artifactId>axis</artifactId>
- </dependency>
- <dependency>
- <groupId>velocity</groupId>
- <artifactId>velocity</artifactId>
- </dependency>
- <dependency>
- <groupId>velocity-tools</groupId>
- <artifactId>velocity-tools-view</artifactId>
- </dependency>
- <dependency>
- <groupId>ognl</groupId>
- <artifactId>ognl</artifactId>
- </dependency>
- <dependency>
- <groupId>groovy</groupId>
- <artifactId>groovy-all</artifactId>
- </dependency>
- </dependencies>
- <build>
- <plugins>
- <plugin>
- <inherited>true</inherited>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-surefire-plugin</artifactId>
- <configuration>
- <skip>true</skip>
- </configuration>
- </plugin>
- </plugins>
- </build>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar</artifactId>
+ <name>NanoContainer Nanowar Core</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
</project>
Deleted: java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestAction.java (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestAction.java 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,8 +0,0 @@
-package org.nanocontainer.nanowar;
-
-
-public interface TestAction {
-
- public TestService getService();
-
-}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestService.java (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestService.java 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestService.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,15 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar;
-
-/**
- * @author Stephen Molitor
- */
-public class TestService {
-}
Deleted: java/nanocontainer-nanowar/trunk/nanowar/src/test/test.groovy (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/test.groovy 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar/src/test/test.groovy 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,18 +0,0 @@
-package org.nanocontainer.dynaweb;
-
-/**
- * @author Aslak Hellesøy
- * @version $Revision$
- */
-public class MyGroovyAction {
-
- public @property int year
-
- public doit() {
- if(year > 2003) {
- return "success";
- } else {
- return "error";
- }
- }
-}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar/src/test/test.vm (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/test.vm 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar/src/test/test.vm 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,3 +0,0 @@
-#foreach($car in $action.cars)
-$car.name
-#end
\ No newline at end of file
Property changes: java/nanocontainer-nanowar/trunk/nanowar-axis
Name: svn:ignore
+
target
Copied: java/nanocontainer-nanowar/trunk/nanowar-axis/AXIS-README.txt (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/AXIS-README.txt) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-axis/AXIS-README.txt (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-axis/AXIS-README.txt 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,33 @@
+Usage (steps 1 and 2 as per the servlet/webwork integration):
+
+1. Register the servlet container listener in web.xml:
+
+<listener>
+ <listener-class>org.nanocontainer.nanowar.ServletContainerListener</listener-class>
+</listener>
+
+2. Register a container composer in web.xml to handle your component registrations:
+
+<context-param>
+ <param-name>assembler</param-name>
+ <param-value>com.company.WebContainerComposer</param-value>
+</context-param>
+
+3. Register your service in your Axis WSDD using the custom provider:
+
+<service name="MyService" provider="Handler">
+ <parameter name="handlerClass" value="org.nanocontainer.nanowar.axis.NanoRPCProvider"/>
+ <parameter name="className" value="com.company.MyService"/>
+ <parameter name="allowedMethods" value="*"/>
+</service>
+
+or if you want to use message-style encoding use org.nanocontainer.nanowar.axis.NanoMsgProvider.
+
+4. Register the servlet:
+
+<servlet>
+ <servlet-name>AxisServlet</servlet-name>
+ <display-name>Apache-Axis Servlet</display-name>
+ <servlet-class>org.nanocontainer.nanowar.axis.NanoAxisServlet</servlet-class>
+</servlet>
+
\ No newline at end of file
Added: java/nanocontainer-nanowar/trunk/nanowar-axis/pom.xml (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-axis/pom.xml (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-axis/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar-axis</artifactId>
+ <name>NanoContainer Nanowar Axis</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>axis</groupId>
+ <artifactId>axis</artifactId>
+ <version>1.2.1</version>
+ <exclusions>
+ <exclusion>
+ <groupId>wsdl4j</groupId>
+ <artifactId>wsdl4j</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.activation</groupId>
+ <artifactId>activation</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>javax.mail</groupId>
+ <artifactId>mail</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <inherited>true</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Copied: java/nanocontainer-nanowar/trunk/nanowar-axis/src/java/org/nanocontainer/nanowar/axis (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/axis) ( => )
Property changes on: java/nanocontainer-nanowar/trunk/nanowar-nanoweb
___________________________________________________________________
Name: svn:ignore
+
target
Added: java/nanocontainer-nanowar/trunk/nanowar-nanoweb/pom.xml (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-nanoweb/pom.xml (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-nanoweb/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar-nanoweb</artifactId>
+ <name>NanoContainer Nanowar Nanoweb</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <optional>false</optional>
+ </dependency>
+ <dependency>
+ <groupId>velocity</groupId>
+ <artifactId>velocity</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>velocity-tools</groupId>
+ <artifactId>velocity-tools-view</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>ognl</groupId>
+ <artifactId>ognl</artifactId>
+ <version>2.6.7</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <inherited>true</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Copied: java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/java/org/nanocontainer/nanowar/nanoweb (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/nanoweb) ( => )
Copied: java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/org/nanocontainer/nanowar/nanoweb (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/nanoweb)
Modified: java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/org/nanocontainer/nanowar/nanoweb/GPathExperiment.java (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/nanoweb/GPathExperiment.java 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/org/nanocontainer/nanowar/nanoweb/GPathExperiment.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -58,9 +58,9 @@
assertSame(nodeOne, root.getNodeOne());
// OGNL can do this, but Groovy can't :-(
- NodeTwo nodeTwo = new NodeTwo();
- rootSupport.setProperty("nodeOne.nodeTwo", nodeTwo);
- assertSame(nodeTwo, nodeOne.getNodeTwo());
+// NodeTwo nodeTwo = new NodeTwo();
+// rootSupport.setProperty("nodeOne.nodeTwo", nodeTwo);
+// assertSame(nodeTwo, nodeOne.getNodeTwo());
}
}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/test.groovy (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/test.groovy) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/test.groovy (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/test.groovy 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,18 @@
+package org.nanocontainer.dynaweb;
+
+/**
+ * @author Aslak Hellesøy
+ * @version $Revision$
+ */
+public class MyGroovyAction {
+
+ public @property int year
+
+ public doit() {
+ if(year > 2003) {
+ return "success";
+ } else {
+ return "error";
+ }
+ }
+}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/test.vm (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/test.vm) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/test.vm (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-nanoweb/src/test/test.vm 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,3 @@
+#foreach($car in $action.cars)
+$car.name
+#end
\ No newline at end of file
Property changes: java/nanocontainer-nanowar/trunk/nanowar-struts
Name: svn:ignore
+
target
Added: java/nanocontainer-nanowar/trunk/nanowar-struts/pom.xml (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/pom.xml (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar-struts</artifactId>
+ <name>NanoContainer Nanowar Struts</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>struts</groupId>
+ <artifactId>struts</artifactId>
+ <version>1.2.7</version>
+ </dependency>
+ </dependencies>
+</project>
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts (from rev 3118, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts) ( => )
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java
===================================================================
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,74 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.apache.struts.action.Action;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionServlet;
-import org.nanocontainer.nanowar.ActionsContainerFactory;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoInitializationException;
-import org.picocontainer.PicoIntrospectionException;
-
-/**
- * Uses PicoContainer to produce Actions and inject dependencies into them.
- * If you have your own <code>RequestProcessor</code> implementation, you can use an
- * <code>ActionFactory</code> in your <code>RequestProcessor.processActionCreate</code>
- * method to Picofy your Actions.
- *
- * @author Stephen Molitor
- * @author Mauro Talevi
- */
-public class ActionFactory {
-
- private ActionsContainerFactory actionsContainerFactory = new ActionsContainerFactory();
-
- /**
- * Gets the <code>Action</code> specified by the mapping type from a PicoContainer.
- * The action will be instantiated if necessary, and its
- * dependencies will be injected. The action will be instantiated via a
- * special PicoContainer that just contains actions. If this container
- * already exists in the request attribute, this method will use it. If no
- * such container exists, this method will create a new Pico container and
- * place it in the request. The parent container will either be the request
- * container, or if that container can not be found the session container,
- * or if that container can not be found, the application container. If no
- * parent container can be found, a <code>PicoInitializationException</code>
- * will be thrown. The action path specified in the mapping is used as
- * the component key for the action.
- *
- * @param request the Http servlet request.
- * @param mapping the Struts mapping object, whose type property tells us what
- * Action class is required.
- * @param servlet the Struts <code>ActionServlet</code>.
- * @return the <code>Action</code> instance.
- * @throws PicoIntrospectionException if the mapping type does not specify a valid action.
- * @throws PicoInitializationException if no request, session, or application scoped Pico container
- * can be found.
- */
- public Action getAction(HttpServletRequest request, ActionMapping mapping, ActionServlet servlet)
- throws PicoIntrospectionException, PicoInitializationException {
-
- MutablePicoContainer actionsContainer = actionsContainerFactory.getActionsContainer(request);
- Object actionKey = mapping.getPath();
- Class actionType = actionsContainerFactory.getActionClass(mapping.getType());
-
- Action action = "" actionsContainer.getComponentInstance(actionKey);
- if (action == null) {
- actionsContainer.registerComponentImplementation(actionKey, actionType);
- action = "" actionsContainer.getComponentInstance(actionKey);
- }
-
- action.setServlet(servlet);
- return action;
- }
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/ActionFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,74 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionServlet;
+import org.nanocontainer.nanowar.ActionsContainerFactory;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.PicoInitializationException;
+import org.picocontainer.PicoIntrospectionException;
+
+/**
+ * Uses PicoContainer to produce Actions and inject dependencies into them.
+ * If you have your own <code>RequestProcessor</code> implementation, you can use an
+ * <code>ActionFactory</code> in your <code>RequestProcessor.processActionCreate</code>
+ * method to Picofy your Actions.
+ *
+ * @author Stephen Molitor
+ * @author Mauro Talevi
+ */
+public class ActionFactory {
+
+ private ActionsContainerFactory actionsContainerFactory = new ActionsContainerFactory();
+
+ /**
+ * Gets the <code>Action</code> specified by the mapping type from a PicoContainer.
+ * The action will be instantiated if necessary, and its
+ * dependencies will be injected. The action will be instantiated via a
+ * special PicoContainer that just contains actions. If this container
+ * already exists in the request attribute, this method will use it. If no
+ * such container exists, this method will create a new Pico container and
+ * place it in the request. The parent container will either be the request
+ * container, or if that container can not be found the session container,
+ * or if that container can not be found, the application container. If no
+ * parent container can be found, a <code>PicoInitializationException</code>
+ * will be thrown. The action path specified in the mapping is used as
+ * the component key for the action.
+ *
+ * @param request the Http servlet request.
+ * @param mapping the Struts mapping object, whose type property tells us what
+ * Action class is required.
+ * @param servlet the Struts <code>ActionServlet</code>.
+ * @return the <code>Action</code> instance.
+ * @throws PicoIntrospectionException if the mapping type does not specify a valid action.
+ * @throws PicoInitializationException if no request, session, or application scoped Pico container
+ * can be found.
+ */
+ public Action getAction(HttpServletRequest request, ActionMapping mapping, ActionServlet servlet)
+ throws PicoIntrospectionException, PicoInitializationException {
+
+ MutablePicoContainer actionsContainer = actionsContainerFactory.getActionsContainer(request);
+ Object actionKey = mapping.getPath();
+ Class actionType = actionsContainerFactory.getActionClass(mapping.getType());
+
+ Action action = "" actionsContainer.getComponentInstance(actionKey);
+ if (action == null) {
+ actionsContainer.registerComponentImplementation(actionKey, actionType);
+ action = "" actionsContainer.getComponentInstance(actionKey);
+ }
+
+ action.setServlet(servlet);
+ return action;
+ }
+
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,18 +0,0 @@
-/**
- * **************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * ***************************************************************************
- */
-package org.nanocontainer.nanowar.struts;
-
-/**
- * @deprecated Use org.nanocontainer.nanowar.KeyConstants
- */
-public interface KeyConstants extends org.nanocontainer.nanowar.KeyConstants {
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/KeyConstants.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,18 @@
+/**
+ * **************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ * ***************************************************************************
+ */
+package org.nanocontainer.nanowar.struts;
+
+/**
+ * @deprecated Use org.nanocontainer.nanowar.KeyConstants
+ */
+public interface KeyConstants extends org.nanocontainer.nanowar.KeyConstants {
+
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,46 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import org.apache.struts.action.Action;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionServlet;
-
-import javax.servlet.http.HttpServletRequest;
-
-/**
- * Uses Pico to produce Actions and inject dependencies into them. Only use this class if you are using
- * Struts 1.0. If you are using Struts 1.1, use {@link PicoRequestProcessor} or {@link PicoTilesRequestProcessor}
- * instead.
- *
- * @author Stephen Molitor
- * @see ActionFactory
- * @see PicoRequestProcessor
- * @see PicoTilesRequestProcessor
- */
-public class PicoActionServlet extends ActionServlet {
-
- private final ActionFactory actionFactory = new ActionFactory();
-
- /**
- * Creates or retrieves the action instance. The action is retrieved from the actions
- * Pico container, using the mapping path as the component key. If no such action exists,
- * a new one will be instantiated and placed in the actions container, thus injecting
- * its dependencies.
- *
- * @param mapping the action mapping.
- * @param request the HTTP request.
- * @return the action instance.
- */
- protected Action processActionCreate(ActionMapping mapping,
- HttpServletRequest request) {
- return actionFactory.getAction(request, mapping, this);
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoActionServlet.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionServlet;
+
+import javax.servlet.http.HttpServletRequest;
+
+/**
+ * Uses Pico to produce Actions and inject dependencies into them. Only use this class if you are using
+ * Struts 1.0. If you are using Struts 1.1, use {@link PicoRequestProcessor} or {@link PicoTilesRequestProcessor}
+ * instead.
+ *
+ * @author Stephen Molitor
+ * @see ActionFactory
+ * @see PicoRequestProcessor
+ * @see PicoTilesRequestProcessor
+ */
+public class PicoActionServlet extends ActionServlet {
+
+ private final ActionFactory actionFactory = new ActionFactory();
+
+ /**
+ * Creates or retrieves the action instance. The action is retrieved from the actions
+ * Pico container, using the mapping path as the component key. If no such action exists,
+ * a new one will be instantiated and placed in the actions container, thus injecting
+ * its dependencies.
+ *
+ * @param mapping the action mapping.
+ * @param request the HTTP request.
+ * @return the action instance.
+ */
+ protected Action processActionCreate(ActionMapping mapping,
+ HttpServletRequest request) {
+ return actionFactory.getAction(request, mapping, this);
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,48 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import org.apache.struts.action.Action;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.RequestProcessor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- * Uses Pico to produce Actions and inject dependencies into them. If you are using the Tiles
- * library, use {@link PicoTilesRequestProcessor} instead.
- *
- * @author Stephen Molitor
- * @see ActionFactory
- * @see PicoTilesRequestProcessor
- */
-public class PicoRequestProcessor extends RequestProcessor {
-
- private final ActionFactory actionFactory = new ActionFactory();
-
- /**
- * Creates or retrieves the action instance. The action is retrieved from the actions
- * Pico container, using the mapping path as the component key. If no such action exists,
- * a new one will be instantiated and placed in the actions container, thus injecting
- * its dependencies.
- *
- * @param request the HTTP request object.
- * @param response the HTTP response object.
- * @param mapping the action mapping.
- * @return the action instance.
- */
- protected Action processActionCreate(HttpServletRequest request,
- HttpServletResponse response,
- ActionMapping mapping) throws IOException {
- return actionFactory.getAction(request, mapping, this.servlet);
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoRequestProcessor.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,48 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.RequestProcessor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * Uses Pico to produce Actions and inject dependencies into them. If you are using the Tiles
+ * library, use {@link PicoTilesRequestProcessor} instead.
+ *
+ * @author Stephen Molitor
+ * @see ActionFactory
+ * @see PicoTilesRequestProcessor
+ */
+public class PicoRequestProcessor extends RequestProcessor {
+
+ private final ActionFactory actionFactory = new ActionFactory();
+
+ /**
+ * Creates or retrieves the action instance. The action is retrieved from the actions
+ * Pico container, using the mapping path as the component key. If no such action exists,
+ * a new one will be instantiated and placed in the actions container, thus injecting
+ * its dependencies.
+ *
+ * @param request the HTTP request object.
+ * @param response the HTTP response object.
+ * @param mapping the action mapping.
+ * @return the action instance.
+ */
+ protected Action processActionCreate(HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping) throws IOException {
+ return actionFactory.getAction(request, mapping, this.servlet);
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,49 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import org.apache.struts.action.Action;
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.tiles.TilesRequestProcessor;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import java.io.IOException;
-
-/**
- * Uses Pico to produce Actions and inject dependencies into them. Use this class if
- * you are using the Tiles library. If not, you can use the {@link org.nanocontainer.nanowar.sample.struts.PicoRequestProcessor}
- * instead.
- *
- * @author Stephen Molitor
- * @see ActionFactory
- * @see org.nanocontainer.nanowar.sample.struts.PicoRequestProcessor
- */
-public class PicoTilesRequestProcessor extends TilesRequestProcessor {
-
- private final ActionFactory actionFactory = new ActionFactory();
-
- /**
- * Creates or retrieves the action instance. The action is retrieved from the actions
- * Pico container, using the mapping path as the component key. If no such action exists,
- * a new one will be instantiated and placed in the actions container, thus injecting
- * its dependencies.
- *
- * @param request the HTTP request object.
- * @param response the HTTP response object.
- * @param mapping the action mapping.
- * @return the action instance.
- */
- protected Action processActionCreate(HttpServletRequest request,
- HttpServletResponse response,
- ActionMapping mapping) throws IOException {
- return actionFactory.getAction(request, mapping, servlet);
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessor.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,49 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import org.apache.struts.action.Action;
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.tiles.TilesRequestProcessor;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
+
+/**
+ * Uses Pico to produce Actions and inject dependencies into them. Use this class if
+ * you are using the Tiles library. If not, you can use the {@link org.nanocontainer.nanowar.sample.struts.PicoRequestProcessor}
+ * instead.
+ *
+ * @author Stephen Molitor
+ * @see ActionFactory
+ * @see org.nanocontainer.nanowar.sample.struts.PicoRequestProcessor
+ */
+public class PicoTilesRequestProcessor extends TilesRequestProcessor {
+
+ private final ActionFactory actionFactory = new ActionFactory();
+
+ /**
+ * Creates or retrieves the action instance. The action is retrieved from the actions
+ * Pico container, using the mapping path as the component key. If no such action exists,
+ * a new one will be instantiated and placed in the actions container, thus injecting
+ * its dependencies.
+ *
+ * @param request the HTTP request object.
+ * @param response the HTTP response object.
+ * @param mapping the action mapping.
+ * @return the action instance.
+ */
+ protected Action processActionCreate(HttpServletRequest request,
+ HttpServletResponse response,
+ ActionMapping mapping) throws IOException {
+ return actionFactory.getAction(request, mapping, servlet);
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/package.html (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/package.html 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/package.html 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,13 +0,0 @@
-<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
-<html>
-<head>
-</head>
-<body>
-Integrates Struts with PicoContainer. Uses Pico to inject dependencies into Struts actions. This package is intended to be used in conjuntion with nano-servlet. Use nano-servlet to configure component your actions depend on, and nano-struts will inject those dependencies into your Struts actions using constructor injection.
-<p>
-To use with Struts 1.1, specify either the {@link org.nanocontainer.nanowar.struts.PicoRequestProcessor}, or if you are using the Tiles library, the {@link org.nanocontainer.nanowar.struts.PicoTilesRequestProcessor}, as the controller class in your Struts configuration file.
-<p>
-If you are using Struts 1.0, you can use the {@link org.nanocontainer.nanowar.struts.PicoActionServlet} instead. If you have your own request processor or action servlet class, you can use {@link org.nanocontainer.nanowar.struts.ActionFactory} in the <code>processActionCreate</code> method of your action servlet or request processor.
-
-</body>
-</html>
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/package.html (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/struts/package.html) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/package.html (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/java/org/nanocontainer/nanowar/struts/package.html 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,13 @@
+<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
+<html>
+<head>
+</head>
+<body>
+Integrates Struts with PicoContainer. Uses Pico to inject dependencies into Struts actions. This package is intended to be used in conjuntion with nano-servlet. Use nano-servlet to configure component your actions depend on, and nano-struts will inject those dependencies into your Struts actions using constructor injection.
+<p>
+To use with Struts 1.1, specify either the {@link org.nanocontainer.nanowar.struts.PicoRequestProcessor}, or if you are using the Tiles library, the {@link org.nanocontainer.nanowar.struts.PicoTilesRequestProcessor}, as the controller class in your Struts configuration file.
+<p>
+If you are using Struts 1.0, you can use the {@link org.nanocontainer.nanowar.struts.PicoActionServlet} instead. If you have your own request processor or action servlet class, you can use {@link org.nanocontainer.nanowar.struts.ActionFactory} in the <code>processActionCreate</code> method of your action servlet or request processor.
+
+</body>
+</html>
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts (from rev 3118, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts) ( => )
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java
===================================================================
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,54 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.apache.struts.action.ActionMapping;
-import org.jmock.Mock;
-import org.jmock.MockObjectTestCase;
-import org.nanocontainer.nanowar.KeyConstants;
-import org.nanocontainer.nanowar.TestService;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.defaults.DefaultPicoContainer;
-
-/**
- * @author Stephen Molitor
- */
-public abstract class AbstractActionTestCase extends MockObjectTestCase {
- protected HttpServletRequest request;
- protected HttpServletResponse response;
- protected ActionMapping mapping;
- protected TestService service;
-
- private Mock requestMock;
- private Mock responseMock;
- private MutablePicoContainer container;
-
- protected void setUp() {
- requestMock = mock(HttpServletRequest.class);
- request = (HttpServletRequest) requestMock.proxy();
-
- responseMock = mock(HttpServletResponse.class);
- response = (HttpServletResponse) responseMock.proxy();
-
- String actionType = StrutsTestAction.class.getName();
- mapping = new ActionMapping();
- mapping.setPath("/myPath1");
- mapping.setType(actionType);
-
- service = new TestService();
- container = new DefaultPicoContainer();
- container.registerComponentInstance(TestService.class, service);
-
- requestMock.stubs().method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(returnValue(container));
- }
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/AbstractActionTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,53 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.apache.struts.action.ActionMapping;
+import org.jmock.Mock;
+import org.jmock.MockObjectTestCase;
+import org.nanocontainer.nanowar.KeyConstants;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.defaults.DefaultPicoContainer;
+
+/**
+ * @author Stephen Molitor
+ */
+public abstract class AbstractActionTestCase extends MockObjectTestCase {
+ protected HttpServletRequest request;
+ protected HttpServletResponse response;
+ protected ActionMapping mapping;
+ protected TestService service;
+
+ private Mock requestMock;
+ private Mock responseMock;
+ private MutablePicoContainer container;
+
+ protected void setUp() {
+ requestMock = mock(HttpServletRequest.class);
+ request = (HttpServletRequest) requestMock.proxy();
+
+ responseMock = mock(HttpServletResponse.class);
+ response = (HttpServletResponse) responseMock.proxy();
+
+ String actionType = StrutsTestAction.class.getName();
+ mapping = new ActionMapping();
+ mapping.setPath("/myPath1");
+ mapping.setType(actionType);
+
+ service = new TestService();
+ container = new DefaultPicoContainer();
+ container.registerComponentInstance(TestService.class, service);
+
+ requestMock.stubs().method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(returnValue(container));
+ }
+
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,206 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import javax.servlet.ServletContext;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpSession;
-
-import org.apache.struts.action.ActionMapping;
-import org.apache.struts.action.ActionServlet;
-import org.jmock.Mock;
-import org.jmock.cglib.MockObjectTestCase;
-import org.nanocontainer.nanowar.KeyConstants;
-import org.nanocontainer.nanowar.TestAction;
-import org.nanocontainer.nanowar.TestService;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoInitializationException;
-import org.picocontainer.PicoIntrospectionException;
-import org.picocontainer.defaults.DefaultPicoContainer;
-
-/**
- * @author Stephen Molitor
- */
-public class ActionFactoryTestCase extends MockObjectTestCase {
-
- private Mock requestMock = mock(HttpServletRequest.class);
- private HttpServletRequest request = (HttpServletRequest) requestMock.proxy();
-
- private Mock sessionMock = mock(HttpSession.class);
- private HttpSession session = (HttpSession) sessionMock.proxy();
-
- private Mock servletContextMock = mock(ServletContext.class);
- private ServletContext servletContext = (ServletContext) servletContextMock.proxy();
-
- private Mock servletMock = mock(ActionServlet.class);
- private ActionServlet servlet = (ActionServlet) servletMock.proxy();
-
- private ActionMapping mapping1;
- private ActionMapping mapping2;
-
- private ActionFactory actionFactory;
- private TestService service;
-
- public void testActionContainerCreatedOnlyOncePerRequest() {
- MutablePicoContainer requestContainer = new DefaultPicoContainer();
- requestContainer.registerComponentImplementation(TestService.class);
- MutablePicoContainer actionsContainer = new DefaultPicoContainer(requestContainer);
-
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(actionsContainer));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(actionsContainer));
- requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(requestContainer));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
-
- actionFactory.getAction(request, mapping1, servlet);
- actionFactory.getAction(request, mapping1, servlet);
- actionFactory.getAction(request, mapping1, servlet);
- }
-
- public void testGetActionWhenActionsContainerAlreadyExists() {
- MutablePicoContainer requestContainer = new DefaultPicoContainer();
- requestContainer.registerComponentInstance(TestService.class, service);
- MutablePicoContainer actionsContainer = new DefaultPicoContainer(requestContainer);
-
- requestMock.stubs().method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(actionsContainer));
-
- StrutsTestAction action1 = (StrutsTestAction) actionFactory.getAction(request, mapping1, servlet);
- StrutsTestAction action2 = (StrutsTestAction) actionFactory.getAction(request, mapping2, servlet);
- TestAction action3 = (TestAction) actionFactory.getAction(request, mapping1, servlet);
- TestAction action4 = (TestAction) actionFactory.getAction(request, mapping2, servlet);
-
- assertNotNull(action1);
- assertNotNull(action2);
- assertNotSame(action1, action2);
- assertSame(action1, action3);
- assertSame(action2, action4);
-
- assertSame(action1, actionsContainer.getComponentInstance("/myPath1"));
- assertSame(action2, actionsContainer.getComponentInstance("/myPath2"));
-
- assertSame(service, action1.getService());
- assertSame(service, action2.getService());
-
- assertNotNull(action1.getServlet());
- assertNotNull(action2.getServlet());
- assertSame(servlet, action1.getServlet());
- assertSame(servlet, action2.getServlet());
- }
-
- public void testRequestContainerExists() {
- MutablePicoContainer requestContainer = new DefaultPicoContainer();
- requestContainer.registerComponentInstance(TestService.class, service);
-
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(requestContainer));
- requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
-
- TestAction action = "" actionFactory.getAction(request, mapping1, servlet);
- assertNotNull(action);
- assertSame(service, action.getService());
- }
-
- public void testSessionContainerExists() {
- MutablePicoContainer sessionContainer = new DefaultPicoContainer();
- sessionContainer.registerComponentInstance(TestService.class, service);
-
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(null));
- sessionMock.expects(once()).method("getAttribute").with(eq(KeyConstants.SESSION_CONTAINER)).will(
- returnValue(sessionContainer));
- requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
-
- TestAction action = "" actionFactory.getAction(request, mapping1, servlet);
- assertNotNull(action);
- assertSame(service, action.getService());
- }
-
- public void testApplicationContainerExists() {
- MutablePicoContainer appContainer = new DefaultPicoContainer();
- appContainer.registerComponentInstance(TestService.class, service);
-
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(null));
- sessionMock.expects(once()).method("getAttribute").with(eq(KeyConstants.SESSION_CONTAINER)).will(
- returnValue(null));
- servletContextMock.expects(once()).method("getAttribute").with(eq(KeyConstants.APPLICATION_CONTAINER)).will(
- returnValue(appContainer));
- requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
-
- TestAction action = "" actionFactory.getAction(request, mapping1, servlet);
- assertNotNull(action);
- assertSame(service, action.getService());
- }
-
- public void testNoContainerExists() {
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(null));
- sessionMock.expects(once()).method("getAttribute").with(eq(KeyConstants.SESSION_CONTAINER)).will(
- returnValue(null));
- servletContextMock.expects(once()).method("getAttribute").with(eq(KeyConstants.APPLICATION_CONTAINER)).will(
- returnValue(null));
-
- try {
- actionFactory.getAction(request, mapping1, servlet);
- fail("PicoInitializationException should have been raised");
- } catch (PicoInitializationException e) {
- // expected
- }
- }
-
- public void testBadActionType() {
- MutablePicoContainer actionsContainer = new DefaultPicoContainer();
- requestMock.stubs().method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(actionsContainer));
-
- mapping1.setType("/i/made/a/typo");
- try {
- actionFactory.getAction(request, mapping1, servlet);
- fail("PicoIntrospectionException should have been raised");
- } catch (PicoIntrospectionException e) {
- // expected
- }
- }
-
- protected void setUp() {
- String actionType = StrutsTestAction.class.getName();
-
- mapping1 = new ActionMapping();
- mapping1.setPath("/myPath1");
- mapping1.setType(actionType);
-
- mapping2 = new ActionMapping();
- mapping2.setPath("/myPath2");
- mapping2.setType(actionType);
-
- requestMock.stubs().method("getSession").will(returnValue(session));
- sessionMock.stubs().method("getServletContext").will(returnValue(servletContext));
-
- actionFactory = new ActionFactory();
- service = new TestService();
- }
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/ActionFactoryTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,204 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import javax.servlet.ServletContext;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpSession;
+
+import org.apache.struts.action.ActionMapping;
+import org.apache.struts.action.ActionServlet;
+import org.jmock.Mock;
+import org.jmock.cglib.MockObjectTestCase;
+import org.nanocontainer.nanowar.KeyConstants;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.PicoInitializationException;
+import org.picocontainer.PicoIntrospectionException;
+import org.picocontainer.defaults.DefaultPicoContainer;
+
+/**
+ * @author Stephen Molitor
+ */
+public class ActionFactoryTestCase extends MockObjectTestCase {
+
+ private Mock requestMock = mock(HttpServletRequest.class);
+ private HttpServletRequest request = (HttpServletRequest) requestMock.proxy();
+
+ private Mock sessionMock = mock(HttpSession.class);
+ private HttpSession session = (HttpSession) sessionMock.proxy();
+
+ private Mock servletContextMock = mock(ServletContext.class);
+ private ServletContext servletContext = (ServletContext) servletContextMock.proxy();
+
+ private Mock servletMock = mock(ActionServlet.class);
+ private ActionServlet servlet = (ActionServlet) servletMock.proxy();
+
+ private ActionMapping mapping1;
+ private ActionMapping mapping2;
+
+ private ActionFactory actionFactory;
+ private TestService service;
+
+ public void testActionContainerCreatedOnlyOncePerRequest() {
+ MutablePicoContainer requestContainer = new DefaultPicoContainer();
+ requestContainer.registerComponentImplementation(TestService.class);
+ MutablePicoContainer actionsContainer = new DefaultPicoContainer(requestContainer);
+
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(actionsContainer));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(actionsContainer));
+ requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(requestContainer));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+
+ actionFactory.getAction(request, mapping1, servlet);
+ actionFactory.getAction(request, mapping1, servlet);
+ actionFactory.getAction(request, mapping1, servlet);
+ }
+
+ public void testGetActionWhenActionsContainerAlreadyExists() {
+ MutablePicoContainer requestContainer = new DefaultPicoContainer();
+ requestContainer.registerComponentInstance(TestService.class, service);
+ MutablePicoContainer actionsContainer = new DefaultPicoContainer(requestContainer);
+
+ requestMock.stubs().method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(actionsContainer));
+
+ StrutsTestAction action1 = (StrutsTestAction) actionFactory.getAction(request, mapping1, servlet);
+ StrutsTestAction action2 = (StrutsTestAction) actionFactory.getAction(request, mapping2, servlet);
+ TestAction action3 = (TestAction) actionFactory.getAction(request, mapping1, servlet);
+ TestAction action4 = (TestAction) actionFactory.getAction(request, mapping2, servlet);
+
+ assertNotNull(action1);
+ assertNotNull(action2);
+ assertNotSame(action1, action2);
+ assertSame(action1, action3);
+ assertSame(action2, action4);
+
+ assertSame(action1, actionsContainer.getComponentInstance("/myPath1"));
+ assertSame(action2, actionsContainer.getComponentInstance("/myPath2"));
+
+ assertSame(service, action1.getService());
+ assertSame(service, action2.getService());
+
+ assertNotNull(action1.getServlet());
+ assertNotNull(action2.getServlet());
+ assertSame(servlet, action1.getServlet());
+ assertSame(servlet, action2.getServlet());
+ }
+
+ public void testRequestContainerExists() {
+ MutablePicoContainer requestContainer = new DefaultPicoContainer();
+ requestContainer.registerComponentInstance(TestService.class, service);
+
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(requestContainer));
+ requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+
+ TestAction action = "" actionFactory.getAction(request, mapping1, servlet);
+ assertNotNull(action);
+ assertSame(service, action.getService());
+ }
+
+ public void testSessionContainerExists() {
+ MutablePicoContainer sessionContainer = new DefaultPicoContainer();
+ sessionContainer.registerComponentInstance(TestService.class, service);
+
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(null));
+ sessionMock.expects(once()).method("getAttribute").with(eq(KeyConstants.SESSION_CONTAINER)).will(
+ returnValue(sessionContainer));
+ requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+
+ TestAction action = "" actionFactory.getAction(request, mapping1, servlet);
+ assertNotNull(action);
+ assertSame(service, action.getService());
+ }
+
+ public void testApplicationContainerExists() {
+ MutablePicoContainer appContainer = new DefaultPicoContainer();
+ appContainer.registerComponentInstance(TestService.class, service);
+
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(null));
+ sessionMock.expects(once()).method("getAttribute").with(eq(KeyConstants.SESSION_CONTAINER)).will(
+ returnValue(null));
+ servletContextMock.expects(once()).method("getAttribute").with(eq(KeyConstants.APPLICATION_CONTAINER)).will(
+ returnValue(appContainer));
+ requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+
+ TestAction action = "" actionFactory.getAction(request, mapping1, servlet);
+ assertNotNull(action);
+ assertSame(service, action.getService());
+ }
+
+ public void testNoContainerExists() {
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(null));
+ sessionMock.expects(once()).method("getAttribute").with(eq(KeyConstants.SESSION_CONTAINER)).will(
+ returnValue(null));
+ servletContextMock.expects(once()).method("getAttribute").with(eq(KeyConstants.APPLICATION_CONTAINER)).will(
+ returnValue(null));
+
+ try {
+ actionFactory.getAction(request, mapping1, servlet);
+ fail("PicoInitializationException should have been raised");
+ } catch (PicoInitializationException e) {
+ // expected
+ }
+ }
+
+ public void testBadActionType() {
+ MutablePicoContainer actionsContainer = new DefaultPicoContainer();
+ requestMock.stubs().method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(actionsContainer));
+
+ mapping1.setType("/i/made/a/typo");
+ try {
+ actionFactory.getAction(request, mapping1, servlet);
+ fail("PicoIntrospectionException should have been raised");
+ } catch (PicoIntrospectionException e) {
+ // expected
+ }
+ }
+
+ protected void setUp() {
+ String actionType = StrutsTestAction.class.getName();
+
+ mapping1 = new ActionMapping();
+ mapping1.setPath("/myPath1");
+ mapping1.setType(actionType);
+
+ mapping2 = new ActionMapping();
+ mapping2.setPath("/myPath2");
+ mapping2.setType(actionType);
+
+ requestMock.stubs().method("getSession").will(returnValue(session));
+ sessionMock.stubs().method("getServletContext").will(returnValue(servletContext));
+
+ actionFactory = new ActionFactory();
+ service = new TestService();
+ }
+
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,26 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import java.io.IOException;
-
-/**
- * @author Stephen Molitor
- */
-public class PicoActionServletTestCase extends AbstractActionTestCase {
-
- public void testProcessActionCreate() throws IOException {
- PicoActionServlet servlet = new PicoActionServlet();
- StrutsTestAction action = "" servlet.processActionCreate(mapping, request);
- assertNotNull(action);
- assertSame(service, action.getService());
- assertSame(servlet, action.getServlet());
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoActionServletTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import java.io.IOException;
+
+/**
+ * @author Stephen Molitor
+ */
+public class PicoActionServletTestCase extends AbstractActionTestCase {
+
+ public void testProcessActionCreate() throws IOException {
+ PicoActionServlet servlet = new PicoActionServlet();
+ StrutsTestAction action = "" servlet.processActionCreate(mapping, request);
+ assertNotNull(action);
+ assertSame(service, action.getService());
+ assertSame(servlet, action.getServlet());
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,27 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import java.io.IOException;
-
-import org.nanocontainer.nanowar.TestAction;
-
-/**
- * @author Stephen Molitor
- */
-public class PicoRequestProcessorTestCase extends AbstractActionTestCase {
-
- public void testProcessActionCreate() throws IOException {
- PicoRequestProcessor requestProcessor = new PicoRequestProcessor();
- TestAction action = "" requestProcessor.processActionCreate(request, response, mapping);
- assertNotNull(action);
- assertSame(service, action.getService());
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoRequestProcessorTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import java.io.IOException;
+
+
+/**
+ * @author Stephen Molitor
+ */
+public class PicoRequestProcessorTestCase extends AbstractActionTestCase {
+
+ public void testProcessActionCreate() throws IOException {
+ PicoRequestProcessor requestProcessor = new PicoRequestProcessor();
+ TestAction action = "" requestProcessor.processActionCreate(request, response, mapping);
+ assertNotNull(action);
+ assertSame(service, action.getService());
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,27 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import java.io.IOException;
-
-import org.nanocontainer.nanowar.TestAction;
-
-/**
- * @author Stephen Molitor
- */
-public class PicoTilesRequestProcessorTestCase extends AbstractActionTestCase {
-
- public void testProcessActionCreate() throws IOException {
- PicoTilesRequestProcessor requestProcessor = new PicoTilesRequestProcessor();
- TestAction action = "" requestProcessor.processActionCreate(request, response, mapping);
- assertNotNull(action);
- assertSame(service, action.getService());
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/PicoTilesRequestProcessorTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,26 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import java.io.IOException;
+
+
+/**
+ * @author Stephen Molitor
+ */
+public class PicoTilesRequestProcessorTestCase extends AbstractActionTestCase {
+
+ public void testProcessActionCreate() throws IOException {
+ PicoTilesRequestProcessor requestProcessor = new PicoTilesRequestProcessor();
+ TestAction action = "" requestProcessor.processActionCreate(request, response, mapping);
+ assertNotNull(action);
+ assertSame(service, action.getService());
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,29 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.struts;
-
-import org.apache.struts.action.Action;
-import org.nanocontainer.nanowar.TestAction;
-import org.nanocontainer.nanowar.TestService;
-
-/**
- * @author Stephen Molitor
- */
-public class StrutsTestAction extends Action implements TestAction {
- private final TestService service;
-
- public StrutsTestAction(TestService service) {
- this.service = service;
- }
-
- public TestService getService() {
- return service;
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/StrutsTestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+import org.apache.struts.action.Action;
+
+/**
+ * @author Stephen Molitor
+ */
+public class StrutsTestAction extends Action implements TestAction {
+ private final TestService service;
+
+ public StrutsTestAction(TestService service) {
+ this.service = service;
+ }
+
+ public TestService getService() {
+ return service;
+ }
+
+}
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/TestAction.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestAction.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/TestAction.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/TestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,8 @@
+package org.nanocontainer.nanowar.struts;
+
+
+public interface TestAction {
+
+ public TestService getService();
+
+}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/TestService.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/TestService.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/TestService.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-struts/src/test/org/nanocontainer/nanowar/struts/TestService.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,15 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.struts;
+
+/**
+ * @author Stephen Molitor
+ */
+public class TestService {
+}
Property changes: java/nanocontainer-nanowar/trunk/nanowar-webwork
Name: svn:ignore
+
target
Added: java/nanocontainer-nanowar/trunk/nanowar-webwork/pom.xml (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/pom.xml (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,43 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar-webwork</artifactId>
+ <name>NanoContainer Nanowar WebWork</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>velocity</groupId>
+ <artifactId>velocity</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>velocity-tools</groupId>
+ <artifactId>velocity-tools-view</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>webwork</artifactId>
+ <version>1.4</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <inherited>true</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork (from rev 3118, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork) ( => )
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java
===================================================================
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,28 +0,0 @@
-package org.nanocontainer.nanowar.webwork;
-
-import org.picocontainer.defaults.ObjectReference;
-import webwork.action.ActionContext;
-
-/**
- * References an object that lives as an attribute of the
- * webwork action context
- *
- * @author Konstantin Pribluda
- */
-public class ActionContextScopeObjectReference implements ObjectReference {
-
- private String key;
-
- public ActionContextScopeObjectReference(String key) {
- this.key = key;
- }
-
- public void set(Object item) {
- ActionContext.getContext().put(key, item);
- }
-
- public Object get() {
- return ActionContext.getContext().get(key);
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReference.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,28 @@
+package org.nanocontainer.nanowar.webwork;
+
+import org.picocontainer.defaults.ObjectReference;
+import webwork.action.ActionContext;
+
+/**
+ * References an object that lives as an attribute of the
+ * webwork action context
+ *
+ * @author Konstantin Pribluda
+ */
+public class ActionContextScopeObjectReference implements ObjectReference {
+
+ private String key;
+
+ public ActionContextScopeObjectReference(String key) {
+ this.key = key;
+ }
+
+ public void set(Object item) {
+ ActionContext.getContext().put(key, item);
+ }
+
+ public Object get() {
+ return ActionContext.getContext().get(key);
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,75 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.nanocontainer.nanowar.ActionsContainerFactory;
-import org.nanocontainer.nanowar.KeyConstants;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoIntrospectionException;
-import org.picocontainer.defaults.ObjectReference;
-
-import webwork.action.Action;
-import webwork.action.ServletActionContext;
-import webwork.action.factory.ActionFactory;
-
-/**
- * Replacement for the standard WebWork JavaActionFactory that uses a
- * PicoContainer to resolve all of the dependencies an Action may have.
- *
- * @author <a href="" Walnes</a>
- * @author Mauro Talevi
- */
-public class PicoActionFactory extends ActionFactory {
-
- private ActionsContainerFactory actionsContainerFactory = new ActionsContainerFactory();
-
- public Action getActionImpl(String className) throws Exception {
- try {
- Class actionClass = actionsContainerFactory.getActionClass(className);
- Action action = ""
- try {
- action = ""
- } catch (Exception e) {
- //swallow these exceptions and return null action
- }
- return action;
- } catch (PicoIntrospectionException e) {
- return null;
- }
- }
-
- protected Action instantiateAction(Class actionClass) {
- MutablePicoContainer actionsContainer = getActionsContainer();
- Action action = "" actionsContainer.getComponentInstance(actionClass);
-
- if (action == null) {
- // The action wasn't registered. Attempt to instantiate it.
- actionsContainer.registerComponentImplementation(actionClass);
- action = "" actionsContainer.getComponentInstance(actionClass);
- }
- return action;
- }
-
-
- /**
- * Return actions container, first try using the ActionsContainerFactory,
- * than in WebWork ActionContext.
- */
- private MutablePicoContainer getActionsContainer() {
- HttpServletRequest request = ServletActionContext.getRequest();
- if ( request != null ) {
- return actionsContainerFactory.getActionsContainer(request);
- } else {
- ObjectReference ref = new ActionContextScopeObjectReference(KeyConstants.REQUEST_CONTAINER);
- return (MutablePicoContainer) ref.get();
- }
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoActionFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,75 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.nanocontainer.nanowar.ActionsContainerFactory;
+import org.nanocontainer.nanowar.KeyConstants;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.PicoIntrospectionException;
+import org.picocontainer.defaults.ObjectReference;
+
+import webwork.action.Action;
+import webwork.action.ServletActionContext;
+import webwork.action.factory.ActionFactory;
+
+/**
+ * Replacement for the standard WebWork JavaActionFactory that uses a
+ * PicoContainer to resolve all of the dependencies an Action may have.
+ *
+ * @author <a href="" Walnes</a>
+ * @author Mauro Talevi
+ */
+public class PicoActionFactory extends ActionFactory {
+
+ private ActionsContainerFactory actionsContainerFactory = new ActionsContainerFactory();
+
+ public Action getActionImpl(String className) throws Exception {
+ try {
+ Class actionClass = actionsContainerFactory.getActionClass(className);
+ Action action = ""
+ try {
+ action = ""
+ } catch (Exception e) {
+ //swallow these exceptions and return null action
+ }
+ return action;
+ } catch (PicoIntrospectionException e) {
+ return null;
+ }
+ }
+
+ protected Action instantiateAction(Class actionClass) {
+ MutablePicoContainer actionsContainer = getActionsContainer();
+ Action action = "" actionsContainer.getComponentInstance(actionClass);
+
+ if (action == null) {
+ // The action wasn't registered. Attempt to instantiate it.
+ actionsContainer.registerComponentImplementation(actionClass);
+ action = "" actionsContainer.getComponentInstance(actionClass);
+ }
+ return action;
+ }
+
+
+ /**
+ * Return actions container, first try using the ActionsContainerFactory,
+ * than in WebWork ActionContext.
+ */
+ private MutablePicoContainer getActionsContainer() {
+ HttpServletRequest request = ServletActionContext.getRequest();
+ if ( request != null ) {
+ return actionsContainerFactory.getActionsContainer(request);
+ } else {
+ ObjectReference ref = new ActionContextScopeObjectReference(KeyConstants.REQUEST_CONTAINER);
+ return (MutablePicoContainer) ref.get();
+ }
+ }
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,17 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-
-/**
- * @deprecated Use PicoWebWork1ServetDispatcher
- */
-public class PicoServletDispatcher extends PicoWebWork1ServletDispatcher {
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,17 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+
+/**
+ * @deprecated Use PicoWebWork1ServetDispatcher
+ */
+public class PicoServletDispatcher extends PicoWebWork1ServletDispatcher {
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,51 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-import org.nanocontainer.nanowar.ServletRequestContainerLauncher;
-import webwork.action.factory.ActionFactory;
-import webwork.dispatcher.ServletDispatcher;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-/**
- * Extension to the standard WebWork 1 ServletDispatcher that instantiates
- * a new container in the request scope for each request and disposes of it
- * correctly at the end of the request.
- * <p/>
- * To use, replace the WebWork ServletDispatcher in web.xml with this.
- *
- * @author <a href="" Walnes</a>
- */
-public class PicoWebWork1ServletDispatcher extends ServletDispatcher {
-
- public PicoWebWork1ServletDispatcher() {
- super();
- ActionFactory.setActionFactory(new WebWorkActionFactory());
- }
-
- public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
- ServletRequestContainerLauncher containerLauncher = new ServletRequestContainerLauncher(getServletContext(), request);
- try {
- containerLauncher.startContainer();
- // process the servlet using webwork
- super.service(request, response);
- } catch (Exception e) {
- throw new ServletException(e);
- } finally {
- try {
- containerLauncher.killContainer();
- } catch (Exception e) {
- throw new ServletException(e);
- }
- }
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/PicoWebWork1ServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,51 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+import org.nanocontainer.nanowar.ServletRequestContainerLauncher;
+import webwork.action.factory.ActionFactory;
+import webwork.dispatcher.ServletDispatcher;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+/**
+ * Extension to the standard WebWork 1 ServletDispatcher that instantiates
+ * a new container in the request scope for each request and disposes of it
+ * correctly at the end of the request.
+ * <p/>
+ * To use, replace the WebWork ServletDispatcher in web.xml with this.
+ *
+ * @author <a href="" Walnes</a>
+ */
+public class PicoWebWork1ServletDispatcher extends ServletDispatcher {
+
+ public PicoWebWork1ServletDispatcher() {
+ super();
+ ActionFactory.setActionFactory(new WebWorkActionFactory());
+ }
+
+ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
+ ServletRequestContainerLauncher containerLauncher = new ServletRequestContainerLauncher(getServletContext(), request);
+ try {
+ containerLauncher.startContainer();
+ // process the servlet using webwork
+ super.service(request, response);
+ } catch (Exception e) {
+ throw new ServletException(e);
+ } finally {
+ try {
+ containerLauncher.killContainer();
+ } catch (Exception e) {
+ throw new ServletException(e);
+ }
+ }
+ }
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,46 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-import webwork.action.Action;
-import webwork.action.factory.ActionFactory;
-import webwork.action.factory.AliasingActionFactoryProxy;
-import webwork.action.factory.ChainingActionFactoryProxy;
-import webwork.action.factory.CommandActionFactoryProxy;
-import webwork.action.factory.ContextActionFactoryProxy;
-import webwork.action.factory.ParametersActionFactoryProxy;
-import webwork.action.factory.PrefixActionFactoryProxy;
-import webwork.action.factory.PrepareActionFactoryProxy;
-
-/**
- * Custom webwork action lifecycle that ensures actions are treated as pico components.
- */
-public class WebWorkActionFactory extends ActionFactory {
-
- private ActionFactory factory;
-
- public WebWorkActionFactory() {
- // replace standard JavaActionFactory with PicoActionFactory
- factory = new PicoActionFactory();
- // the rest are the standard webwork ActionFactoryProxies
- factory = new PrefixActionFactoryProxy(factory);
- factory = new CommandActionFactoryProxy(factory);
- factory = new AliasingActionFactoryProxy(factory);
- factory = new CommandActionFactoryProxy(factory);
- factory = new ContextActionFactoryProxy(factory);
- factory = new PrepareActionFactoryProxy(factory);
- factory = new ParametersActionFactoryProxy(factory);
- factory = new ChainingActionFactoryProxy(factory);
- }
-
- public Action getActionImpl(String actionName) throws Exception {
- return factory.getActionImpl(actionName);
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkActionFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,46 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+import webwork.action.Action;
+import webwork.action.factory.ActionFactory;
+import webwork.action.factory.AliasingActionFactoryProxy;
+import webwork.action.factory.ChainingActionFactoryProxy;
+import webwork.action.factory.CommandActionFactoryProxy;
+import webwork.action.factory.ContextActionFactoryProxy;
+import webwork.action.factory.ParametersActionFactoryProxy;
+import webwork.action.factory.PrefixActionFactoryProxy;
+import webwork.action.factory.PrepareActionFactoryProxy;
+
+/**
+ * Custom webwork action lifecycle that ensures actions are treated as pico components.
+ */
+public class WebWorkActionFactory extends ActionFactory {
+
+ private ActionFactory factory;
+
+ public WebWorkActionFactory() {
+ // replace standard JavaActionFactory with PicoActionFactory
+ factory = new PicoActionFactory();
+ // the rest are the standard webwork ActionFactoryProxies
+ factory = new PrefixActionFactoryProxy(factory);
+ factory = new CommandActionFactoryProxy(factory);
+ factory = new AliasingActionFactoryProxy(factory);
+ factory = new CommandActionFactoryProxy(factory);
+ factory = new ContextActionFactoryProxy(factory);
+ factory = new PrepareActionFactoryProxy(factory);
+ factory = new ParametersActionFactoryProxy(factory);
+ factory = new ChainingActionFactoryProxy(factory);
+ }
+
+ public Action getActionImpl(String actionName) throws Exception {
+ return factory.getActionImpl(actionName);
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,106 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-
-import org.apache.velocity.Template;
-import org.apache.velocity.VelocityContext;
-import org.apache.velocity.context.Context;
-import org.apache.velocity.tools.view.servlet.VelocityViewServlet;
-import org.nanocontainer.nanowar.KeyConstants;
-import org.nanocontainer.nanowar.RequestScopeObjectReference;
-import org.picocontainer.PicoContainer;
-import org.picocontainer.alternatives.EmptyPicoContainer;
-import webwork.action.ServletActionContext;
-import webwork.util.ServletValueStack;
-import webwork.view.velocity.WebWorkUtil;
-
-/**
- * velocity integration servlet. integrates container hieararchy into velocity context
- * as well webwork specific objects. This servlet is not derived from standart webwork
- * velocity servlet because it inherits from obsolete velocity servlet ( which does not
- * allow resource loading from webapp ). acc configuration is done like original velocity
- * servlet does
- * @author Konstantin Pribluda
- */
-public class WebWorkVelocityServlet extends VelocityViewServlet implements KeyConstants {
-
- static final String WEBWORK_UTIL = "webwork";
- // those have to be removed once dependency problem is solved.
- // will bomb anyway.
- static final String REQUEST = "req";
- static final String RESPONSE = "res";
-
- static final EmptyPicoContainer emptyContainer = new EmptyPicoContainer();
- protected Context createContext(javax.servlet.http.HttpServletRequest request,
- javax.servlet.http.HttpServletResponse response)
- {
- Context ctx = new NanocontainerVelocityContext(
- (PicoContainer)(new RequestScopeObjectReference(request, REQUEST_CONTAINER)).get(),
- ServletValueStack.getStack(request)
- );
- ctx.put(REQUEST, request);
- ctx.put(RESPONSE, response);
- return ctx;
- }
-
-
- /**
- * Get the template to show.
- */
- protected Template handleRequest(javax.servlet.http.HttpServletRequest aRequest,
- javax.servlet.http.HttpServletResponse aResponse,
- Context ctx)
- throws java.lang.Exception
- {
- // Bind standard WebWork utility into context
-
- ServletActionContext.setContext(aRequest, aResponse, getServletContext(), null);
- ctx.put(WEBWORK_UTIL, new WebWorkUtil(ctx));
-
- String servletPath = (String)aRequest.getAttribute("javax.servlet.include.servlet_path");
- if (servletPath == null)
- servletPath = aRequest.getServletPath();
- return getTemplate(servletPath);
- }
-
- static class NanocontainerVelocityContext extends VelocityContext {
- PicoContainer container;
- ServletValueStack stack;
- NanocontainerVelocityContext(PicoContainer container, ServletValueStack stack) {
- this.container = container != null ? container : emptyContainer;
- this.stack = stack;
- }
-
- public boolean internalContainsKey(java.lang.Object key)
- {
- boolean contains = super.internalContainsKey(key);
- if(contains)
- return contains;
-
- contains = stack.test(key.toString());
- if(contains)
- return contains;
-
- return container.getComponentAdapter(key) != null;
- }
-
- public Object internalGet(String key)
- {
- if(super.internalContainsKey(key))
- return super.internalGet(key);
-
- if(stack.test(key.toString()))
- return stack.findValue(key);
-
- return container.getComponentInstance(key);
- }
- }
-}
-
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/java/org/nanocontainer/nanowar/webwork/WebWorkVelocityServlet.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,106 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+
+import org.apache.velocity.Template;
+import org.apache.velocity.VelocityContext;
+import org.apache.velocity.context.Context;
+import org.apache.velocity.tools.view.servlet.VelocityViewServlet;
+import org.nanocontainer.nanowar.KeyConstants;
+import org.nanocontainer.nanowar.RequestScopeObjectReference;
+import org.picocontainer.PicoContainer;
+import org.picocontainer.alternatives.EmptyPicoContainer;
+import webwork.action.ServletActionContext;
+import webwork.util.ServletValueStack;
+import webwork.view.velocity.WebWorkUtil;
+
+/**
+ * velocity integration servlet. integrates container hieararchy into velocity context
+ * as well webwork specific objects. This servlet is not derived from standart webwork
+ * velocity servlet because it inherits from obsolete velocity servlet ( which does not
+ * allow resource loading from webapp ). acc configuration is done like original velocity
+ * servlet does
+ * @author Konstantin Pribluda
+ */
+public class WebWorkVelocityServlet extends VelocityViewServlet implements KeyConstants {
+
+ static final String WEBWORK_UTIL = "webwork";
+ // those have to be removed once dependency problem is solved.
+ // will bomb anyway.
+ static final String REQUEST = "req";
+ static final String RESPONSE = "res";
+
+ static final EmptyPicoContainer emptyContainer = new EmptyPicoContainer();
+ protected Context createContext(javax.servlet.http.HttpServletRequest request,
+ javax.servlet.http.HttpServletResponse response)
+ {
+ Context ctx = new NanocontainerVelocityContext(
+ (PicoContainer)(new RequestScopeObjectReference(request, REQUEST_CONTAINER)).get(),
+ ServletValueStack.getStack(request)
+ );
+ ctx.put(REQUEST, request);
+ ctx.put(RESPONSE, response);
+ return ctx;
+ }
+
+
+ /**
+ * Get the template to show.
+ */
+ protected Template handleRequest(javax.servlet.http.HttpServletRequest aRequest,
+ javax.servlet.http.HttpServletResponse aResponse,
+ Context ctx)
+ throws java.lang.Exception
+ {
+ // Bind standard WebWork utility into context
+
+ ServletActionContext.setContext(aRequest, aResponse, getServletContext(), null);
+ ctx.put(WEBWORK_UTIL, new WebWorkUtil(ctx));
+
+ String servletPath = (String)aRequest.getAttribute("javax.servlet.include.servlet_path");
+ if (servletPath == null)
+ servletPath = aRequest.getServletPath();
+ return getTemplate(servletPath);
+ }
+
+ static class NanocontainerVelocityContext extends VelocityContext {
+ PicoContainer container;
+ ServletValueStack stack;
+ NanocontainerVelocityContext(PicoContainer container, ServletValueStack stack) {
+ this.container = container != null ? container : emptyContainer;
+ this.stack = stack;
+ }
+
+ public boolean internalContainsKey(java.lang.Object key)
+ {
+ boolean contains = super.internalContainsKey(key);
+ if(contains)
+ return contains;
+
+ contains = stack.test(key.toString());
+ if(contains)
+ return contains;
+
+ return container.getComponentAdapter(key) != null;
+ }
+
+ public Object internalGet(String key)
+ {
+ if(super.internalContainsKey(key))
+ return super.internalGet(key);
+
+ if(stack.test(key.toString()))
+ return stack.findValue(key);
+
+ return container.getComponentInstance(key);
+ }
+ }
+}
+
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork (from rev 3118, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork) ( => )
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java
===================================================================
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,21 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- * Original code by *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-import junit.framework.TestCase;
-import webwork.action.ActionContext;
-
-public class ActionContextScopeObjectReferenceTestCase extends TestCase {
-
-
- public void testReferenceCanBeFound() throws Exception {
- ActionContext.getContext().put("foo","bar");
- assertEquals("bar",(new ActionContextScopeObjectReference("foo")).get());
- }
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/ActionContextScopeObjectReferenceTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,21 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ * Original code by *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+import junit.framework.TestCase;
+import webwork.action.ActionContext;
+
+public class ActionContextScopeObjectReferenceTestCase extends TestCase {
+
+
+ public void testReferenceCanBeFound() throws Exception {
+ ActionContext.getContext().put("foo","bar");
+ assertEquals("bar",(new ActionContextScopeObjectReference("foo")).get());
+ }
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,91 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.jmock.Mock;
-import org.jmock.MockObjectTestCase;
-import org.nanocontainer.nanowar.KeyConstants;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.defaults.DefaultPicoContainer;
-
-import webwork.action.ServletActionContext;
-
-/**
- * @author Konstantin Pribluda
- * @author Mauro Talevi
- */
-public class PicoActionFactoryTestCase extends MockObjectTestCase {
-
- private PicoActionFactory factory;
- private DefaultPicoContainer container;
-
- public void setUp(){
- factory = new PicoActionFactory();
- container = new DefaultPicoContainer();
- (new ActionContextScopeObjectReference(KeyConstants.REQUEST_CONTAINER)).set(container);
- }
-
- public void testActionInstantiationWithValidClassName() throws Exception {
- container.registerComponentInstance("foo");
- TestAction action = "" factory
- .getActionImpl("org.nanocontainer.nanowar.webwork.TestAction");
- assertNotNull(action);
- assertEquals("foo", action.getFoo());
- }
-
- public void testActionInstantiationWhichFailsDueToFailedDependencies() throws Exception {
- TestAction action = "" factory
- .getActionImpl("org.nanocontainer.nanowar.webwork.TestAction");
- assertNull(action);
- }
-
- public void testActionInstantiationWithInvalidClassName() throws Exception {
- container.registerComponentInstance("foo");
- TestAction action = "" factory
- .getActionImpl("invalidAction");
- assertNull(action);
- }
-
- public void testActionInstantiationWhichHasAlreadyBeenRegistered() throws Exception {
- container.registerComponentInstance("foo");
- container.registerComponentImplementation(TestAction.class);
- TestAction action1 = (TestAction) container.getComponentInstance(TestAction.class);
- TestAction action2 = (TestAction) factory
- .getActionImpl("org.nanocontainer.nanowar.webwork.TestAction");
- assertSame(action1, action2);
- }
-
- public void testActionInstantiationWhichHasAlreadyBeenRequested() throws Exception {
- container.registerComponentInstance("foo");
- TestAction action1 = (TestAction) factory
- .getActionImpl("org.nanocontainer.nanowar.webwork.TestAction");
- TestAction action2 = (TestAction) factory
- .getActionImpl("org.nanocontainer.nanowar.webwork.TestAction");
- assertSame(action1, action2);
- }
-
- public void testActionContainerIsFoundInRequest() throws Exception {
- Mock requestMock = mock(HttpServletRequest.class);
- HttpServletRequest request = (HttpServletRequest) requestMock.proxy();
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(container));
- requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
- ServletActionContext.setRequest(request);
- container.registerComponentInstance("foo");
- TestAction action = "" factory
- .getActionImpl("org.nanocontainer.nanowar.webwork.TestAction");
- assertNotNull(action);
- }
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/PicoActionFactoryTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,91 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jmock.Mock;
+import org.jmock.MockObjectTestCase;
+import org.nanocontainer.nanowar.KeyConstants;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.defaults.DefaultPicoContainer;
+
+import webwork.action.ServletActionContext;
+
+/**
+ * @author Konstantin Pribluda
+ * @author Mauro Talevi
+ */
+public class PicoActionFactoryTestCase extends MockObjectTestCase {
+
+ private PicoActionFactory factory;
+ private DefaultPicoContainer container;
+
+ public void setUp(){
+ factory = new PicoActionFactory();
+ container = new DefaultPicoContainer();
+ (new ActionContextScopeObjectReference(KeyConstants.REQUEST_CONTAINER)).set(container);
+ }
+
+ public void testActionInstantiationWithValidClassName() throws Exception {
+ container.registerComponentInstance("foo");
+ TestAction action = "" factory
+ .getActionImpl(TestAction.class.getName());
+ assertNotNull(action);
+ assertEquals("foo", action.getFoo());
+ }
+
+ public void testActionInstantiationWhichFailsDueToFailedDependencies() throws Exception {
+ TestAction action = "" factory
+ .getActionImpl(TestAction.class.getName());
+ assertNull(action);
+ }
+
+ public void testActionInstantiationWithInvalidClassName() throws Exception {
+ container.registerComponentInstance("foo");
+ TestAction action = "" factory
+ .getActionImpl("invalidAction");
+ assertNull(action);
+ }
+
+ public void testActionInstantiationWhichHasAlreadyBeenRegistered() throws Exception {
+ container.registerComponentInstance("foo");
+ container.registerComponentImplementation(TestAction.class);
+ TestAction action1 = (TestAction) container.getComponentInstance(TestAction.class);
+ TestAction action2 = (TestAction) factory
+ .getActionImpl(TestAction.class.getName());
+ assertSame(action1, action2);
+ }
+
+ public void testActionInstantiationWhichHasAlreadyBeenRequested() throws Exception {
+ container.registerComponentInstance("foo");
+ TestAction action1 = (TestAction) factory
+ .getActionImpl(TestAction.class.getName());
+ TestAction action2 = (TestAction) factory
+ .getActionImpl(TestAction.class.getName());
+ assertSame(action1, action2);
+ }
+
+ public void testActionContainerIsFoundInRequest() throws Exception {
+ Mock requestMock = mock(HttpServletRequest.class);
+ HttpServletRequest request = (HttpServletRequest) requestMock.proxy();
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(once()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(container));
+ requestMock.expects(once()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+ ServletActionContext.setRequest(request);
+ container.registerComponentInstance("foo");
+ TestAction action = "" factory
+ .getActionImpl(TestAction.class.getName());
+ assertNotNull(action);
+ }
+
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/TestAction.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork/TestAction.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/TestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,28 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork;
-
-
-import webwork.action.Action;
-
-
-public class TestAction implements Action {
- String foo;
- public TestAction(String foo) {
- this.foo = foo;
- }
-
- public String getFoo() {
- return foo;
- }
-
- public String execute() {
- return foo;
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/TestAction.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork/TestAction.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/TestAction.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork/src/test/org/nanocontainer/nanowar/webwork/TestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,28 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork;
+
+
+import webwork.action.Action;
+
+
+public class TestAction implements Action {
+ String foo;
+ public TestAction(String foo) {
+ this.foo = foo;
+ }
+
+ public String getFoo() {
+ return foo;
+ }
+
+ public String execute() {
+ return foo;
+ }
+}
Property changes: java/nanocontainer-nanowar/trunk/nanowar-webwork2
Name: svn:ignore
+
target
Added: java/nanocontainer-nanowar/trunk/nanowar-webwork2/pom.xml (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/pom.xml (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar-webwork2</artifactId>
+ <name>NanoContainer Nanowar WebWork2</name>
+ <dependencies>
+ <dependency>
+ <groupId>org.picocontainer</groupId>
+ <artifactId>picocontainer-gems</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-nanowar</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>velocity</groupId>
+ <artifactId>velocity</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>velocity-tools</groupId>
+ <artifactId>velocity-tools-view</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>xwork</artifactId>
+ <version>1.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>opensymphony</groupId>
+ <artifactId>webwork</artifactId>
+ <version>2.1.7</version>
+ </dependency>
+ </dependencies>
+ <build>
+ <plugins>
+ <plugin>
+ <inherited>true</inherited>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <configuration>
+ <skip>true</skip>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+</project>
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2 (from rev 3118, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2) ( => )
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java
===================================================================
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,38 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-import java.util.Map;
-
-import com.opensymphony.xwork.ActionProxy;
-import com.opensymphony.xwork.DefaultActionInvocation;
-
-/**
- * Implementation of {@link com.opensymphony.xwork.ActionInvocation ActionInvocation}
- * which uses a PicoContainer to create Action instances.
- *
- * @author Chris Sturm
- * @author Aslak Hellesøy
- * @deprecated Use DefaultActionInvocation
- */
-public class PicoActionInvocation extends DefaultActionInvocation {
-
- public PicoActionInvocation(ActionProxy proxy) throws Exception {
- super(proxy);
- }
-
- public PicoActionInvocation(ActionProxy proxy, Map extraContext) throws Exception {
- super(proxy, extraContext);
- }
-
- public PicoActionInvocation(ActionProxy proxy, Map extraContext, boolean pushAction) throws Exception {
- super(proxy, extraContext, pushAction);
- }
-
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionInvocation.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,38 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import java.util.Map;
+
+import com.opensymphony.xwork.ActionProxy;
+import com.opensymphony.xwork.DefaultActionInvocation;
+
+/**
+ * Implementation of {@link com.opensymphony.xwork.ActionInvocation ActionInvocation}
+ * which uses a PicoContainer to create Action instances.
+ *
+ * @author Chris Sturm
+ * @author Aslak Hellesøy
+ * @deprecated Use DefaultActionInvocation
+ */
+public class PicoActionInvocation extends DefaultActionInvocation {
+
+ public PicoActionInvocation(ActionProxy proxy) throws Exception {
+ super(proxy);
+ }
+
+ public PicoActionInvocation(ActionProxy proxy, Map extraContext) throws Exception {
+ super(proxy, extraContext);
+ }
+
+ public PicoActionInvocation(ActionProxy proxy, Map extraContext, boolean pushAction) throws Exception {
+ super(proxy, extraContext, pushAction);
+ }
+
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,39 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-import com.opensymphony.xwork.ActionInvocation;
-import com.opensymphony.xwork.ActionProxy;
-import com.opensymphony.xwork.DefaultActionProxyFactory;
-
-import java.util.Map;
-
-import org.nanocontainer.nanowar.webwork2.PicoActionInvocation;
-
-/**
- * Extension of XWork's {@link com.opensymphony.xwork.ActionProxyFactory ActionProxyFactory}
- * which creates PicoActionInvocations.
- *
- * @author Chris Sturm
- * @see PicoActionInvocation
- * @deprecated Use DefaultActionProxyFactory
- */
-public class PicoActionProxyFactory extends DefaultActionProxyFactory {
- public ActionInvocation createActionInvocation(ActionProxy actionProxy) throws Exception {
- return new PicoActionInvocation(actionProxy);
- }
-
- public ActionInvocation createActionInvocation(ActionProxy actionProxy, Map extraContext) throws Exception {
- return new PicoActionInvocation(actionProxy, extraContext);
- }
-
- public ActionInvocation createActionInvocation(ActionProxy actionProxy, Map extraContext, boolean pushAction) throws Exception {
- return new PicoActionInvocation(actionProxy, extraContext, pushAction);
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoActionProxyFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,39 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import com.opensymphony.xwork.ActionInvocation;
+import com.opensymphony.xwork.ActionProxy;
+import com.opensymphony.xwork.DefaultActionProxyFactory;
+
+import java.util.Map;
+
+import org.nanocontainer.nanowar.webwork2.PicoActionInvocation;
+
+/**
+ * Extension of XWork's {@link com.opensymphony.xwork.ActionProxyFactory ActionProxyFactory}
+ * which creates PicoActionInvocations.
+ *
+ * @author Chris Sturm
+ * @see PicoActionInvocation
+ * @deprecated Use DefaultActionProxyFactory
+ */
+public class PicoActionProxyFactory extends DefaultActionProxyFactory {
+ public ActionInvocation createActionInvocation(ActionProxy actionProxy) throws Exception {
+ return new PicoActionInvocation(actionProxy);
+ }
+
+ public ActionInvocation createActionInvocation(ActionProxy actionProxy, Map extraContext) throws Exception {
+ return new PicoActionInvocation(actionProxy, extraContext);
+ }
+
+ public ActionInvocation createActionInvocation(ActionProxy actionProxy, Map extraContext, boolean pushAction) throws Exception {
+ return new PicoActionInvocation(actionProxy, extraContext, pushAction);
+ }
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,99 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-import com.opensymphony.xwork.ObjectFactory;
-import org.nanocontainer.nanowar.ActionsContainerFactory;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.defaults.ObjectReference;
-
-import javax.servlet.http.HttpServletRequest;
-import java.util.Map;
-
-/**
- * <p>
- * XWork ObjectFactory which uses a PicoContainer to create component instances.
- * </p>
- *
- * @author Cyrille Le Clerc
- * @author Jonas Engman
- * @author Mauro Talevi
- * @author Grégory Joseph
- */
-public class PicoObjectFactory extends ObjectFactory {
-
- private final ActionsContainerFactory actionsContainerFactory = new ActionsContainerFactory();
- private final ObjectReference objectReference;
-
- /**
- * Creates a PicoObjectFactory with given object reference,
- * used to pass the http request to the factory
- *
- * @param objectReference the ObjectReference
- */
- public PicoObjectFactory(ObjectReference objectReference) {
- this.objectReference = objectReference;
- }
-
- public boolean isNoArgConstructorRequired() {
- return false;
- }
-
- /**
- * Webwork-2.2 / XWork-1.1 method. ExtraContext can be ignored.
- */
- public Object buildBean(Class clazz, Map extraContext) throws Exception {
- return buildBean(clazz);
- }
-
- /**
- * Webwork-2.2 / XWork-1.1 method. ExtraContext can be ignored.
- */
- public Object buildBean(String className, Map extraContext) throws Exception {
- return buildBean(className);
- }
-
- /**
- * Webwork-2.2 / XWork-1.1 method. Used to validate a class be loaded.
- * Using actionsContainerFactory for consistency with build methods.
- */
- public Class getClassInstance(String className) throws ClassNotFoundException {
- return actionsContainerFactory.getActionClass(className);
- }
-
- /**
- * Instantiates an action using the PicoContainer found in the request scope.
- *
- * @see com.opensymphony.xwork.ObjectFactory#buildBean(java.lang.Class)
- */
- public Object buildBean(Class actionClass) throws Exception {
- MutablePicoContainer actionsContainer = actionsContainerFactory.getActionsContainer((HttpServletRequest) objectReference.get());
- Object action = ""
-
- if (action == null) {
- // The action wasn't registered. Attempt to instantiate it.
- actionsContainer.registerComponentImplementation(actionClass);
- action = ""
- }
- return action;
- }
-
- /**
- * As {@link ObjectFactory#buildBean(java.lang.String)}does not delegate to
- * {@link ObjectFactory#buildBean(java.lang.Class)} but directly calls
- * <code>clazz.newInstance()</code>, overwrite this method to call
- * <code>buildBean()</code>
- *
- * @see com.opensymphony.xwork.ObjectFactory#buildBean(java.lang.String)
- */
- public Object buildBean(String className) throws Exception {
- Class actionClass = actionsContainerFactory.getActionClass(className);
- return buildBean(actionClass);
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactory.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,99 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import com.opensymphony.xwork.ObjectFactory;
+import org.nanocontainer.nanowar.ActionsContainerFactory;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.defaults.ObjectReference;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.Map;
+
+/**
+ * <p>
+ * XWork ObjectFactory which uses a PicoContainer to create component instances.
+ * </p>
+ *
+ * @author Cyrille Le Clerc
+ * @author Jonas Engman
+ * @author Mauro Talevi
+ * @author Grégory Joseph
+ */
+public class PicoObjectFactory extends ObjectFactory {
+
+ private final ActionsContainerFactory actionsContainerFactory = new ActionsContainerFactory();
+ private final ObjectReference objectReference;
+
+ /**
+ * Creates a PicoObjectFactory with given object reference,
+ * used to pass the http request to the factory
+ *
+ * @param objectReference the ObjectReference
+ */
+ public PicoObjectFactory(ObjectReference objectReference) {
+ this.objectReference = objectReference;
+ }
+
+ public boolean isNoArgConstructorRequired() {
+ return false;
+ }
+
+ /**
+ * Webwork-2.2 / XWork-1.1 method. ExtraContext can be ignored.
+ */
+ public Object buildBean(Class clazz, Map extraContext) throws Exception {
+ return buildBean(clazz);
+ }
+
+ /**
+ * Webwork-2.2 / XWork-1.1 method. ExtraContext can be ignored.
+ */
+ public Object buildBean(String className, Map extraContext) throws Exception {
+ return buildBean(className);
+ }
+
+ /**
+ * Webwork-2.2 / XWork-1.1 method. Used to validate a class be loaded.
+ * Using actionsContainerFactory for consistency with build methods.
+ */
+ public Class getClassInstance(String className) throws ClassNotFoundException {
+ return actionsContainerFactory.getActionClass(className);
+ }
+
+ /**
+ * Instantiates an action using the PicoContainer found in the request scope.
+ *
+ * @see com.opensymphony.xwork.ObjectFactory#buildBean(java.lang.Class)
+ */
+ public Object buildBean(Class actionClass) throws Exception {
+ MutablePicoContainer actionsContainer = actionsContainerFactory.getActionsContainer((HttpServletRequest) objectReference.get());
+ Object action = ""
+
+ if (action == null) {
+ // The action wasn't registered. Attempt to instantiate it.
+ actionsContainer.registerComponentImplementation(actionClass);
+ action = ""
+ }
+ return action;
+ }
+
+ /**
+ * As {@link ObjectFactory#buildBean(java.lang.String)}does not delegate to
+ * {@link ObjectFactory#buildBean(java.lang.Class)} but directly calls
+ * <code>clazz.newInstance()</code>, overwrite this method to call
+ * <code>buildBean()</code>
+ *
+ * @see com.opensymphony.xwork.ObjectFactory#buildBean(java.lang.String)
+ */
+ public Object buildBean(String className) throws Exception {
+ Class actionClass = actionsContainerFactory.getActionClass(className);
+ return buildBean(actionClass);
+ }
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,60 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-import java.io.IOException;
-
-import javax.servlet.Filter;
-import javax.servlet.FilterChain;
-import javax.servlet.FilterConfig;
-import javax.servlet.ServletException;
-import javax.servlet.ServletRequest;
-import javax.servlet.ServletResponse;
-import javax.servlet.http.HttpServletRequest;
-
-import org.picocontainer.defaults.ObjectReference;
-import org.picocontainer.gems.adapters.ThreadLocalReference;
-
-import com.opensymphony.xwork.ObjectFactory;
-
-/**
- * Filter which initialises a PicoObjectFactory as the XWork ObjectFactory
- * and passes to it the HttpServletRequest.
- *
- * @author Jonas Engman
- */
-public class PicoObjectFactoryFilter implements Filter {
-
- private final static String ALREADY_FILTERED_KEY = "nanocontainer_objectfactory_filtered";
-
- private ObjectReference objectReference;
-
- public void init(FilterConfig config) throws ServletException {
- objectReference = new ThreadLocalReference();
- ObjectFactory.setObjectFactory(new PicoObjectFactory(objectReference));
- }
-
- public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
- HttpServletRequest httpServletRequest = (HttpServletRequest) request;
- if (httpServletRequest.getAttribute(ALREADY_FILTERED_KEY) == null) {
- httpServletRequest.setAttribute(ALREADY_FILTERED_KEY, Boolean.TRUE);
- objectReference.set(httpServletRequest);
- try {
- chain.doFilter(request, response);
- } finally {
- objectReference.set(null);
- }
- } else {
- chain.doFilter(request, response);
- }
- }
-
- public void destroy() {
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryFilter.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,60 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import java.io.IOException;
+
+import javax.servlet.Filter;
+import javax.servlet.FilterChain;
+import javax.servlet.FilterConfig;
+import javax.servlet.ServletException;
+import javax.servlet.ServletRequest;
+import javax.servlet.ServletResponse;
+import javax.servlet.http.HttpServletRequest;
+
+import org.picocontainer.defaults.ObjectReference;
+import org.picocontainer.gems.adapters.ThreadLocalReference;
+
+import com.opensymphony.xwork.ObjectFactory;
+
+/**
+ * Filter which initialises a PicoObjectFactory as the XWork ObjectFactory
+ * and passes to it the HttpServletRequest.
+ *
+ * @author Jonas Engman
+ */
+public class PicoObjectFactoryFilter implements Filter {
+
+ private final static String ALREADY_FILTERED_KEY = "nanocontainer_objectfactory_filtered";
+
+ private ObjectReference objectReference;
+
+ public void init(FilterConfig config) throws ServletException {
+ objectReference = new ThreadLocalReference();
+ ObjectFactory.setObjectFactory(new PicoObjectFactory(objectReference));
+ }
+
+ public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {
+ HttpServletRequest httpServletRequest = (HttpServletRequest) request;
+ if (httpServletRequest.getAttribute(ALREADY_FILTERED_KEY) == null) {
+ httpServletRequest.setAttribute(ALREADY_FILTERED_KEY, Boolean.TRUE);
+ objectReference.set(httpServletRequest);
+ try {
+ chain.doFilter(request, response);
+ } finally {
+ objectReference.set(null);
+ }
+ } else {
+ chain.doFilter(request, response);
+ }
+ }
+
+ public void destroy() {
+ }
+}
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,17 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-
-/**
- * @deprecated Use PicoWebWork2ServletDispatcher
- */
-public class PicoServletDispatcher extends PicoWebWork2ServletDispatcher {
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,17 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+
+/**
+ * @deprecated Use PicoWebWork2ServletDispatcher
+ */
+public class PicoServletDispatcher extends PicoWebWork2ServletDispatcher {
+
+}
\ No newline at end of file
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java (3118 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,47 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-import javax.servlet.ServletException;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-
-import org.nanocontainer.nanowar.ServletRequestContainerLauncher;
-
-import com.opensymphony.webwork.dispatcher.ServletDispatcher;
-import com.opensymphony.xwork.ActionProxyFactory;
-import com.opensymphony.xwork.DefaultActionProxyFactory;
-
-/**
- * Extension to the standard WebWork2 ServletDispatcher that instantiates
- * a new container in the request scope for each request and disposes of it
- * correctly at the end of the request.
- * <p/>
- * To use, replace the WebWork ServletDispatcher in web.xml with this.
- *
- * @author <a href="" Walnes</a>
- */
-public class PicoWebWork2ServletDispatcher extends ServletDispatcher {
-
- public PicoWebWork2ServletDispatcher() {
- super();
- ActionProxyFactory.setFactory(new PicoActionProxyFactory());
- }
-
- public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
- ServletRequestContainerLauncher containerLauncher = new ServletRequestContainerLauncher(getServletContext(), request);
- try {
- containerLauncher.startContainer();
- // process the servlet using webwork2
- super.service(request, response);
- } finally {
- containerLauncher.killContainer();
- }
- }
-}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/java/org/nanocontainer/nanowar/webwork2/PicoWebWork2ServletDispatcher.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,47 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import javax.servlet.ServletException;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+import org.nanocontainer.nanowar.ServletRequestContainerLauncher;
+
+import com.opensymphony.webwork.dispatcher.ServletDispatcher;
+import com.opensymphony.xwork.ActionProxyFactory;
+import com.opensymphony.xwork.DefaultActionProxyFactory;
+
+/**
+ * Extension to the standard WebWork2 ServletDispatcher that instantiates
+ * a new container in the request scope for each request and disposes of it
+ * correctly at the end of the request.
+ * <p/>
+ * To use, replace the WebWork ServletDispatcher in web.xml with this.
+ *
+ * @author <a href="" Walnes</a>
+ */
+public class PicoWebWork2ServletDispatcher extends ServletDispatcher {
+
+ public PicoWebWork2ServletDispatcher() {
+ super();
+ ActionProxyFactory.setFactory(new PicoActionProxyFactory());
+ }
+
+ public void service(HttpServletRequest request, HttpServletResponse response) throws ServletException {
+ ServletRequestContainerLauncher containerLauncher = new ServletRequestContainerLauncher(getServletContext(), request);
+ try {
+ containerLauncher.startContainer();
+ // process the servlet using webwork2
+ super.service(request, response);
+ } finally {
+ containerLauncher.killContainer();
+ }
+ }
+}
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2 (from rev 3118, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork2) ( => )
Deleted: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java
===================================================================
--- java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java 2006-12-18 15:14:29 UTC (rev 3118)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,110 +0,0 @@
-/*****************************************************************************
- * Copyright (C) NanoContainer Organization. All rights reserved. *
- * ------------------------------------------------------------------------- *
- * The software in this package is published under the terms of the BSD *
- * style license a copy of which has been included with this distribution in *
- * the LICENSE.txt file. *
- * *
- *****************************************************************************/
-package org.nanocontainer.nanowar.webwork2;
-
-import javax.servlet.http.HttpServletRequest;
-
-import org.jmock.Mock;
-import org.jmock.MockObjectTestCase;
-import org.nanocontainer.nanowar.KeyConstants;
-import org.nanocontainer.nanowar.webwork.TestAction;
-import org.nanocontainer.nanowar.webwork2.PicoObjectFactory;
-import org.picocontainer.MutablePicoContainer;
-import org.picocontainer.PicoIntrospectionException;
-import org.picocontainer.defaults.DefaultPicoContainer;
-import org.picocontainer.defaults.ObjectReference;
-import org.picocontainer.defaults.UnsatisfiableDependenciesException;
-import org.picocontainer.gems.adapters.ThreadLocalReference;
-
-/**
- * @author Mauro Talevi
- */
-public class PicoObjectFactoryTestCase extends MockObjectTestCase {
-
- private PicoObjectFactory factory;
- private DefaultPicoContainer container;
- private Mock requestMock = mock(HttpServletRequest.class);
- private HttpServletRequest request = (HttpServletRequest) requestMock.proxy();
-
- public void setUp(){
- container = new DefaultPicoContainer();
- ObjectReference reference = new ThreadLocalReference();
- reference.set(request);
- factory = new PicoObjectFactory(reference);
- }
-
- public void testActionInstantiationWithValidClassName() throws Exception {
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(container));
- requestMock.expects(atLeastOnce()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
- container.registerComponentInstance("foo");
- TestAction action = "" factory
- .buildBean("org.nanocontainer.nanowar.webwork.TestAction");
- assertNotNull(action);
- assertEquals("foo", action.getFoo());
- }
-
- public void testActionInstantiationWhichFailsDueToFailedDependencies() throws Exception {
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(container));
- requestMock.expects(atLeastOnce()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
- TestAction action = ""
- try {
- action = "" factory
- .buildBean("org.nanocontainer.nanowar.webwork.TestAction");
- fail("should have barfed");
- } catch (UnsatisfiableDependenciesException e) {
- // expected
- }
- assertNull(action);
- }
-
- public void testActionInstantiationWithInvalidClassName() throws Exception {
- try {
- factory.buildBean("invalidAction");
- fail("PicoIntrospectionException expected");
- } catch ( PicoIntrospectionException e) {
- // expected
- }
- }
-
- public void testActionInstantiationWhichHasAlreadyBeenRegistered() throws Exception {
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(null));
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
- returnValue(container));
- requestMock.expects(atLeastOnce()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
- isA(MutablePicoContainer.class));
- container.registerComponentInstance("foo");
- container.registerComponentImplementation(TestAction.class);
- TestAction action1 = (TestAction) container.getComponentInstance(TestAction.class);
- TestAction action2 = (TestAction) factory
- .buildBean("org.nanocontainer.nanowar.webwork.TestAction");
- assertSame(action1, action2);
- }
-
- public void testActionInstantiationWhichHasAlreadyBeenRequested() throws Exception {
- requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
- returnValue(container));
- container.registerComponentInstance("foo");
- TestAction action1 = (TestAction) factory
- .buildBean("org.nanocontainer.nanowar.webwork.TestAction");
- TestAction action2 = (TestAction) factory
- .buildBean("org.nanocontainer.nanowar.webwork.TestAction");
- assertSame(action1, action2);
- }
-
-
-}
\ No newline at end of file
Copied: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java (from rev 3120, java/nanocontainer-nanowar/trunk/nanowar/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java) (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/PicoObjectFactoryTestCase.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,109 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import javax.servlet.http.HttpServletRequest;
+
+import org.jmock.Mock;
+import org.jmock.MockObjectTestCase;
+import org.nanocontainer.nanowar.KeyConstants;
+import org.nanocontainer.nanowar.webwork2.PicoObjectFactory;
+import org.picocontainer.MutablePicoContainer;
+import org.picocontainer.PicoIntrospectionException;
+import org.picocontainer.defaults.DefaultPicoContainer;
+import org.picocontainer.defaults.ObjectReference;
+import org.picocontainer.defaults.UnsatisfiableDependenciesException;
+import org.picocontainer.gems.adapters.ThreadLocalReference;
+
+/**
+ * @author Mauro Talevi
+ */
+public class PicoObjectFactoryTestCase extends MockObjectTestCase {
+
+ private PicoObjectFactory factory;
+ private DefaultPicoContainer container;
+ private Mock requestMock = mock(HttpServletRequest.class);
+ private HttpServletRequest request = (HttpServletRequest) requestMock.proxy();
+
+ public void setUp(){
+ container = new DefaultPicoContainer();
+ ObjectReference reference = new ThreadLocalReference();
+ reference.set(request);
+ factory = new PicoObjectFactory(reference);
+ }
+
+ public void testActionInstantiationWithValidClassName() throws Exception {
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(container));
+ requestMock.expects(atLeastOnce()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+ container.registerComponentInstance("foo");
+ TestAction action = "" factory
+ .buildBean(TestAction.class.getName());
+ assertNotNull(action);
+ assertEquals("foo", action.getFoo());
+ }
+
+ public void testActionInstantiationWhichFailsDueToFailedDependencies() throws Exception {
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(container));
+ requestMock.expects(atLeastOnce()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+ TestAction action = ""
+ try {
+ action = "" factory
+ .buildBean(TestAction.class.getName());
+ fail("should have barfed");
+ } catch (UnsatisfiableDependenciesException e) {
+ // expected
+ }
+ assertNull(action);
+ }
+
+ public void testActionInstantiationWithInvalidClassName() throws Exception {
+ try {
+ factory.buildBean("invalidAction");
+ fail("PicoIntrospectionException expected");
+ } catch ( PicoIntrospectionException e) {
+ // expected
+ }
+ }
+
+ public void testActionInstantiationWhichHasAlreadyBeenRegistered() throws Exception {
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(null));
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.REQUEST_CONTAINER)).will(
+ returnValue(container));
+ requestMock.expects(atLeastOnce()).method("setAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER),
+ isA(MutablePicoContainer.class));
+ container.registerComponentInstance("foo");
+ container.registerComponentImplementation(TestAction.class);
+ TestAction action1 = (TestAction) container.getComponentInstance(TestAction.class);
+ TestAction action2 = (TestAction) factory
+ .buildBean(TestAction.class.getName());
+ assertSame(action1, action2);
+ }
+
+ public void testActionInstantiationWhichHasAlreadyBeenRequested() throws Exception {
+ requestMock.expects(atLeastOnce()).method("getAttribute").with(eq(KeyConstants.ACTIONS_CONTAINER)).will(
+ returnValue(container));
+ container.registerComponentInstance("foo");
+ TestAction action1 = (TestAction) factory
+ .buildBean(TestAction.class.getName());
+ TestAction action2 = (TestAction) factory
+ .buildBean(TestAction.class.getName());
+ assertSame(action1, action2);
+ }
+
+
+}
\ No newline at end of file
Added: java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/TestAction.java (0 => 3121)
--- java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/TestAction.java (rev 0)
+++ java/nanocontainer-nanowar/trunk/nanowar-webwork2/src/test/org/nanocontainer/nanowar/webwork2/TestAction.java 2006-12-19 13:19:22 UTC (rev 3121)
@@ -0,0 +1,27 @@
+/*****************************************************************************
+ * Copyright (C) NanoContainer Organization. All rights reserved. *
+ * ------------------------------------------------------------------------- *
+ * The software in this package is published under the terms of the BSD *
+ * style license a copy of which has been included with this distribution in *
+ * the LICENSE.txt file. *
+ * *
+ *****************************************************************************/
+package org.nanocontainer.nanowar.webwork2;
+
+import com.opensymphony.xwork.Action;
+
+
+public class TestAction implements Action {
+ String foo;
+ public TestAction(String foo) {
+ this.foo = foo;
+ }
+
+ public String getFoo() {
+ return foo;
+ }
+
+ public String execute() {
+ return foo;
+ }
+}
Modified: java/nanocontainer-nanowar/trunk/pom.xml (3120 => 3121)
--- java/nanocontainer-nanowar/trunk/pom.xml 2006-12-18 18:25:51 UTC (rev 3120)
+++ java/nanocontainer-nanowar/trunk/pom.xml 2006-12-19 13:19:22 UTC (rev 3121)
@@ -1,211 +1,177 @@
<?xml version="1.0" encoding="UTF-8"?>
-<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
- <modelVersion>4.0.0</modelVersion>
- <parent>
- <groupId>org.nanocontainer</groupId>
- <artifactId>nanocontainer-parent</artifactId>
- <version>1.1-SNAPSHOT</version>
- </parent>
- <artifactId>nanocontainer-nanowar-parent</artifactId>
- <name>NanoContainer NanoWar Parent</name>
- <version>1.1-SNAPSHOT</version>
- <packaging>pom</packaging>
- <url>http://www.nanocontainer.org/nanowar</url>
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer-parent</artifactId>
+ <version>1.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>nanocontainer-nanowar-parent</artifactId>
+ <name>NanoContainer NanoWar Parent</name>
+ <version>1.1-SNAPSHOT</version>
+ <packaging>pom</packaging>
+ <url>http://www.nanocontainer.org/nanowar</url>
- <modules>
- <module>nanowar</module>
- </modules>
+ <modules>
+ <module>nanowar</module>
+ <module>nanowar-axis</module>
+ <module>nanowar-nanoweb</module>
+ <module>nanowar-struts</module>
+ <module>nanowar-webwork</module>
+ <module>nanowar-webwork2</module>
+ </modules>
- <description><![CDATA[Please refer to the <a href="" website</a> for documentation.]]></description>
- <issueManagement>
- <system>JIRA</system>
- <url>http://jira.codehaus.org/browse/NANOWAR</url>
- </issueManagement>
-
- <scm>
- <connection>scm:svn:https://svn.codehaus.org/picocontainer/java/nanocontainer-nanowar/trunk</connection>
- <developerConnection>scm:svn:https://svn.codehaus.org/scm/picocontainer/java/nanocontainer-nanowar/trunk</developerConnection>
- <url>https://svn.codehaus.org/picocontainer/java/nanocontainer-nanowar/trunk</url>
- </scm>
-
- <repositories>
- <repository>
- <id>codehaus-repository</id>
- <name>Codehaus Repository</name>
- <url>http://repository.codehaus.org</url>
- </repository>
- <repository>
- <id>codehaus-snapshots-repository</id>
- <name>Codehaus Snapshots Repository</name>
- <url>http://snapshots.repository.codehaus.org</url>
- </repository>
- </repositories>
+ <description>
+ <![CDATA[Please refer to the <a href="" website</a> for documentation.]]>
+ </description>
+ <issueManagement>
+ <system>JIRA</system>
+ <url>http://jira.codehaus.org/browse/NANOWAR</url>
+ </issueManagement>
- <dependencyManagement>
- <dependencies>
- <dependency>
- <groupId>org.picocontainer</groupId>
- <artifactId>picocontainer</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>org.picocontainer</groupId>
- <artifactId>picocontainer-gems</artifactId>
- <version>1.2</version>
- </dependency>
- <dependency>
- <groupId>org.nanocontainer</groupId>
- <artifactId>nanocontainer</artifactId>
- <version>1.0</version>
- </dependency>
- <dependency>
- <groupId>org.picocontainer</groupId>
- <artifactId>picocontainer-tck</artifactId>
- <version>1.2</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>javax.servlet</groupId>
- <artifactId>servlet-api</artifactId>
- <version>2.3</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>org.mortbay.jetty</groupId>
- <artifactId>jetty</artifactId>
- <version>6.0.1</version>
- <scope>provided</scope>
- </dependency>
- <dependency>
- <groupId>webwork</groupId>
- <artifactId>webwork</artifactId>
- <version>1.4</version>
+ <scm>
+ <connection>
+ scm:svn:https://svn.codehaus.org/picocontainer/java/nanocontainer-nanowar/trunk
+ </connection>
+ <developerConnection>
+ scm:svn:https://svn.codehaus.org/scm/picocontainer/java/nanocontainer-nanowar/trunk
+ </developerConnection>
+ <url>
+ https://svn.codehaus.org/picocontainer/java/nanocontainer-nanowar/trunk
+ </url>
+ </scm>
+
+ <repositories>
+ <repository>
+ <id>codehaus-repository</id>
+ <name>Codehaus Repository</name>
+ <url>http://repository.codehaus.org</url>
+ </repository>
+ <repository>
+ <id>codehaus-snapshots-repository</id>
+ <name>Codehaus Snapshots Repository</name>
+ <url>http://snapshots.repository.codehaus.org</url>
+ </repository>
+ </repositories>
+
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.picocontainer</groupId>
+ <artifactId>picocontainer-gems</artifactId>
+ <version>1.2</version>
+ </dependency>
+ <dependency>
+ <groupId>org.nanocontainer</groupId>
+ <artifactId>nanocontainer</artifactId>
+ <version>1.0</version>
+ </dependency>
+ <dependency>
+ <groupId>groovy</groupId>
+ <artifactId>groovy-all</artifactId>
+ <version>1.0-RC-01</version>
+ <exclusions>
+ <exclusion>
+ <groupId>servletapi</groupId>
+ <artifactId>servletapi</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ </exclusion>
+ </exclusions>
<optional>true</optional>
- </dependency>
- <dependency>
- <groupId>opensymphony</groupId>
- <artifactId>xwork</artifactId>
- <version>1.0.5</version>
+ </dependency>
+ <dependency>
+ <groupId>velocity</groupId>
+ <artifactId>velocity</artifactId>
+ <version>1.4</version>
+ </dependency>
+ <dependency>
+ <groupId>velocity-tools</groupId>
+ <artifactId>velocity-tools-view</artifactId>
+ <version>1.1</version>
+ </dependency>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ <version>2.3</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.mortbay.jetty</groupId>
+ <artifactId>jetty</artifactId>
+ <version>6.0.1</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>jmock</groupId>
+ <artifactId>jmock</artifactId>
+ <version>1.0.1</version>
<optional>true</optional>
- </dependency>
- <dependency>
- <groupId>opensymphony</groupId>
- <artifactId>webwork</artifactId>
- <version>2.1.7</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>struts</groupId>
- <artifactId>struts</artifactId>
- <version>1.2.7</version>
- <exclusions>
- <exclusion>
- <groupId>javax.sql</groupId>
- <artifactId>jdbc-stdext</artifactId>
- </exclusion>
- </exclusions>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>axis</groupId>
- <artifactId>axis</artifactId>
- <version>1.2.1</version>
- <exclusions>
- <exclusion>
- <groupId>wsdl4j</groupId>
- <artifactId>wsdl4j</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.activation</groupId>
- <artifactId>activation</artifactId>
- </exclusion>
- <exclusion>
- <groupId>javax.mail</groupId>
- <artifactId>mail</artifactId>
- </exclusion>
- </exclusions>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>groovy</groupId>
- <artifactId>groovy-all</artifactId>
- <version>1.0-RC-01</version>
- <exclusions>
- <exclusion>
- <groupId>servletapi</groupId>
- <artifactId>servletapi</artifactId>
- </exclusion>
- </exclusions>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>velocity</groupId>
- <artifactId>velocity</artifactId>
- <version>1.4</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>velocity-tools</groupId>
- <artifactId>velocity-tools-view</artifactId>
- <version>1.1</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>ognl</groupId>
- <artifactId>ognl</artifactId>
- <version>2.6.7</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>jmock</groupId>
- <artifactId>jmock</artifactId>
- <version>1.1.0</version>
- <optional>true</optional>
- </dependency>
- <dependency>
- <groupId>jmock</groupId>
- <artifactId>jmock-cglib</artifactId>
- <version>1.1.0</version>
- <optional>true</optional>
- </dependency>
- <!-- Test scoped depedencies -->
- <dependency>
- <groupId>httpunit</groupId>
- <artifactId>httpunit</artifactId>
- <version>1.6</version>
- <scope>test</scope>
- </dependency>
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- <version>3.8.1</version>
- <scope>test</scope>
- </dependency>
- </dependencies>
- </dependencyManagement>
-
- <dependencies>
- <!-- test time only -->
- <dependency>
- <groupId>junit</groupId>
- <artifactId>junit</artifactId>
- </dependency>
- <dependency>
- <groupId>jmock</groupId>
- <artifactId>jmock</artifactId>
- </dependency>
- <dependency>
- <groupId>jmock</groupId>
- <artifactId>jmock-cglib</artifactId>
- </dependency>
- <dependency>
- <groupId>httpunit</groupId>
- <artifactId>httpunit</artifactId>
- </dependency>
- <dependency>
- <groupId>org.picocontainer</groupId>
- <artifactId>picocontainer-tck</artifactId>
- </dependency>
- </dependencies>
+ </dependency>
+ <!-- Test scoped depedencies -->
+ <dependency>
+ <groupId>org.picocontainer</groupId>
+ <artifactId>picocontainer-tck</artifactId>
+ <version>1.2</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>jmock</groupId>
+ <artifactId>jmock-cglib</artifactId>
+ <version>1.0.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>cglib</groupId>
+ <artifactId>cglib</artifactId>
+ <version>nodep-2.1</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>httpunit</groupId>
+ <artifactId>httpunit</artifactId>
+ <version>1.6</version>
+ <scope>test</scope>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>javax.servlet</groupId>
+ <artifactId>servlet-api</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>jmock</groupId>
+ <artifactId>jmock</artifactId>
+ </dependency>
+ <!-- test time only -->
+ <dependency>
+ <groupId>jmock</groupId>
+ <artifactId>jmock-cglib</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>httpunit</groupId>
+ <artifactId>httpunit</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.picocontainer</groupId>
+ <artifactId>picocontainer-tck</artifactId>
+ </dependency>
+ </dependencies>
+
</project>
To unsubscribe from this list please visit:
http://xircles.codehaus.org/manage_email
| |