You are viewing a plain text version of this content. The canonical link for it is here.
Posted to scm@geronimo.apache.org by di...@apache.org on 2004/11/02 22:29:02 UTC
svn commit: rev 56419 - in geronimo/trunk/modules/axis: . src/etc src/etc/META-INF src/etc/META-INF/services src/java/org/apache/geronimo/axis src/plans src/samples/echo src/samples/echo-pojo src/samples/echo-pojo/WEB-INF src/samples/echo-pojo/org src/samples/echo-pojo/org/apache src/samples/echo-pojo/org/apache/ws src/samples/echo-pojo/org/apache/ws/echosample src/samples/echo/META-INF src/samples/echo/org/apache/ws/echosample src/test-resources/deployables/axis src/test-resources/deployables/axis/WEB-INF src/test/org/apache/geronimo/axis src/test/org/apache/geronimo/axis/preconditions src/test/org/apache/geronimo/axis/testUtils
Author: dims
Date: Tue Nov 2 13:28:59 2004
New Revision: 56419
Added:
geronimo/trunk/modules/axis/src/etc/
geronimo/trunk/modules/axis/src/etc/META-INF/
geronimo/trunk/modules/axis/src/etc/META-INF/geronimo-service.xml
geronimo/trunk/modules/axis/src/etc/META-INF/services/
geronimo/trunk/modules/axis/src/etc/META-INF/services/org.apache.axis.deployment.wsdd.Provider
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/EJBWSGBean.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoProvider.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/POJOWSGBean.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/ReferenceCollectionImpl.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WSConfigBuilder.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WSDDJavaGeronimoProvider.java
geronimo/trunk/modules/axis/src/plans/
geronimo/trunk/modules/axis/src/plans/plan1.xml
geronimo/trunk/modules/axis/src/samples/echo-pojo/
geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/
geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/web.xml
geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/webservices.xml
geronimo/trunk/modules/axis/src/samples/echo-pojo/build.xml
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/Echo.java
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/EchoBean.java
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/EchoStruct.java
geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/SmallEchoStruct.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AbstractWebServiceTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/SimpleEJBWebServiceTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/SimplePOJOWebServiceTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/WSConfigBuilderTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/AdminClientDeploymentTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/ClassLoadingTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/DynamicEJBDeploymentTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/EWSTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/GBeanConfigTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/AxisGeronimoConstants.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/J2EEManager.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/J2EEManagerTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/JettyServiceWrapper.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/TestServer.java
Removed:
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGeronimoConstants.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/DependancyManager.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/J2EEManager.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WebServiceDeployer.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WebServiceDeployerGbean.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WebServiceManager.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AdminClientDeploymentTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/ClassLoadingTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/DynamicEJBDeploymentTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/EWSTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/JettyServiceWrapper.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/TestServer.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/WebServiceDeploymentTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/WebServiceTest.java
Modified:
geronimo/trunk/modules/axis/maven.xml
geronimo/trunk/modules/axis/project.xml
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGbean.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGeronimoUtils.java
geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoWsDeployContext.java
geronimo/trunk/modules/axis/src/samples/echo/META-INF/ejb-jar.xml
geronimo/trunk/modules/axis/src/samples/echo/META-INF/webservice.xml
geronimo/trunk/modules/axis/src/samples/echo/build.xml
geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/Echo.java
geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoBean.java
geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoStruct.java
geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/SmallEchoStruct.java
geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/geronimo-web.xml
geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/web.xml
geronimo/trunk/modules/axis/src/test-resources/deployables/axis/index.html
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisGBeanTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/ComplexTypeWebServiceTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/EchoHeadersTest.java
geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/J2EEManagerTest.java
Log:
Latest fixes from Srinath and some code cleanup from me.
===========================================
Most of the cooments from the community is incoperated with this
patch. This patch remove the referances to the kernel and remove
hardcoded obj names. add a POJO sample and it's test case is working.
there is a problem with the EJB test case will fix that and send a
patch.
===========================================
Modified: geronimo/trunk/modules/axis/maven.xml
==============================================================================
--- geronimo/trunk/modules/axis/maven.xml (original)
+++ geronimo/trunk/modules/axis/maven.xml Tue Nov 2 13:28:59 2004
@@ -1,11 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
-
<project default="jar"
xmlns:j="jelly:core"
xmlns:maven="jelly:maven"
xmlns:deploy="deploy"
xmlns:ant="jelly:ant">
-
<goal name="setclasspath">
<path id="test.classpath">
<path refid="maven.dependency.classpath"/>
@@ -13,35 +11,60 @@
</path>
</goal>
+ <!--
+ <preGoal name="test:compile">
+ <ant:javac
+ destdir="${basedir}/target/test-classes"
+ debug="on"
+ fork="true">
+ <src path="${basedir}/src/test"/>
+ <ant:classpath>
+ <ant:path refid="maven.dependency.classpath"/>
+ <ant:pathelement path="${maven.build.dest}"/>
+ </ant:classpath>
+ </ant:javac>
+ </preGoal>
+ -->
<preGoal name="test:test">
- <j:if test="${context.getVariable('maven.test.skip') != 'true'}">
- <deploy:copy-deps todir="${basedir}/target/lib"/>
- <ant:java classname="org.apache.geronimo.ews.ws4j2ee.utils.PropertyStore" fork="no">
- <ant:arg value="${maven.repo.local}"/>
- <ant:classpath refid="maven.dependency.classpath"/>
- </ant:java>
- <j:jelly xmlns="jelly:ant">
- <ant:ant antfile="build.xml"
- inheritall="true"
- inheritrefs="true"
- dir="src/samples/echo"/>
- <taskdef name="ews" classname="org.apache.geronimo.ews.ws4j2ee.utils.EWSTask">
- <classpath refid="maven.dependency.classpath"/>
- </taskdef>
- <ews outDir="target/generated/samples" module="target/samples/echo.jar">
+ <j:if test="${context.getVariable('maven.test.skip') != 'true'}">
+ <deploy:copy-deps todir="${basedir}/target/lib"/>
+ <ant:java classname="org.apache.geronimo.ews.ws4j2ee.utils.PropertyStore" fork="no">
+ <ant:arg value="${maven.repo.local}"/>
<ant:classpath refid="maven.dependency.classpath"/>
- </ews>
+ </ant:java>
+ <j:jelly xmlns="jelly:ant">
+ <ant:ant antfile="build.xml"
+ inheritall="true"
+ inheritrefs="true"
+ dir="src/samples/echo"/>
+ <ant:ant antfile="build.xml"
+ inheritall="true"
+ inheritrefs="true"
+ dir="src/samples/echo-pojo"/>
+ <taskdef name="ews" classname="org.apache.geronimo.ews.ws4j2ee.utils.EWSTask">
+ <classpath refid="maven.dependency.classpath"/>
+ </taskdef>
+ <ews outDir="target/generated/samples/echo-jar" module="target/samples/echo.jar">
+ <ant:classpath refid="maven.dependency.classpath"/>
+ </ews>
+ <ews outDir="target/generated/samples/echo-war" module="target/samples/echo.war">
+ <ant:classpath refid="maven.dependency.classpath"/>
+ </ews>
- <!-- The following ant task cause the build to break
- if building with JAVA 5. The JAVA 5 'enum' reserved
- word is used in the source code being compiled.
- The generated ANT file might need to pass the
- -source 1.4 option to the java compiler -->
- <ant:ant antfile="build.xml"
- inheritall="true"
- inheritrefs="true"
- dir="target/generated/samples"/>
- </j:jelly>
- </j:if>
+ <!-- The following ant task cause the build to break
+ if building with JAVA 5. The JAVA 5 'enum' reserved
+ word is used in the source code being compiled.
+ The generated ANT file might need to pass the
+ -source 1.4 option to the java compiler -->
+ <ant:ant antfile="build.xml"
+ inheritall="true"
+ inheritrefs="true"
+ dir="target/generated/samples/echo-jar"/>
+ <ant:ant antfile="build.xml"
+ inheritall="true"
+ inheritrefs="true"
+ dir="target/generated/samples/echo-war"/>
+ </j:jelly>
+ </j:if>
</preGoal>
</project>
Modified: geronimo/trunk/modules/axis/project.xml
==============================================================================
--- geronimo/trunk/modules/axis/project.xml (original)
+++ geronimo/trunk/modules/axis/project.xml Tue Nov 2 13:28:59 2004
@@ -23,7 +23,6 @@
]>
<!-- $Rev$ $Date$ -->
-
<project>
<pomVersion>3</pomVersion>
<extend>${basedir}/../../etc/project.xml</extend>
@@ -31,7 +30,6 @@
<!-- ===================== -->
<!-- Module Identification -->
<!-- ===================== -->
-
<name>Geronimo :: Axis</name>
<id>geronimo-axis</id>
<shortDescription>Axis Integration</shortDescription>
@@ -39,13 +37,11 @@
<url>http://geronimo.apache.org/modules/axis/</url>
<siteDirectory>/www/geronimo.apache.org/modules/axis</siteDirectory>
<distributionDirectory>/www/incubator.apache.org/projects/geronimo/builds/axis</distributionDirectory>
-
<package>org.apache.geronimo.axis</package>
<!-- ============ -->
<!-- Dependencies -->
<!-- ============ -->
-
<dependencies>
<dependency>
<groupId>geronimo</groupId>
@@ -60,7 +56,6 @@
<artifactId>xbean-apache</artifactId>
<version>&xmlbeans-version;</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-kernel</artifactId>
@@ -79,13 +74,11 @@
<artifactId>geronimo-jetty</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-deployment</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-naming</artifactId>
@@ -94,13 +87,11 @@
<xmlbeans>true</xmlbeans>
</properties>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-j2ee</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-security</artifactId>
@@ -109,31 +100,26 @@
<xmlbeans>true</xmlbeans>
</properties>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-transaction</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-connector</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-common</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-system</artifactId>
<version>${pom.currentVersion}</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-timer</artifactId>
@@ -142,31 +128,26 @@
<runtime>true</runtime>
</properties>
</dependency>
-
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-jta</artifactId>
<version>&geronimo-spec-jta-version;</version>
</dependency>
-
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-j2ee-jacc</artifactId>
<version>&geronimo-spec-j2ee-jacc-version;</version>
</dependency>
-
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-j2ee-connector</artifactId>
<version>&geronimo-spec-j2ee-connector-version;</version>
</dependency>
-
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-j2ee-deployment</artifactId>
<version>&geronimo-spec-j2ee-deployment-version;</version>
</dependency>
-
<dependency>
<groupId>geronimo</groupId>
<artifactId>geronimo-j2ee-schema</artifactId>
@@ -180,19 +161,16 @@
<artifactId>geronimo-spec-ejb</artifactId>
<version>&geronimo-spec-ejb-version;</version>
</dependency>
-
<dependency>
<groupId>jetty</groupId>
<artifactId>org.mortbay.jetty</artifactId>
<version>&jetty-version;</version>
</dependency>
-
<dependency>
<groupId>mx4j</groupId>
<artifactId>mx4j</artifactId>
<version>&mx4j-version;</version>
</dependency>
-
<dependency>
<groupId>dom4j</groupId>
<artifactId>dom4j</artifactId>
@@ -208,71 +186,60 @@
<artifactId>geronimo-spec-servlet</artifactId>
<version>&geronimo-spec-servlet-version;</version>
</dependency>
-
<dependency>
<groupId>geronimo-spec</groupId>
<artifactId>geronimo-spec-jsp</artifactId>
<version>&geronimo-spec-jsp-version;</version>
</dependency>
-
<dependency>
<groupId>commons-logging</groupId>
<artifactId>commons-logging</artifactId>
<version>&commons-logging-version;</version>
<url>http://jakarta.apache.org/commons/logging/</url>
</dependency>
-
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-compiler</artifactId>
<version>&tomcat-version;</version>
</dependency>
-
<dependency>
<groupId>tomcat</groupId>
<artifactId>jasper-runtime</artifactId>
<version>&tomcat-version;</version>
</dependency>
-
<dependency>
<groupId>commons-el</groupId>
<artifactId>commons-el</artifactId>
<version>&commons-el-version;</version>
<url>http://jakarta.apache.org/commons/el/</url>
</dependency>
-
<dependency>
<groupId>ant</groupId>
<artifactId>ant</artifactId>
<version>&ant-version;</version>
</dependency>
-
<dependency>
<groupId>xerces</groupId>
<artifactId>xercesImpl</artifactId>
<version>&xerces-version;</version>
</dependency>
-
<dependency>
<groupId>cglib</groupId>
<artifactId>cglib-full</artifactId>
<version>&cglib-version;</version>
<url>http://cglib.sf.net/</url>
</dependency>
-
<dependency>
<groupId>concurrent</groupId>
<artifactId>concurrent</artifactId>
<version>&concurrent-version;</version>
</dependency>
-
<dependency>
<groupId>regexp</groupId>
<artifactId>regexp</artifactId>
<version>®exp-version;</version>
<url>http://jakarta.apache.org/regexp</url>
</dependency>
-
<dependency>
<groupId>tranql</groupId>
<artifactId>tranql</artifactId>
@@ -295,8 +262,7 @@
<module>true</module>
</properties>
</dependency>
-
- <dependency>
+ <dependency>
<groupId>xmlbeans</groupId>
<artifactId>xbean-apache-1.0</artifactId>
<version>DEV</version>
@@ -304,7 +270,6 @@
<module>true</module>
</properties>
</dependency>
-
<dependency>
<groupId>axis</groupId>
<artifactId>axis</artifactId>
@@ -375,7 +340,6 @@
<!-- =================== -->
<!-- Build Specification -->
<!-- =================== -->
-
<build>
<resources>
<resource>
@@ -385,15 +349,10 @@
</resources>
<unitTest>
<includes>
- <include>**/*Test.java</include>
+ <include>**/SimplePOJO*Test.java</include>
</includes>
-
<excludes>
- <exclude>**/Abstract*.java</exclude>
- <exclude>**/EWSTest.java</exclude>
- <exclude>**/ComplexTypeWebServiceTest.java</exclude>
- </excludes>
-
+ </excludes>
<resources>
<resource>
<directory>${basedir}/src/test-resources</directory>
Added: geronimo/trunk/modules/axis/src/etc/META-INF/geronimo-service.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/etc/META-INF/geronimo-service.xml Tue Nov 2 13:28:59 2004
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+
+ Copyright 2004 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<gbeans>
+ <path>geronimo-transaction-DEV.jar</path>
+ <path>geronimo-spec-jta-DEV.jar</path>
+ <path>geronimo-spec-j2ee-connector-DEV.jar</path>
+
+ <!-- transaction -->
+ <gbean class="org.apache.geronimo.transaction.TransactionManagerProxy" objectName="geronimo.transaction:service=TransactionManager"/>
+</gbeans>
\ No newline at end of file
Added: geronimo/trunk/modules/axis/src/etc/META-INF/services/org.apache.axis.deployment.wsdd.Provider
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/etc/META-INF/services/org.apache.axis.deployment.wsdd.Provider Tue Nov 2 13:28:59 2004
@@ -0,0 +1 @@
+org.apache.geronimo.axis.WSDDJavaGeronimoProvider
\ No newline at end of file
Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGbean.java
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGbean.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGbean.java Tue Nov 2 13:28:59 2004
@@ -16,8 +16,6 @@
package org.apache.geronimo.axis;
-import javax.management.ObjectName;
-
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.gbean.GBeanInfo;
@@ -27,40 +25,18 @@
import org.apache.geronimo.kernel.Kernel;
import org.apache.geronimo.kernel.jmx.JMXUtil;
+import javax.management.ObjectName;
+import java.util.Collection;
+
/**
* Class AxisGbean
*/
public class AxisGbean implements GBeanLifecycle {
private static Log log = LogFactory.getLog(AxisGbean.class);
- /**
- * Field name
- */
private final String name;
-
- /**
- * Field kernel
- */
- private final Kernel kernel;
-
- /**
- * Field GBEAN_INFO
- */
private static final GBeanInfo GBEAN_INFO;
-
- /**
- * Field objectName
- */
private final ObjectName objectName;
- /**
- * Field wscontiner
- */
- private WebServiceManager wscontiner;
-
- private WebServiceDeployer wsdeployer;
-
- private J2EEManager j2eeManager;
-
static {
GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("AxisGbean",
AxisGbean.class);
@@ -69,18 +45,11 @@
infoFactory.addAttribute("Name", String.class, true);
infoFactory.addAttribute("kernel", Kernel.class, false);
infoFactory.addAttribute("objectName", String.class, false);
+ infoFactory.addReference("resourceManagers", Object.class);
// operations
infoFactory.setConstructor(new String[]{"kernel", "Name",
- "objectName"});
- infoFactory.addOperation("deploy", new Class[]{String.class,
- String.class,
- String.class});
- infoFactory.addOperation("unDeploy", new Class[]{String.class,
- String.class});
- infoFactory.addOperation("deployEWSModule", new Class[]{String.class,
- String.class,
- String.class});
+ "objectName", "resourceManagers"});
GBEAN_INFO = infoFactory.getBeanInfo();
}
@@ -91,12 +60,9 @@
* @param name
* @param objectName
*/
- public AxisGbean(Kernel kernel, String name, String objectName) {
+ public AxisGbean(Kernel kernel, String name, String objectName, Collection resourceManagers) {
this.name = name;
- this.kernel = kernel;
this.objectName = JMXUtil.getObjectName(objectName);
- wscontiner = new WebServiceManager(kernel);
- j2eeManager = new J2EEManager();
}
/**
@@ -114,13 +80,7 @@
*/
public void doStart() throws WaitingException, Exception {
log.info("Axis GBean has started");
- log.info(kernel);
log.info(objectName);
- j2eeManager.startJ2EEContainer(kernel);
- wscontiner.doStart();
- wsdeployer = new WebServiceDeployer(AxisGeronimoConstants.TEMP_OUTPUT,
- kernel);
-
}
/**
@@ -131,8 +91,6 @@
*/
public void doStop() throws WaitingException, Exception {
log.info("Axis GBean has stoped");
- wscontiner.doStop();
- j2eeManager.stopJ2EEContainer(kernel);
}
/**
@@ -145,15 +103,6 @@
}
/**
- * Method getKernel
- *
- * @return
- */
- public Kernel getKernel() {
- return kernel;
- }
-
- /**
* Method getName
*
* @return
@@ -161,20 +110,4 @@
public String getName() {
return name;
}
-
- public void deploy(String module, String j2eeApplicationName, String j2eeModuleName)
- throws Exception {
- wsdeployer.deploy(module, j2eeApplicationName, j2eeModuleName);
- }
-
- public void deployEWSModule(String module, String j2eeApplicationName, String j2eeModuleName)
- throws Exception {
- wsdeployer.deployEWSModule(module, j2eeApplicationName, j2eeModuleName);
- }
-
- public void unDeploy(String j2eeApplicationName, String j2eeModuleName)
- throws Exception {
- wsdeployer.unDeploy(j2eeApplicationName, j2eeModuleName);
- }
-
}
Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGeronimoUtils.java
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGeronimoUtils.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/AxisGeronimoUtils.java Tue Nov 2 13:28:59 2004
@@ -16,6 +16,9 @@
package org.apache.geronimo.axis;
import org.apache.axis.AxisFault;
+import org.apache.axis.client.AdminClient;
+import org.apache.axis.client.Call;
+import org.apache.axis.utils.ClassUtils;
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.apache.geronimo.deployment.DeploymentException;
@@ -27,19 +30,25 @@
import javax.ejb.EJBHome;
import javax.management.ObjectName;
import java.io.File;
+import java.io.IOException;
+import java.io.InputStream;
import java.lang.reflect.Method;
+import java.net.URL;
import java.util.ArrayList;
import java.util.Enumeration;
import java.util.HashSet;
import java.util.Set;
import java.util.zip.ZipEntry;
+import java.util.zip.ZipException;
import java.util.zip.ZipFile;
/**
* Class AxisGeronimoUtils
*/
public class AxisGeronimoUtils {
+ public static final int AXIS_SERVICE_PORT = 5678;
public static HashSet startedGbeans = new HashSet();
+
public static final Log log = LogFactory.getLog(AxisGeronimoUtils.class);
public static Object invokeEJB(String ejbName,
@@ -83,7 +92,6 @@
}
throw e;
}
-
}
}
throw new NoSuchMethodException(methodName + " not found");
@@ -100,7 +108,6 @@
else
throw AxisFault.makeFault(new Exception(e));
}
-
}
/**
@@ -169,7 +176,6 @@
file.delete();
} else {
File[] files = file.listFiles();
-
if (files != null) {
for (int i = 0; i < files.length; i++) {
delete(files[i]);
@@ -188,7 +194,9 @@
String name = zipe.getName();
if (name.endsWith(".class")) {
int index = name.lastIndexOf('.');
- list.add(name.substring(0, index).replace('/', '.'));
+ name = name.substring(0, index);
+ name = name.replace('\\', '.');
+ list.add(name.replace('/', '.'));
}
}
}
@@ -204,6 +212,44 @@
return false;
}
return true;
+ }
+ public static void registerClassLoader(ZipFile module, ClassLoader classloader) throws ZipException, IOException {
+ ArrayList classList = AxisGeronimoUtils.getClassFileList(module);
+ for (int i = 0; i < classList.size(); i++) {
+ String className = (String) classList.get(i);
+ ClassUtils.setClassLoader(className, classloader);
+ }
+ }
+
+ /**
+ * <p>add the entry to the Axis Confieration file about the web service.
+ * This find the coniguration file and and update this. There are two problems.
+ * Number one is service is deployed only once the Axis is restarted. And it is
+ * best not to do this while the Axis is running.</p>
+ *
+ * @param module
+ * @throws DeploymentException
+ */
+ public static void addEntryToAxisDD(InputStream deplydd) throws DeploymentException {
+ try {
+ if (deplydd != null) {
+ AdminClient adminClient = new AdminClient();
+ URL requestUrl = new URL("http://localhost:"
+ + AXIS_SERVICE_PORT
+ + "/axis/services/AdminService");
+ Call call = adminClient.getCall();
+ call.setTargetEndpointAddress(requestUrl);
+ String result = adminClient.process(null, deplydd);
+ } else {
+ throw new DeploymentException("the deploy.wsdd can not be found");
+ }
+ } catch (DeploymentException e) {
+ throw e;
+ } catch (Exception e) {
+ e.printStackTrace();
+ throw new DeploymentException(e);
+ }
}
+
}
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/EJBWSGBean.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/EJBWSGBean.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,164 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis;
+
+import org.apache.axis.utils.ClassUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
+
+import javax.management.ObjectName;
+import java.util.Collection;
+import java.util.Iterator;
+
+/**
+ * Class AxisGbean
+ */
+public class EJBWSGBean implements GBeanLifecycle {
+ private static Log log = LogFactory.getLog(EJBWSGBean.class);
+ /**
+ * Field name
+ */
+ private final String name;
+
+ /**
+ * Field GBEAN_INFO
+ */
+ private static final GBeanInfo GBEAN_INFO;
+
+ /**
+ * Field objectName
+ */
+ private final ObjectName objectName;
+ private Configuration ejbConfig;
+ private Collection classList;
+
+ static {
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("EJBWSGBean",
+ EJBWSGBean.class);
+
+ // attributes
+ infoFactory.addAttribute("Name", String.class, true);
+// infoFactory.addAttribute("kernel", Kernel.class, false);
+ infoFactory.addAttribute("objectName", String.class, false);
+ infoFactory.addAttribute("classList", Collection.class, true);
+ infoFactory.addReference("ejbConfig", Configuration.class);
+
+ // operations
+ infoFactory.setConstructor(new String[]{"Name", "objectName"});
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ /**
+ * Constructor AxisGbean
+ *
+ * @param name
+ * @param objectName
+ */
+ public EJBWSGBean(String name, String objectName) {
+ this.name = name;
+// this.axisGBean = axisGBean;
+ this.objectName = JMXUtil.getObjectName(objectName);
+// wscontiner = new WebServiceManager(kernel);
+ }
+
+ /**
+ * Method doFail
+ */
+ public void doFail() {
+ log.info("Axis GBean has failed");
+ }
+
+ /**
+ * Method doStart
+ *
+ * @throws WaitingException
+ * @throws Exception
+ */
+ public void doStart() throws WaitingException, Exception {
+ System.out.println(name + "has started");
+ ClassLoader cl = ejbConfig.getClassLoader();
+ for (Iterator it = classList.iterator(); it.hasNext();) {
+ String className = (String) it.next();
+ ClassUtils.setClassLoader(className, cl);
+ }
+ AxisGeronimoUtils.addEntryToAxisDD(cl.getResourceAsStream("deploy.wsdd"));
+ log.info(objectName);
+ }
+
+ /**
+ * Method doStop
+ *
+ * @throws WaitingException
+ * @throws Exception
+ */
+ public void doStop() throws WaitingException, Exception {
+ log.info("WebServiceGBean has stoped");
+ }
+
+ /**
+ * Method getGBeanInfo
+ *
+ * @return
+ */
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
+ /**
+ * Method getName
+ *
+ * @return
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @return
+ */
+ public Collection getClassList() {
+ return classList;
+ }
+
+ /**
+ * @return
+ */
+ public Configuration getEjbConfig() {
+ return ejbConfig;
+ }
+
+ /**
+ * @param collection
+ */
+ public void setClassList(Collection collection) {
+ classList = collection;
+ }
+
+ /**
+ * @param configuration
+ */
+ public void setEjbConfig(Configuration configuration) {
+ ejbConfig = configuration;
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoProvider.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoProvider.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,103 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis;
+
+import org.apache.axis.AxisFault;
+import org.apache.axis.MessageContext;
+import org.apache.axis.handlers.soap.SOAPService;
+import org.apache.axis.providers.java.RPCProvider;
+import org.apache.axis.utils.ClassUtils;
+
+import java.io.InputStream;
+import java.lang.reflect.Method;
+
+/**
+ * register the MessageContext in the jax-rpc runtime of the JSR109
+ *
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class GeronimoProvider extends RPCProvider {
+ public static final String OPTION_EJB_NAME = "beanName";
+ public static final String OPTION_JNDI_LOOKUP_NAME = "beanJndiName";
+ public static final String OPTION_HOMEINTERFACE_NAME = "homeInterfaceName";
+ public static final String OPTION_REMOTEINTERFACE_NAME = "remoteInterfaceName";
+ public static final String OPTION_LOCALHOMEINTERFACE_NAME = "localHomeInterfaceName";
+ public static final String OPTION_LOCALINTERFACE_NAME = "localInterfaceName";
+ public static final String OPTION_USE_EJB = "j2eeStyle";
+
+ private String ejblookupName;
+ private String localhome;
+ private String home;
+ private String remote;
+ private String local;
+
+ private boolean ejbbased = false;
+
+ protected Object makeNewServiceObject(MessageContext msgContext,
+ String clsName)
+ throws Exception {
+ SOAPService service = msgContext.getService();
+ String j2eeStyle = (String) service.getOption(OPTION_LOCALINTERFACE_NAME);
+ if ("web".equals(j2eeStyle)) {
+ java.util.Properties env = new java.util.Properties();
+ InputStream jndiIn = ClassUtils.getResourceAsStream(getClass(), "jndi.properties");
+ if (jndiIn != null) {
+ env.load(jndiIn);
+ } else {
+ throw new AxisFault("Do not find the JNDI properties file in the class path");
+ }
+ javax.naming.Context initial = new javax.naming.InitialContext(env);
+ ejblookupName = (String) service.getOption(OPTION_JNDI_LOOKUP_NAME);
+ remote = (String) service.getOption(OPTION_REMOTEINTERFACE_NAME);
+ home = (String) service.getOption(OPTION_HOMEINTERFACE_NAME);
+ local = (String) service.getOption(OPTION_LOCALINTERFACE_NAME);
+ localhome = (String) service.getOption(OPTION_LOCALHOMEINTERFACE_NAME);
+ if (remote != null && home != null && ejblookupName != null) {
+ Object objref = initial.lookup(ejblookupName);
+ Class homeClass = ClassUtils.forName(home);
+ Object homeObj = javax.rmi.PortableRemoteObject.narrow(objref, homeClass);
+ Method method = homeClass.getMethod("create", new Class[]{});
+ return method.invoke(homeObj, new Object[]{});
+ } else if (local != null && localhome != null && ejblookupName != null) {
+ Object homeObj = initial.lookup("java:comp/" + ejblookupName);
+ Class homeClass = ClassUtils.forName(localhome);
+ Method method = homeClass.getMethod("create", new Class[]{});
+ return method.invoke(homeObj, new Object[]{});
+ }
+ throw new AxisFault("Wrong configuration remote=" + remote + "home =" + home + "ejblookupName" + ejblookupName);
+ } else {
+ return super.makeNewServiceObject(msgContext, clsName);
+ }
+ }
+
+ /* (non-Javadoc)
+ * @see org.apache.axis.providers.java.RPCProvider#invokeMethod(org.apache.axis.MessageContext, java.lang.reflect.Method, java.lang.Object, java.lang.Object[])
+ */
+ protected Object invokeMethod(MessageContext msgContext,
+ Method method,
+ Object obj,
+ Object[] argValues)
+ throws Exception {
+ if (ejbbased) {
+ throw new UnsupportedOperationException();
+ }
+ {
+ Method invocationMethod = obj.getClass().getMethod(method.getName(), method.getParameterTypes());
+ return invocationMethod.invoke(obj, argValues);
+ }
+ }
+}
Modified: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoWsDeployContext.java
==============================================================================
--- geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoWsDeployContext.java (original)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/GeronimoWsDeployContext.java Tue Nov 2 13:28:59 2004
@@ -21,7 +21,6 @@
import org.apache.geronimo.ews.ws4j2ee.toWs.GenerationConstants;
import org.apache.geronimo.ews.ws4j2ee.toWs.Ws4J2eeDeployContext;
-
/**
* Class GeronimoWsDeployContext
*/
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/POJOWSGBean.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/POJOWSGBean.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,131 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis;
+
+import org.apache.axis.utils.ClassUtils;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.GBeanLifecycle;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.kernel.Kernel;
+
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Collection;
+import java.util.Iterator;
+
+/**
+ * Class AxisGbean
+ */
+public class POJOWSGBean implements GBeanLifecycle {
+ private static Log log = LogFactory.getLog(POJOWSGBean.class);
+ private final String name;
+ private static final GBeanInfo GBEAN_INFO;
+ private URL moduleURL;
+ private Collection classList;
+
+ static {
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder("POJOWSGBean",
+ POJOWSGBean.class);
+
+ // attributes
+ infoFactory.addAttribute("Name", String.class, true);
+ infoFactory.addAttribute("kernel", Kernel.class, false);
+ infoFactory.addAttribute("objectName", String.class, false);
+ infoFactory.addAttribute("moduleURL", URL.class, true);
+ infoFactory.addAttribute("classList", Collection.class, true);
+ // operations
+ infoFactory.setConstructor(new String[]{"kernel", "Name",
+ "objectName"});
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ public POJOWSGBean(Kernel kernel, String name, String objectName) {
+ this.name = name;
+ }
+
+ public void doFail() {
+ }
+
+ public void doStart() throws WaitingException, Exception {
+ ClassLoader cl = new URLClassLoader(new URL[]{moduleURL});
+ for (Iterator it = classList.iterator(); it.hasNext();) {
+ String className = (String) it.next();
+ ClassUtils.setClassLoader(className, cl);
+ }
+ AxisGeronimoUtils.addEntryToAxisDD(cl.getResourceAsStream("deploy.wsdd"));
+ }
+
+ /**
+ * Method doStop
+ *
+ * @throws WaitingException
+ * @throws Exception
+ */
+ public void doStop() throws WaitingException, Exception {
+// ClassLoader cl = new URLClassLoader(new URL[]{moduleURL});
+// AxisGeronimoUtils.addEntryToAxisDD(cl.getResourceAsStream("undeploy.wsdd"));
+ log.info("WebServiceGBean has stoped");
+ }
+
+ /**
+ * Method getGBeanInfo
+ *
+ * @return
+ */
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+
+ /**
+ * @return
+ */
+ public URL getModuleURL() {
+ return moduleURL;
+ }
+
+ /**
+ * @return
+ */
+ public String getName() {
+ return name;
+ }
+
+ /**
+ * @param url
+ */
+ public void setModuleURL(URL url) {
+ moduleURL = url;
+ }
+
+ /**
+ * @return
+ */
+ public Collection getClassList() {
+ return classList;
+ }
+
+ /**
+ * @param collection
+ */
+ public void setClassList(Collection collection) {
+ classList = collection;
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/ReferenceCollectionImpl.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/ReferenceCollectionImpl.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,155 @@
+package org.apache.geronimo.axis;
+
+import org.apache.geronimo.gbean.ReferenceCollection;
+import org.apache.geronimo.gbean.ReferenceCollectionListener;
+
+import java.util.ArrayList;
+import java.util.Collection;
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Iterator;
+import java.util.Map;
+import java.util.NoSuchElementException;
+import java.util.Set;
+
+public class ReferenceCollectionImpl implements ReferenceCollection {
+ private Set listeners = new HashSet();
+ private boolean stopped = false;
+ private Map proxies = new HashMap();
+
+ public boolean isStopped() {
+ synchronized (this) {
+ return stopped;
+ }
+ }
+
+ public void addReferenceCollectionListener(ReferenceCollectionListener listener) {
+ synchronized (this) {
+ listeners.add(listener);
+ }
+ }
+
+ public void removeReferenceCollectionListener(ReferenceCollectionListener listener) {
+ synchronized (this) {
+ listeners.remove(listener);
+ }
+ }
+
+ public int size() {
+ synchronized (this) {
+ if (stopped) {
+ return 0;
+ }
+ return proxies.size();
+ }
+ }
+
+ public boolean isEmpty() {
+ synchronized (this) {
+ if (stopped) {
+ return true;
+ }
+ return proxies.isEmpty();
+ }
+ }
+
+ public boolean contains(Object o) {
+ synchronized (this) {
+ if (stopped) {
+ return false;
+ }
+ return proxies.containsValue(o);
+ }
+ }
+
+ public Iterator iterator() {
+ synchronized (this) {
+ if (stopped) {
+ return new Iterator() {
+ public boolean hasNext() {
+ return false;
+ }
+
+ public Object next() {
+ throw new NoSuchElementException();
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+ return new Iterator() {
+ // copy the proxies, so the client can iterate without concurrent modification
+ // this is necssary since the client has nothing to synchronize on
+ private final Iterator iterator = new ArrayList(proxies.values()).iterator();
+
+ public boolean hasNext() {
+ return iterator.hasNext();
+ }
+
+ public Object next() {
+ return iterator.next();
+ }
+
+ public void remove() {
+ throw new UnsupportedOperationException();
+ }
+ };
+ }
+ }
+
+ public Object[] toArray() {
+ synchronized (this) {
+ if (stopped) {
+ return new Object[0];
+ }
+ return proxies.values().toArray();
+ }
+ }
+
+ public Object[] toArray(Object a[]) {
+ synchronized (this) {
+ if (stopped) {
+ if (a.length > 0) {
+ a[0] = null;
+ }
+ return a;
+ }
+ return proxies.values().toArray(a);
+ }
+ }
+
+ public boolean containsAll(Collection c) {
+ synchronized (this) {
+ if (stopped) {
+ return c.isEmpty();
+ }
+ return proxies.values().containsAll(c);
+ }
+ }
+
+ public boolean add(Object o) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean remove(Object o) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean addAll(Collection c) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean removeAll(Collection c) {
+ throw new UnsupportedOperationException();
+ }
+
+ public boolean retainAll(Collection c) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void clear() {
+ throw new UnsupportedOperationException();
+ }
+}
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WSConfigBuilder.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WSConfigBuilder.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,366 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis;
+
+import org.apache.axis.utils.ClassUtils;
+import org.apache.geronimo.deployment.ConfigurationBuilder;
+import org.apache.geronimo.deployment.DeploymentException;
+import org.apache.geronimo.gbean.GBeanInfo;
+import org.apache.geronimo.gbean.GBeanInfoBuilder;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.j2ee.deployment.EARConfigBuilder;
+import org.apache.geronimo.j2ee.deployment.ResourceReferenceBuilder;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.config.Configuration;
+import org.apache.geronimo.kernel.config.ConfigurationStore;
+import org.apache.geronimo.kernel.repository.Repository;
+import org.openejb.deployment.OpenEJBModuleBuilder;
+
+import javax.management.ObjectName;
+import java.io.BufferedInputStream;
+import java.io.BufferedOutputStream;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.ObjectInputStream;
+import java.io.ObjectOutputStream;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.ArrayList;
+import java.util.Collections;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.jar.JarFile;
+import java.util.jar.JarOutputStream;
+import java.util.zip.ZipEntry;
+import java.util.zip.ZipFile;
+
+/**
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class WSConfigBuilder implements ConfigurationBuilder {
+ private static final String PARENT_ID = "org/apache/geronimo/Server";
+ private boolean hasEJB = false;
+
+ private final Kernel kernel;
+ private final Repository repository;
+ private final ConfigurationStore configurationStore;
+ private final String j2eeServerName;
+ private final String j2eeDomainName;
+ private final ObjectName j2eeServer;
+ private final ObjectName transactionContextManagerObjectName;
+ private final ObjectName connectionTrackerObjectName;
+ private final ObjectName transactionalTimerObjectName;
+ private final ObjectName nonTransactionalTimerObjectName;
+ private final ObjectName trackedConnectionAssocator;
+
+ public WSConfigBuilder(ObjectName j2eeServer,
+ ObjectName transactionContextManagerObjectName,
+ ObjectName connectionTrackerObjectName,
+ ObjectName transactionalTimerObjectName,
+ ObjectName nonTransactionalTimerObjectName,
+ ObjectName trackedConnectionAssocator,
+ Repository repository,
+ Kernel kernel,
+ ConfigurationStore configurationStore) {
+ this.kernel = kernel;
+ this.repository = repository;
+ this.j2eeServer = j2eeServer;
+ j2eeServerName = j2eeServer.getKeyProperty("name");
+ j2eeDomainName = j2eeServer.getDomain();
+ this.transactionContextManagerObjectName = transactionContextManagerObjectName;
+ this.connectionTrackerObjectName = connectionTrackerObjectName;
+ this.transactionalTimerObjectName = transactionalTimerObjectName;
+ this.nonTransactionalTimerObjectName = nonTransactionalTimerObjectName;
+ this.trackedConnectionAssocator = trackedConnectionAssocator;
+ this.configurationStore = configurationStore;
+ }
+
+ public void doStart() throws WaitingException, Exception {
+ }
+
+ public Object getDeploymentPlan(File planFile, JarFile jarFile) throws DeploymentException {
+ return null;
+ }
+
+ public List buildConfiguration(Object plan, JarFile earFile, File outfile) throws IOException, DeploymentException {
+ return null;
+ }
+
+ public List buildConfiguration(Object plan, File earFile, File outfile) throws Exception {
+ Enumeration entires = new JarFile(earFile).entries();
+ while (entires.hasMoreElements()) {
+ ZipEntry zipe = (ZipEntry) entires.nextElement();
+ String name = zipe.getName();
+ if (name.endsWith("/ejb-jar.xml")) {
+ hasEJB = true;
+ System.out.println("entry found " + name + " the web service is based on a ejb.");
+ //log.info("the web service is based on a ejb.");
+ break;
+ }
+ }
+ GBeanMBean[] confBeans = null;
+ if (hasEJB) {
+ File file = installEJBWebService(earFile, outfile, Thread.currentThread().getContextClassLoader());
+ confBeans = loadEJBWebService(file, earFile);
+ } else {
+ File file = installPOJOWebService(earFile, outfile, Thread.currentThread().getContextClassLoader());
+ confBeans = loadPOJOWebService(file);
+ }
+
+ //TODO take tese from plan
+ ObjectName gbeanName1 = new ObjectName("geronimo.test:name=" + earFile.getName());
+ ObjectName gbeanName2 = new ObjectName("geronimo.test:name=" + earFile.getName() + "EJB");
+ Map gbeans = new HashMap();
+ gbeans.put(gbeanName1, confBeans[0]);
+ if (confBeans.length > 1)
+ gbeans.put(gbeanName2, confBeans[1]);
+ byte[] state = Configuration.storeGBeans(gbeans);
+ GBeanMBean config = new GBeanMBean(Configuration.GBEAN_INFO);
+ config.setAttribute("ID", new URI("test"));
+ config.setReferencePatterns("Parent", null);
+ config.setAttribute("classPath", Collections.EMPTY_LIST);
+ config.setAttribute("gBeanState", state);
+ config.setAttribute("dependencies", Collections.EMPTY_LIST);
+ File sourceFile = null;
+ try {
+ sourceFile = File.createTempFile("test", ".car");
+ URL source = sourceFile.toURL();
+ JarOutputStream jos = new JarOutputStream(new BufferedOutputStream(new FileOutputStream(sourceFile)));
+ jos.putNextEntry(new ZipEntry("META-INF/config.ser"));
+ ObjectOutputStream oos = new ObjectOutputStream(jos);
+ config.getGBeanData().writeExternal(oos);
+ oos.flush();
+ jos.closeEntry();
+ jos.close();
+ ArrayList list = new ArrayList(1);
+ list.add(configurationStore.install(source));
+ return list;
+ } finally {
+ if (sourceFile != null) {
+ sourceFile.delete();
+ }
+ }
+ }
+
+ public GBeanMBean[] loadtheWSConfigurations(File installedLocation, File module) throws Exception {
+ if (hasEJB) {
+ return loadEJBWebService(installedLocation, module);
+ } else {
+ return loadPOJOWebService(installedLocation);
+ }
+ }
+
+ public File installWebService(File module, File unpackedDir, ClassLoader classLoader) throws IOException, DeploymentException {
+ ZipFile zipfile = new ZipFile(module);
+ Enumeration entires = zipfile.entries();
+ while (entires.hasMoreElements()) {
+ ZipEntry zipe = (ZipEntry) entires.nextElement();
+ String name = zipe.getName();
+ if (name.endsWith("/ejb-jar.xml")) {
+ hasEJB = true;
+ System.out.println("entry found " + name + " the web service is based on a ejb.");
+ //log.info("the web service is based on a ejb.");
+ break;
+ }
+ }
+ if (hasEJB) {
+ return installEJBWebService(module, unpackedDir, classLoader);
+ } else {
+ return installPOJOWebService(module, unpackedDir, classLoader);
+ }
+ }
+
+ /**
+ * @param module Web Service module generated by EWS
+ * @param unpackedDir for WS
+ * @param cl
+ * @return the file to where Module is copied in to
+ */
+ private File installPOJOWebService(File module, File unpackedDir, ClassLoader cl) throws IOException, DeploymentException {
+ ClassLoader parentClassLoder = ClassUtils.getDefaultClassLoader();
+ ClassLoader classloader
+ = new URLClassLoader(new URL[]{module.toURL()}, parentClassLoder);
+ //TODO registerClassLoader(new ZipFile(module),classloader);
+ File out = new File(unpackedDir, module.getName());
+ copyTheFile(module, out);
+ //The registration done from the POJOWS GBean
+ //addEntryToAxisDD(new ZipFile(module));
+ return out;
+ }
+
+ private File installEJBWebService(File module, File unpackedDir, ClassLoader cl) throws IOException, DeploymentException {
+ /**
+ * TODO following code deploy the EJB in the OpenEJB EJB continaer.
+ * The code is borrows from the geronimo openEJB module
+ * modules/core/src/test/org/openejb/deployment/EJBConfigBuilderTest.java#testEJBJarDeploy()
+ * Method. If this code is broken first the above test should check. If that change this will broke
+ * But this can quickly fix looking at it.
+ */
+
+ OpenEJBModuleBuilder moduleBuilder = new OpenEJBModuleBuilder();
+ ResourceReferenceBuilder resourceReferenceBuilder = null;
+ EARConfigBuilder earConfigBuilder = new EARConfigBuilder(j2eeServer,
+ transactionContextManagerObjectName,
+ trackedConnectionAssocator,
+ transactionalTimerObjectName,
+ nonTransactionalTimerObjectName,
+ null, // Repository
+ moduleBuilder,
+ moduleBuilder,
+ null,
+ null,
+ resourceReferenceBuilder, // webconnector
+ null, // app client
+ null // kernel
+ );
+ JarFile jarFile = new JarFile(module);
+ Object plan = earConfigBuilder.getDeploymentPlan(null, jarFile);
+ earConfigBuilder.buildConfiguration(plan, jarFile, unpackedDir);
+
+
+
+// OpenEJBModuleBuilder moduleBuilder = new OpenEJBModuleBuilder();
+//
+// Thread.currentThread().setContextClassLoader(cl);
+//
+// File carFile = File.createTempFile("OpenEJBTest", ".car");
+//
+//
+// EARConfigBuilder earConfigBuilder
+// = new EARConfigBuilder(j2eeServer,
+// transactionContextManagerObjectName,
+// trackedConnectionAssocator,
+// transactionalTimerObjectName,
+// nonTransactionalTimerObjectName,
+// null, moduleBuilder, moduleBuilder, null, null, null, null, null);
+//
+//
+// try {
+// Object plan = earConfigBuilder.getDeploymentPlan(null, new JarFile(module));
+// earConfigBuilder.buildConfiguration(plan, new JarFile(module), unpackedDir);
+// } finally {
+// carFile.delete();
+// JarFile jarmodule = new JarFile(module);
+// ZipEntry deployentry = jarmodule.getEntry("deploy.wsdd");
+// InputStream deplydd = jarmodule.getInputStream(deployentry);
+// AxisGeronimoUtils.addEntryToAxisDD(deplydd);
+ return unpackedDir;
+// }
+ }
+
+ private GBeanMBean[] loadPOJOWebService(File module) throws Exception {
+ GBeanMBean gbean = new GBeanMBean(POJOWSGBean.getGBeanInfo());
+ //TODO fill up the POJOWSGBean info
+ ArrayList classList = AxisGeronimoUtils.getClassFileList(new ZipFile(module));
+ gbean.setAttribute("classList", classList);
+ gbean.setAttribute("moduleURL", module.toURL());
+ return new GBeanMBean[]{gbean};
+ }
+
+ private GBeanMBean[] loadEJBWebService(File installLocation, File module) throws Exception {
+ GBeanMBean config = loadConfig(installLocation);
+ config.setAttribute("baseURL", installLocation.toURL());
+ GBeanMBean gbean = new GBeanMBean(EJBWSGBean.getGBeanInfo());
+ ArrayList classList = AxisGeronimoUtils.getClassFileList(new ZipFile(module));
+ gbean.setAttribute("classList", classList);
+ gbean.setAttribute("ejbConfig", config.getTarget());
+ return new GBeanMBean[]{gbean, config};
+
+// ClassLoader classLoader = (ClassLoader)config.getAttribute("classLoader");
+// File[] list = installLocation.listFiles();
+// for(int i = 0; i< list.length;i++){
+// if(list[i].getName().endsWith(".jar")){
+// AxisGeronimoUtils.registerClassLoader(new ZipFile(list[i]),classLoader);
+// return new GBeanMBean[]{gbean,config};
+// }
+// }
+// throw new DeploymentException("can not found the ews module in " + installLocation);
+ }
+
+ private static GBeanMBean loadConfig(File unpackedCar) throws Exception {
+ InputStream in = new FileInputStream(new File(unpackedCar,
+ "META-INF/config.ser"));
+ try {
+ ObjectInputStream ois =
+ new ObjectInputStream(new BufferedInputStream(in));
+ GBeanInfo gbeanInfo = Configuration.GBEAN_INFO;
+ GBeanMBean config = new GBeanMBean(gbeanInfo);
+ Configuration.loadGMBeanState(config, ois);
+ return config;
+ } finally {
+ in.close();
+ }
+ }
+
+ private void copyTheFile(File inFile, File outFile) throws IOException {
+ if (!outFile.exists())
+ outFile.getParentFile().mkdirs();
+ FileOutputStream out = new FileOutputStream(outFile);
+ FileInputStream in = new FileInputStream(inFile);
+ try {
+ byte[] buf = new byte[1024];
+ int val = in.read(buf);
+ while (val > 0) {
+ out.write(buf, 0, val);
+ val = in.read(buf);
+ }
+ } finally {
+ in.close();
+ out.close();
+ }
+ }
+
+ public static final GBeanInfo GBEAN_INFO;
+
+ static {
+ GBeanInfoBuilder infoFactory = new GBeanInfoBuilder(WSConfigBuilder.class);
+ infoFactory.addAttribute("j2eeServer", ObjectName.class, true);
+ infoFactory.addAttribute("transactionContextManagerObjectName", ObjectName.class, true);
+ infoFactory.addAttribute("connectionTrackerObjectName", ObjectName.class, true);
+ infoFactory.addAttribute("transactionalTimerObjectName", ObjectName.class, true);
+ infoFactory.addAttribute("nonTransactionalTimerObjectName", ObjectName.class, true);
+ infoFactory.addAttribute("trackedConnectionAssocator", ObjectName.class, true);
+ infoFactory.addAttribute("configurationStore", ConfigurationStore.class, false);
+ infoFactory.addReference("Repository", Repository.class);
+ infoFactory.addAttribute("kernel", Kernel.class, false);
+ infoFactory.addInterface(ConfigurationBuilder.class);
+ infoFactory.setConstructor(new String[]{
+ "j2eeServer",
+ "transactionContextManagerObjectName",
+ "connectionTrackerObjectName",
+ "transactionalTimerObjectName",
+ "nonTransactionalTimerObjectName",
+ "trackedConnectionAssocator",
+ "configurationStore",
+ "Repository",
+ "kernel"
+ });
+ GBEAN_INFO = infoFactory.getBeanInfo();
+ }
+
+ public static GBeanInfo getGBeanInfo() {
+ return GBEAN_INFO;
+ }
+}
+
Added: geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WSDDJavaGeronimoProvider.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/java/org/apache/geronimo/axis/WSDDJavaGeronimoProvider.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,51 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis;
+
+import org.apache.axis.EngineConfiguration;
+import org.apache.axis.Handler;
+import org.apache.axis.deployment.wsdd.WSDDProvider;
+import org.apache.axis.deployment.wsdd.WSDDService;
+
+/**
+ * refering to axis comment of pluggable providers
+ * Look for file META-INF/services/org.apache.axis.deployment.wsdd.Provider
+ * in all the JARS, get the classes listed in those files and add them to
+ * providers list if they are valid providers.
+ * Here is how the scheme would work.
+ * A company providing a new provider will jar up their provider related
+ * classes in a JAR file. The following file containing the name of the new
+ * provider class is also made part of this JAR file.
+ * META-INF/services/org.apache.axis.deployment.wsdd.Provider
+ * By making this JAR part of the webapp, the new provider will be
+ * automatically discovered.
+ *
+ * @author Srinath Perera(hemapani@opensource.lk)
+ */
+public class WSDDJavaGeronimoProvider extends WSDDProvider {
+ public static final String PROVIDER_EWS = "geronimo";
+
+ public String getName() {
+ return PROVIDER_EWS;
+ }
+
+ public Handler newProviderInstance(WSDDService service,
+ EngineConfiguration registry)
+ throws Exception {
+ return new GeronimoProvider();
+ }
+}
Added: geronimo/trunk/modules/axis/src/plans/plan1.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/plans/plan1.xml Tue Nov 2 13:28:59 2004
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<configuration
+ xmlns="http://geronimo.apache.org/xml/ns/deployment"
+ configId="test/plan1"
+ >
+ <dependency>
+ <groupId>geronimo</groupId>
+ <artifactId>geronimo-kernel</artifactId>
+ <version>DEV</version>
+ </dependency>
+
+ <!-- Start Axis Servlet from the plan -->
+ <gbean name="geronimo.server:type=WebServiceContainer,container=axis" class="org.apache.geronimo.axis.AxisGBean">
+</configuration>
\ No newline at end of file
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/web.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/web.xml Tue Nov 2 13:28:59 2004
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="ISO-8859-1"?>
+<web-app xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd"
+ version="2.4">
+ <servlet>
+ <servlet-name>echo</servlet-name>
+ <servlet-class>org.apache.ws.echosample.EchoBean</servlet-class>
+ <load-on-startup>1</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>simple</servlet-name>
+ <url-pattern>/simple</url-pattern>
+ </servlet-mapping>
+</web-app>
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/webservices.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/WEB-INF/webservices.xml Tue Nov 2 13:28:59 2004
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<webservices xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns1="http://echosample.ws.apache.org"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://www.ibm.com/standards/xml/webservices/j2ee/j2ee_web_services_1_1.xsd" version="1.1">
+ <description>echo Service</description>
+ <display-name>echo</display-name>
+ <webservice-description>
+ <description>echo</description>
+ <display-name>echo</display-name>
+ <webservice-description-name>echoService</webservice-description-name>
+ <wsdl-file>echo.wsdl</wsdl-file>
+ <jaxrpc-mapping-file>echomapping.xml</jaxrpc-mapping-file>
+ <port-component>
+ <description>echo</description>
+ <display-name>echo</display-name>
+ <icon xml:lang="en-us" id="ID000298">
+ <small-icon>token</small-icon>
+ <large-icon>token</large-icon>
+ </icon>
+ <port-component-name>echo</port-component-name>
+ <wsdl-port id="ID000311">ns1:echoPort</wsdl-port>
+ <service-endpoint-interface>org.apache.ws.echosample.Echo</service-endpoint-interface>
+ <service-impl-bean>
+ <servlet-link>echo</servlet-link>
+ </service-impl-bean>
+ </port-component>
+ </webservice-description>
+</webservices>
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/build.xml
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/build.xml Tue Nov 2 13:28:59 2004
@@ -0,0 +1,38 @@
+<?xml version="1.0"?>
+<project basedir="." default="jar">
+ <property name="src" location="."/>
+ <property name="build" location="build"/>
+ <property name="build.classes" location="${build}/WEB-INF/classes"/>
+ <property name="build.lib" location="${build}/lib"/>
+ <property name="lib" location="lib"/>
+ <property name="jar.dir" location="../../../target/samples/"/>
+ <target name="compile" depends="init" unless="jars.uptodate">
+ <mkdir dir="${build.classes}"/>
+ <mkdir dir="${build.lib}"/>
+ <javac destdir="${build.classes}" debug="on">
+ <classpath refid="maven.dependency.classpath"/>
+ <src path="${src}"/>
+ </javac>
+ </target>
+ <target name="jar" depends="compile" unless="jars.uptodate">
+ <copy file="${basedir}/WEB-INF/webservices.xml" todir="${build.classes}/.."/>
+ <copy file="${basedir}/WEB-INF/web.xml" todir="${build.classes}/.."/>
+ <mkdir dir="${jar.dir}"/>
+ <jar jarfile="${jar.dir}/echo.war" basedir="${build}">
+ <include name="**/*.class"/>
+ <include name="**/*.xml"/>
+ </jar>
+ <delete dir="${build}"/>
+ </target>
+ <target name="init">
+ <uptodate property="jars.uptodate" targetfile="${jar.dir}/echo.war">
+ <srcfiles dir="${src}">
+ <include name="**/*.java"/>
+ <include name="**/*.xml"/>
+ <include name="**/*.wsdl"/>
+ <exclude name="${build}/**"/>
+ </srcfiles>
+ </uptodate>
+ <echo message="the files are up to date = ${jars.uptodate}"></echo>
+ </target>
+</project>
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/Echo.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/Echo.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,28 @@
+package org.apache.ws.echosample;
+
+public interface Echo extends java.rmi.Remote {
+ public void echoVoid() throws java.rmi.RemoteException;
+
+ public int echoInt(int in) throws java.rmi.RemoteException;
+
+ public double echoDouble(double in) throws java.rmi.RemoteException;
+
+ public float echoFloat(float in) throws java.rmi.RemoteException;
+
+ public boolean echoBoolean(boolean in) throws java.rmi.RemoteException;
+
+ public String echoString(String in) throws java.rmi.RemoteException;
+
+ public short echoShort(short in) throws java.rmi.RemoteException;
+
+ public long echoLong(long in) throws java.rmi.RemoteException;
+
+ //public char echoChar(char in);
+ public byte[] echoBytes(byte[] in) throws java.rmi.RemoteException;
+
+ public void echoEvoid() throws java.rmi.RemoteException;
+
+ public EchoStruct echoStruct(EchoStruct in) throws java.rmi.RemoteException;
+ //public EchoStruct[] echoAStruct(EchoStruct[] in)throws java.rmi.RemoteException;
+
+}
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/EchoBean.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/EchoBean.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,67 @@
+package org.apache.ws.echosample;
+
+public class EchoBean implements Echo {
+ public void ejbCreate() {
+ }
+
+ public void echoVoid() {
+ }
+
+ public int echoInt(int in) {
+ return in;
+ }
+
+ public double echoDouble(double in) {
+ return in;
+ }
+
+ public float echoFloat(float in) {
+ return in;
+ }
+
+ public boolean echoBoolean(boolean in) {
+ return in;
+ }
+
+ public String echoString(String in) {
+ return in;
+ }
+
+ public short echoShort(short in) {
+ return in;
+ }
+
+ public long echoLong(long in) {
+ return in;
+ }
+
+ public char echoChar(char in) {
+ return in;
+ }
+
+ public byte[] echoBytes(byte[] in) {
+ return in;
+ }
+
+ public void echoEvoid() {
+ }
+
+ public EchoStruct echoStruct(EchoStruct in) {
+ return in;
+ }
+// public EchoStruct[] echoAStruct(EchoStruct[] in){
+// return in;
+// }
+
+ public void ejbActivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+
+ public void ejbPassivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+
+ public void ejbRemove() throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+
+ public void setSessionContext(javax.ejb.SessionContext arg0) throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+}
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/EchoStruct.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/EchoStruct.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,281 @@
+package org.apache.ws.echosample;
+
+import java.io.Serializable;
+
+public class EchoStruct implements Serializable {
+ private int intVal;
+ private double doubleVal;
+ private byte[] bytesVal;
+ private float floatVal;
+ private long longVal;
+ private short shortVal;
+ private boolean boolaenVal;
+
+ private String strVal;
+
+ private int[] intaVal;
+ private double[] doubleaVal;
+ private byte[][] bytesaVal;
+ private float[] floataVal;
+ private long[] longaVal;
+ private short[] shortaVal;
+ private boolean[] boolaenaVal;
+
+ private String[] straVal;
+
+ private SmallEchoStruct sturctVal;
+ private SmallEchoStruct sturctaVal;
+
+ /**
+ * @return
+ */
+ public boolean[] getBoolaenaVal() {
+ return boolaenaVal;
+ }
+
+ /**
+ * @return
+ */
+ public boolean isBoolaenVal() {
+ return boolaenVal;
+ }
+
+ /**
+ * @return
+ */
+ public byte[][] getBytesaVal() {
+ return bytesaVal;
+ }
+
+ /**
+ * @return
+ */
+ public byte[] getBytesVal() {
+ return bytesVal;
+ }
+
+ /**
+ * @return
+ */
+ public double[] getDoubleaVal() {
+ return doubleaVal;
+ }
+
+ /**
+ * @return
+ */
+ public double getDoubleVal() {
+ return doubleVal;
+ }
+
+ /**
+ * @return
+ */
+ public float[] getFloataVal() {
+ return floataVal;
+ }
+
+ /**
+ * @return
+ */
+ public float getFloatVal() {
+ return floatVal;
+ }
+
+ /**
+ * @return
+ */
+ public int[] getIntaVal() {
+ return intaVal;
+ }
+
+ /**
+ * @return
+ */
+ public int getIntVal() {
+ return intVal;
+ }
+
+ /**
+ * @return
+ */
+ public long[] getLongaVal() {
+ return longaVal;
+ }
+
+ /**
+ * @return
+ */
+ public long getLongVal() {
+ return longVal;
+ }
+
+ /**
+ * @return
+ */
+ public short[] getShortaVal() {
+ return shortaVal;
+ }
+
+ /**
+ * @return
+ */
+ public short getShortVal() {
+ return shortVal;
+ }
+
+ /**
+ * @return
+ */
+ public String[] getStraVal() {
+ return straVal;
+ }
+
+ /**
+ * @return
+ */
+ public String getStrVal() {
+ return strVal;
+ }
+
+ /**
+ * @param bs
+ */
+ public void setBoolaenaVal(boolean[] bs) {
+ boolaenaVal = bs;
+ }
+
+ /**
+ * @param b
+ */
+ public void setBoolaenVal(boolean b) {
+ boolaenVal = b;
+ }
+
+ /**
+ * @param bs
+ */
+ public void setBytesaVal(byte[][] bs) {
+ bytesaVal = bs;
+ }
+
+ /**
+ * @param bs
+ */
+ public void setBytesVal(byte[] bs) {
+ bytesVal = bs;
+ }
+
+ /**
+ * @param ds
+ */
+ public void setDoubleaVal(double[] ds) {
+ doubleaVal = ds;
+ }
+
+ /**
+ * @param d
+ */
+ public void setDoubleVal(double d) {
+ doubleVal = d;
+ }
+
+ /**
+ * @param fs
+ */
+ public void setFloataVal(float[] fs) {
+ floataVal = fs;
+ }
+
+ /**
+ * @param f
+ */
+ public void setFloatVal(float f) {
+ floatVal = f;
+ }
+
+ /**
+ * @param is
+ */
+ public void setIntaVal(int[] is) {
+ intaVal = is;
+ }
+
+ /**
+ * @param i
+ */
+ public void setIntVal(int i) {
+ intVal = i;
+ }
+
+ /**
+ * @param ls
+ */
+ public void setLongaVal(long[] ls) {
+ longaVal = ls;
+ }
+
+ /**
+ * @param l
+ */
+ public void setLongVal(long l) {
+ longVal = l;
+ }
+
+ /**
+ * @param ses
+ */
+ public void setShortaVal(short[] ses) {
+ shortaVal = ses;
+ }
+
+ /**
+ * @param s
+ */
+ public void setShortVal(short s) {
+ shortVal = s;
+ }
+
+ /**
+ * @param strings
+ */
+ public void setStraVal(String[] strings) {
+ straVal = strings;
+ }
+
+ /**
+ * @param string
+ */
+ public void setStrVal(String string) {
+ strVal = string;
+ }
+
+ /**
+ * @return
+ */
+ public SmallEchoStruct getSturctaVal() {
+ return sturctaVal;
+ }
+
+ /**
+ * @return
+ */
+ public SmallEchoStruct getSturctVal() {
+ return sturctVal;
+ }
+
+ /**
+ * @param struct
+ */
+ public void setSturctaVal(SmallEchoStruct struct) {
+ sturctaVal = struct;
+ }
+
+ /**
+ * @param struct
+ */
+ public void setSturctVal(SmallEchoStruct struct) {
+ sturctVal = struct;
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/SmallEchoStruct.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/samples/echo-pojo/org/apache/ws/echosample/SmallEchoStruct.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,37 @@
+package org.apache.ws.echosample;
+
+import java.io.Serializable;
+
+public class SmallEchoStruct implements Serializable {
+ private String val1;
+ private String val2;
+
+ /**
+ * @return
+ */
+ public String getVal1() {
+ return val1;
+ }
+
+ /**
+ * @return
+ */
+ public String getVal2() {
+ return val2;
+ }
+
+ /**
+ * @param string
+ */
+ public void setVal1(String string) {
+ val1 = string;
+ }
+
+ /**
+ * @param string
+ */
+ public void setVal2(String string) {
+ val2 = string;
+ }
+
+}
Modified: geronimo/trunk/modules/axis/src/samples/echo/META-INF/ejb-jar.xml
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/META-INF/ejb-jar.xml (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/META-INF/ejb-jar.xml Tue Nov 2 13:28:59 2004
@@ -1,22 +1,22 @@
<?xml version="1.0" encoding="UTF-8"?>
<ejb-jar xmlns="http://java.sun.com/xml/ns/j2ee"
- xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
- xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
- http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
- version="2.1">
- <display-name>BookQuoteService</display-name>
- <enterprise-beans>
- <session>
- <display-name>echo</display-name>
- <ejb-name>echo</ejb-name>
- <home>org.apache.ws.echosample.EchoHome</home>
- <remote>org.apache.ws.echosample.EchoEJB</remote>
- <ejb-class>org.apache.ws.echosample.EchoBean</ejb-class>
- <session-type>Stateless</session-type>
- <transaction-type>Bean</transaction-type>
- </session>
- </enterprise-beans>
- <assembly-descriptor>
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://java.sun.com/xml/ns/j2ee/ejb-jar_2_1.xsd"
+ version="2.1">
+ <display-name>BookQuoteService</display-name>
+ <enterprise-beans>
+ <session>
+ <display-name>echo</display-name>
+ <ejb-name>echo</ejb-name>
+ <home>org.apache.ws.echosample.EchoHome</home>
+ <remote>org.apache.ws.echosample.EchoEJB</remote>
+ <ejb-class>org.apache.ws.echosample.EchoBean</ejb-class>
+ <session-type>Stateless</session-type>
+ <transaction-type>Bean</transaction-type>
+ </session>
+ </enterprise-beans>
+ <assembly-descriptor>
<method-permission>
<unchecked/>
<method>
@@ -24,5 +24,5 @@
<method-name>*</method-name>
</method>
</method-permission>
- </assembly-descriptor>
+ </assembly-descriptor>
</ejb-jar>
Modified: geronimo/trunk/modules/axis/src/samples/echo/META-INF/webservice.xml
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/META-INF/webservice.xml (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/META-INF/webservice.xml Tue Nov 2 13:28:59 2004
@@ -1,32 +1,30 @@
<?xml version="1.0" encoding="UTF-8"?>
-<webservices xmlns="http://java.sun.com/xml/ns/j2ee"
-xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-xmlns:ns1="http://echosample.ws.apache.org"
-xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
-http://www.ibm.com/standards/xml/webservices/j2ee/j2ee_web_services_1_1.xsd" version="1.1">
+<webservices xmlns="http://java.sun.com/xml/ns/j2ee"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:ns1="http://echosample.ws.apache.org"
+ xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
+ http://www.ibm.com/standards/xml/webservices/j2ee/j2ee_web_services_1_1.xsd" version="1.1">
<description>echo Service</description>
- <display-name>echo</display-name>
- <webservice-description >
- <description>echo</description>
- <display-name>echo</display-name>
- <webservice-description-name >echoService</webservice-description-name>
- <wsdl-file >echo.wsdl</wsdl-file>
- <jaxrpc-mapping-file >echomapping.xml</jaxrpc-mapping-file>
- <port-component >
- <description >echo</description>
- <display-name >echo</display-name>
-
- <icon xml:lang="en-us" id="ID000298">
- <small-icon>token</small-icon>
- <large-icon>token</large-icon>
- </icon>
-
- <port-component-name >echo</port-component-name>
- <wsdl-port id="ID000311">ns1:echoPort</wsdl-port>
- <service-endpoint-interface >org.apache.ws.echosample.Echo</service-endpoint-interface>
- <service-impl-bean >
- <ejb-link >echo</ejb-link>
- </service-impl-bean>
- </port-component>
- </webservice-description>
+ <display-name>echo</display-name>
+ <webservice-description>
+ <description>echo</description>
+ <display-name>echo</display-name>
+ <webservice-description-name>echoService</webservice-description-name>
+ <wsdl-file>echo.wsdl</wsdl-file>
+ <jaxrpc-mapping-file>echomapping.xml</jaxrpc-mapping-file>
+ <port-component>
+ <description>echo</description>
+ <display-name>echo</display-name>
+ <icon xml:lang="en-us" id="ID000298">
+ <small-icon>token</small-icon>
+ <large-icon>token</large-icon>
+ </icon>
+ <port-component-name>echo</port-component-name>
+ <wsdl-port id="ID000311">ns1:echoPort</wsdl-port>
+ <service-endpoint-interface>org.apache.ws.echosample.Echo</service-endpoint-interface>
+ <service-impl-bean>
+ <ejb-link>echo</ejb-link>
+ </service-impl-bean>
+ </port-component>
+ </webservice-description>
</webservices>
Modified: geronimo/trunk/modules/axis/src/samples/echo/build.xml
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/build.xml (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/build.xml Tue Nov 2 13:28:59 2004
@@ -6,7 +6,6 @@
<property name="build.lib" location="${build}/lib"/>
<property name="lib" location="lib"/>
<property name="jar.dir" location="../../../target/samples/"/>
-
<target name="compile" depends="init" unless="jars.uptodate">
<mkdir dir="${build.classes}"/>
<mkdir dir="${build.lib}"/>
@@ -15,7 +14,6 @@
<src path="${src}"/>
</javac>
</target>
-
<target name="jar" depends="compile" unless="jars.uptodate">
<!--<echoproperties />-->
<mkdir dir="${build.classes}/META-INF/"/>
@@ -25,17 +23,14 @@
<jar jarfile="${jar.dir}/echo.jar" basedir="${build.classes}">
<include name="**"/>
</jar>
-
<copy todir="${build.classes}/META-INF">
<fileset dir="${basedir}/META-INF/">
<include name="**/*.xml"/>
<exclude name="build.xml"/>
</fileset>
</copy>
-
<delete dir="${build}"/>
</target>
-
<target name="init">
<uptodate property="jars.uptodate" targetfile="${jar.dir}/echo.jar">
<srcfiles dir="${src}">
Modified: geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/Echo.java
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/Echo.java (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/Echo.java Tue Nov 2 13:28:59 2004
@@ -1,17 +1,27 @@
package org.apache.ws.echosample;
-public interface Echo extends java.rmi.Remote {
- public void echoVoid()throws java.rmi.RemoteException;
- public int echoInt(int in)throws java.rmi.RemoteException;
- public double echoDouble(double in)throws java.rmi.RemoteException;
- public float echoFloat(float in)throws java.rmi.RemoteException;
- public boolean echoBoolean(boolean in)throws java.rmi.RemoteException;
- public String echoString(String in)throws java.rmi.RemoteException;
- public short echoShort(short in)throws java.rmi.RemoteException;
- public long echoLong(long in)throws java.rmi.RemoteException;
- //public char echoChar(char in);
- public byte[] echoBytes(byte[] in)throws java.rmi.RemoteException;
- public void echoEvoid()throws java.rmi.RemoteException;
- public EchoStruct echoStruct(EchoStruct in)throws java.rmi.RemoteException;
- //public EchoStruct[] echoAStruct(EchoStruct[] in)throws java.rmi.RemoteException;
-
+
+public interface Echo extends java.rmi.Remote {
+ public void echoVoid() throws java.rmi.RemoteException;
+
+ public int echoInt(int in) throws java.rmi.RemoteException;
+
+ public double echoDouble(double in) throws java.rmi.RemoteException;
+
+ public float echoFloat(float in) throws java.rmi.RemoteException;
+
+ public boolean echoBoolean(boolean in) throws java.rmi.RemoteException;
+
+ public String echoString(String in) throws java.rmi.RemoteException;
+
+ public short echoShort(short in) throws java.rmi.RemoteException;
+
+ public long echoLong(long in) throws java.rmi.RemoteException;
+
+ //public char echoChar(char in);
+ public byte[] echoBytes(byte[] in) throws java.rmi.RemoteException;
+
+ public void echoEvoid() throws java.rmi.RemoteException;
+
+ public EchoStruct echoStruct(EchoStruct in) throws java.rmi.RemoteException;
+ //public EchoStruct[] echoAStruct(EchoStruct[] in)throws java.rmi.RemoteException;
}
Modified: geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoBean.java
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoBean.java (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoBean.java Tue Nov 2 13:28:59 2004
@@ -1,48 +1,67 @@
-
package org.apache.ws.echosample;
-public class EchoBean implements javax.ejb.SessionBean{
- public void ejbCreate() {}
-
- public void echoVoid(){}
- public int echoInt(int in){
- return in;
- }
- public double echoDouble(double in){
- return in;
- }
- public float echoFloat(float in){
- return in;
- }
- public boolean echoBoolean(boolean in){
- return in;
- }
- public String echoString(String in){
- return in;
- }
- public short echoShort(short in){
- return in;
- }
- public long echoLong(long in){
- return in;
- }
- public char echoChar(char in){
- return in;
- }
- public byte[] echoBytes(byte[] in){
- return in;
- }
- public void echoEvoid(){
-
- }
- public EchoStruct echoStruct(EchoStruct in){
- return in;
- }
+
+public class EchoBean implements javax.ejb.SessionBean {
+ public void ejbCreate() {
+ }
+
+ public void echoVoid() {
+ }
+
+ public int echoInt(int in) {
+ return in;
+ }
+
+ public double echoDouble(double in) {
+ return in;
+ }
+
+ public float echoFloat(float in) {
+ return in;
+ }
+
+ public boolean echoBoolean(boolean in) {
+ return in;
+ }
+
+ public String echoString(String in) {
+ return in;
+ }
+
+ public short echoShort(short in) {
+ return in;
+ }
+
+ public long echoLong(long in) {
+ return in;
+ }
+
+ public char echoChar(char in) {
+ return in;
+ }
+
+ public byte[] echoBytes(byte[] in) {
+ return in;
+ }
+
+ public void echoEvoid() {
+ }
+
+ public EchoStruct echoStruct(EchoStruct in) {
+ return in;
+ }
// public EchoStruct[] echoAStruct(EchoStruct[] in){
// return in;
// }
- public void ejbActivate() throws javax.ejb.EJBException, java.rmi.RemoteException {}
- public void ejbPassivate() throws javax.ejb.EJBException, java.rmi.RemoteException {}
- public void ejbRemove() throws javax.ejb.EJBException, java.rmi.RemoteException {}
- public void setSessionContext(javax.ejb.SessionContext arg0)throws javax.ejb.EJBException, java.rmi.RemoteException {}
+ public void ejbActivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+
+ public void ejbPassivate() throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+
+ public void ejbRemove() throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
+
+ public void setSessionContext(javax.ejb.SessionContext arg0) throws javax.ejb.EJBException, java.rmi.RemoteException {
+ }
}
Modified: geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoStruct.java
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoStruct.java (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/EchoStruct.java Tue Nov 2 13:28:59 2004
@@ -2,30 +2,30 @@
import java.io.Serializable;
-public class EchoStruct implements Serializable{
- private int intVal;
- private double doubleVal;
- private byte[] bytesVal;
- private float floatVal;
- private long longVal;
- private short shortVal;
- private boolean boolaenVal;
-
- private String strVal;
-
- private int[] intaVal;
- private double[] doubleaVal;
- private byte[][] bytesaVal;
- private float[] floataVal;
- private long[] longaVal;
- private short[] shortaVal;
- private boolean[] boolaenaVal;
-
- private String[] straVal;
-
- private SmallEchoStruct sturctVal;
- private SmallEchoStruct sturctaVal;
-
+public class EchoStruct implements Serializable {
+ private int intVal;
+ private double doubleVal;
+ private byte[] bytesVal;
+ private float floatVal;
+ private long longVal;
+ private short shortVal;
+ private boolean boolaenVal;
+
+ private String strVal;
+
+ private int[] intaVal;
+ private double[] doubleaVal;
+ private byte[][] bytesaVal;
+ private float[] floataVal;
+ private long[] longaVal;
+ private short[] shortaVal;
+ private boolean[] boolaenaVal;
+
+ private String[] straVal;
+
+ private SmallEchoStruct sturctVal;
+ private SmallEchoStruct sturctaVal;
+
/**
* @return
*/
@@ -54,9 +54,6 @@
return bytesVal;
}
-
-
-
/**
* @return
*/
@@ -169,7 +166,6 @@
bytesVal = bs;
}
-
/**
* @param ds
*/
Modified: geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/SmallEchoStruct.java
==============================================================================
--- geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/SmallEchoStruct.java (original)
+++ geronimo/trunk/modules/axis/src/samples/echo/org/apache/ws/echosample/SmallEchoStruct.java Tue Nov 2 13:28:59 2004
@@ -1,11 +1,11 @@
-
package org.apache.ws.echosample;
import java.io.Serializable;
-public class SmallEchoStruct implements Serializable{
- private String val1;
- private String val2;
+public class SmallEchoStruct implements Serializable {
+ private String val1;
+ private String val2;
+
/**
* @return
*/
Modified: geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/geronimo-web.xml
==============================================================================
--- geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/geronimo-web.xml (original)
+++ geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/geronimo-web.xml Tue Nov 2 13:28:59 2004
@@ -15,11 +15,9 @@
See the License for the specific language governing permissions and
limitations under the License.
-->
-
<jetty:web-app
xmlns:jetty="http://geronimo.apache.org/xml/ns/web/jetty"
- configId="org/apache/geronimo/axis"
- >
+ configId="org/apache/geronimo/axis">
<jetty:context-root>/axis</jetty:context-root>
<jetty:context-priority-classloader>false</jetty:context-priority-classloader>
</jetty:web-app>
Modified: geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/web.xml
==============================================================================
--- geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/web.xml (original)
+++ geronimo/trunk/modules/axis/src/test-resources/deployables/axis/WEB-INF/web.xml Tue Nov 2 13:28:59 2004
@@ -2,72 +2,62 @@
<!DOCTYPE web-app PUBLIC "-//Sun Microsystems, Inc.//DTD Web
Application 2.3//EN" "http://java.sun.com/dtd/web-app_2_3.dtd">
-
<web-app>
- <display-name>Apache-Axis</display-name>
-
+ <display-name>Apache-Axis</display-name>
<listener>
<listener-class>org.apache.axis.transport.http.AxisHTTPSessionListener</listener-class>
</listener>
-
- <servlet>
- <servlet-name>AxisServlet</servlet-name>
- <display-name>Apache-Axis Servlet</display-name>
- <servlet-class>
+ <servlet>
+ <servlet-name>AxisServlet</servlet-name>
+ <display-name>Apache-Axis Servlet</display-name>
+ <servlet-class>
org.apache.axis.transport.http.AxisServlet
- </servlet-class>
- </servlet>
-
- <servlet>
- <servlet-name>AdminServlet</servlet-name>
- <display-name>Axis Admin Servlet</display-name>
- <servlet-class>
+ </servlet-class>
+ </servlet>
+ <servlet>
+ <servlet-name>AdminServlet</servlet-name>
+ <display-name>Axis Admin Servlet</display-name>
+ <servlet-class>
org.apache.axis.transport.http.AdminServlet
- </servlet-class>
- <load-on-startup>100</load-on-startup>
- </servlet>
-
- <servlet>
- <servlet-name>SOAPMonitorService</servlet-name>
- <display-name>SOAPMonitorService</display-name>
- <servlet-class>
+ </servlet-class>
+ <load-on-startup>100</load-on-startup>
+ </servlet>
+ <servlet>
+ <servlet-name>SOAPMonitorService</servlet-name>
+ <display-name>SOAPMonitorService</display-name>
+ <servlet-class>
org.apache.axis.monitor.SOAPMonitorService
- </servlet-class>
- <init-param>
- <param-name>SOAPMonitorPort</param-name>
- <param-value>5001</param-value>
- </init-param>
- <load-on-startup>100</load-on-startup>
- </servlet>
-
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/servlet/AxisServlet</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>*.jws</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>AxisServlet</servlet-name>
- <url-pattern>/services/*</url-pattern>
- </servlet-mapping>
-
- <servlet-mapping>
- <servlet-name>SOAPMonitorService</servlet-name>
- <url-pattern>/SOAPMonitor</url-pattern>
- </servlet-mapping>
-
- <!-- uncomment this if you want the admin servlet -->
- <!--
- <servlet-mapping>
- <servlet-name>AdminServlet</servlet-name>
- <url-pattern>/servlet/AdminServlet</url-pattern>
- </servlet-mapping>
- -->
-
+ </servlet-class>
+ <init-param>
+ <param-name>SOAPMonitorPort</param-name>
+ <param-value>5001</param-value>
+ </init-param>
+ <load-on-startup>100</load-on-startup>
+ </servlet>
+ <servlet-mapping>
+ <servlet-name>AxisServlet</servlet-name>
+ <url-pattern>/servlet/AxisServlet</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>AxisServlet</servlet-name>
+ <url-pattern>*.jws</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>AxisServlet</servlet-name>
+ <url-pattern>/services/*</url-pattern>
+ </servlet-mapping>
+ <servlet-mapping>
+ <servlet-name>SOAPMonitorService</servlet-name>
+ <url-pattern>/SOAPMonitor</url-pattern>
+ </servlet-mapping>
+
+ <!-- uncomment this if you want the admin servlet -->
+ <!--
+ <servlet-mapping>
+ <servlet-name>AdminServlet</servlet-name>
+ <url-pattern>/servlet/AdminServlet</url-pattern>
+ </servlet-mapping>
+ -->
<session-config>
<!-- Default to 5 minute session timeouts -->
<session-timeout>5</session-timeout>
@@ -76,21 +66,17 @@
<!-- currently the W3C havent settled on a media type for WSDL;
http://www.w3.org/TR/2003/WD-wsdl12-20030303/#ietf-draft
for now we go with the basic 'it's XML' response -->
- <mime-mapping>
- <extension>wsdl</extension>
- <mime-type>text/xml</mime-type>
- </mime-mapping>
-
-
- <mime-mapping>
- <extension>xsd</extension>
- <mime-type>text/xml</mime-type>
- </mime-mapping>
-
- <welcome-file-list id="WelcomeFileList">
- <welcome-file>index.html</welcome-file>
- <welcome-file>index.jsp</welcome-file>
- <welcome-file>index.jws</welcome-file>
- </welcome-file-list>
-
+ <mime-mapping>
+ <extension>wsdl</extension>
+ <mime-type>text/xml</mime-type>
+ </mime-mapping>
+ <mime-mapping>
+ <extension>xsd</extension>
+ <mime-type>text/xml</mime-type>
+ </mime-mapping>
+ <welcome-file-list id="WelcomeFileList">
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ <welcome-file>index.jws</welcome-file>
+ </welcome-file-list>
</web-app>
Modified: geronimo/trunk/modules/axis/src/test-resources/deployables/axis/index.html
==============================================================================
--- geronimo/trunk/modules/axis/src/test-resources/deployables/axis/index.html (original)
+++ geronimo/trunk/modules/axis/src/test-resources/deployables/axis/index.html Tue Nov 2 13:28:59 2004
@@ -1,46 +1,59 @@
<html>
-
-<head>
-<meta http-equiv="Content-Type"
-content="text/html; charset=iso-8859-1">
-<title>Apache-Axis</title>
-</head>
-
-<body bgcolor="#FFFFFF">
-
-<h1 align="center">Apache-AXIS</h1>
-
-<p>Hello! <em>Welcome</em> to Apache-Axis.</p>
-
-<p>What do you want to do today?</p>
-
-<ul>
- <li><a href="happyaxis.jsp">Validate</a>
- the local installation's configuration<br>
- <i>see below if this does not work.</i></li>
- <li><a href="servlet/AxisServlet">View</a>
- the list of deployed Web services</li>
- <li><a href="EchoHeaders.jws?method=list">
+ <head>
+ <meta http-equiv="Content-Type"
+ content="text/html; charset=iso-8859-1">
+ <title>Apache-Axis</title>
+ </head>
+ <body bgcolor="#FFFFFF">
+ <h1 align="center">Apache-AXIS</h1>
+ <p>Hello!
+ <em>Welcome</em> to Apache-Axis.
+ </p>
+ <p>What do you want to do today?</p>
+ <ul>
+ <li>
+ <a href="happyaxis.jsp">Validate</a>
+ the local installation's configuration
+ <br>
+ <i>see below if this does not work.</i>
+ </li>
+ <li>
+ <a href="servlet/AxisServlet">View</a>
+ the list of deployed Web services
+ </li>
+ <li>
+ <a href="EchoHeaders.jws?method=list">
Call a local endpoint</a> that list's the caller's
http headers (or see its
- <a href="EchoHeaders.jws?wsdl">WSDL</a>).
- <li><a href="http://xml.apache.org/axis">Visit</a>
- the Apache-Axis Home Page</li>
- <li><a href="servlet/AdminServlet">Administer Axis</a> <br>
- [disabled by default for security reasons]</li>
-</ul>
+
+ <a href="EchoHeaders.jws?wsdl">WSDL</a>).
+
+ <li>
+ <a href="http://xml.apache.org/axis">Visit</a>
+ the Apache-Axis Home Page
+ </li>
+ <li>
+ <a href="servlet/AdminServlet">Administer Axis</a>
+ <br>
+ [disabled by default for security reasons]
+ </li>
+ </ul>
To enable the disabled features, uncomment the appropriate declarations in
WEB-INF/web.xml in the webapplication and restart it.
-<h3>Validating Axis</h3>
+
+ <h3>Validating Axis</h3>
If the "happyaxis" validation page displays an exception instead of a
status page, the likely cause is that you have multiple XML parsers in
your classpath. Clean up your classpath by eliminating extraneous parsers.
-<p>
+
+ <p>
If you have problems getting Axis to work, consult the Axis
-<a
-href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages">Wiki</a>
+
+ <a
+ href="http://nagoya.apache.org/wiki/apachewiki.cgi?AxisProjectPages">Wiki</a>
and then try the Axis user mailing list.
-</body>
+
+ </body>
</html>
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AbstractWebServiceTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AbstractWebServiceTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,88 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis;
+
+import org.apache.geronimo.axis.testUtils.AxisGeronimoConstants;
+import org.apache.geronimo.axis.testUtils.J2EEManager;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.system.configuration.LocalConfigStore;
+import org.apache.geronimo.transaction.OnlineUserTransaction;
+
+import javax.management.ObjectName;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.net.URI;
+import java.net.URL;
+import java.util.Collections;
+
+public class AbstractWebServiceTest extends AbstractTestCase {
+ protected ObjectName axisname;
+ protected Kernel kernel;
+ protected J2EEManager j2eeManager;
+ protected LocalConfigStore store;
+ protected File outFile = new File(AxisGeronimoConstants.AXIS_CONFIG_STORE);
+
+ /**
+ * @param testName
+ */
+ public AbstractWebServiceTest(String testName) throws FileNotFoundException, WaitingException, IOException {
+ super(testName);
+ j2eeManager = new J2EEManager();
+ store = new LocalConfigStore(outFile);
+ store.doStart();
+ }
+
+ protected void setUp() throws Exception {
+ axisname = new ObjectName("test:name=AxisGBean");
+ kernel = new Kernel("test.kernel", "test");
+ kernel.boot();
+ AxisGeronimoUtils.delete(outFile);
+ outFile.getParentFile().mkdirs();
+ //start the J2EE server which would be started by the server plan
+ //in the real case
+ j2eeManager.startJ2EEContainer(kernel);
+ //start the Axis Serverlet which would be started by the service plan
+ org.apache.geronimo.jetty.JettyWebAppContext c = null;
+ GBeanMBean app = new GBeanMBean("org.apache.geronimo.jetty.JettyWebAppContext");
+ URL url =
+ Thread.currentThread().getContextClassLoader().getResource("deployables/axis/");
+ System.out.print(url);
+ app.setAttribute("uri", URI.create(url.toString()));
+ app.setAttribute("contextPath", "/axis");
+ app.setAttribute("componentContext", null);
+ OnlineUserTransaction userTransaction = new OnlineUserTransaction();
+ app.setAttribute("userTransaction", userTransaction);
+ app.setAttribute("webClassPath", new URI[0]);
+ app.setAttribute("contextPriorityClassLoader", Boolean.FALSE);
+ app.setReferencePatterns("JettyContainer", Collections.singleton(AxisGeronimoConstants.WEB_CONTAINER_NAME));
+ app.setAttribute("configurationBaseUrl", Thread.currentThread().getContextClassLoader().getResource("deployables/"));
+ app.setReferencePattern("TransactionContextManager", AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME);
+ app.setReferencePattern("TrackedConnectionAssociator", AxisGeronimoConstants.TRACKED_CONNECTION_ASSOCIATOR_NAME);
+ AxisGeronimoUtils.startGBean(AxisGeronimoConstants.APPLICATION_NAME, app, kernel);
+
+ }
+
+ protected void tearDown() throws Exception {
+ j2eeManager.stopJ2EEContainer(kernel);
+ kernel.shutdown();
+ File file = new File(AxisGeronimoConstants.AXIS_CONFIG_STORE);
+ AxisGeronimoUtils.delete(file);
+ }
+
+}
Modified: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisGBeanTest.java
==============================================================================
--- geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisGBeanTest.java (original)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/AxisGBeanTest.java Tue Nov 2 13:28:59 2004
@@ -41,7 +41,7 @@
}
public void testStartAxisService() throws Exception {
- String textFileurl = "http://localhost:" + AxisGeronimoConstants.AXIS_SERVICE_PORT + "/axis/index.html";
+ String textFileurl = "http://localhost:" + AxisGeronimoUtils.AXIS_SERVICE_PORT + "/axis/index.html";
ClassLoader cl = getClass().getClassLoader();
ClassLoader myCl = new URLClassLoader(new URL[0], cl);
GBeanMBean gbean = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
@@ -49,7 +49,6 @@
kernel.loadGBean(name, gbean);
kernel.startGBean(name);
System.out.println(kernel.getMBeanServer().getAttribute(name, "state"));
-
HttpURLConnection connection = (HttpURLConnection) new URL(textFileurl).openConnection();
BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
connection.getResponseCode();
@@ -59,7 +58,6 @@
line = reader.readLine();
}
connection.disconnect();
-
kernel.stopGBean(name);
kernel.unloadGBean(name);
}
Modified: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/ComplexTypeWebServiceTest.java
==============================================================================
--- geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/ComplexTypeWebServiceTest.java (original)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/ComplexTypeWebServiceTest.java Tue Nov 2 13:28:59 2004
@@ -16,6 +16,7 @@
package org.apache.geronimo.axis;
import org.apache.axis.utils.ClassUtils;
+import org.apache.geronimo.axis.testUtils.AxisGeronimoConstants;
import org.apache.geronimo.gbean.jmx.GBeanMBean;
import org.apache.geronimo.kernel.Kernel;
@@ -44,7 +45,6 @@
GBeanMBean axisgbean = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
kernel.loadGBean(axisname, axisgbean);
kernel.startGBean(axisname);
-
File jarfile = new File(getTestFile("target/generated/samples/echo-ewsimpl.jar"));
kernel.getMBeanServer().invoke(axisname,
"deployEWSModule",
@@ -57,55 +57,19 @@
String.class.getName(),
String.class.getName()});
-// //try invoke from this java
-// ContainerIndex index = ContainerIndex.getInstance();
-// int length = index.length();
-// System.out.println("number of continers "+length);
-// for(int i = 0;i<length;i++){
-// EJBContainer contianer = index.getContainer(i);
-// if(contianer!= null){
-// String name = contianer.getEJBName();
-// System.out.println("found the ejb "+name);
-// if("echo".equals(name)){
-// EJBHome statelessHome = contianer.getEJBHome();
-// Object stateless = statelessHome.getClass().getMethod("create", null).invoke(statelessHome, null);
-// Method[] methods = stateless.getClass().getMethods();
-//
-// for(int j = 0;j< methods.length;j++){
-// if(methods[j].getName().equals("echoStruct")){
-// Class[] classes = methods[j].getParameterTypes();
-// System.out.println(classes[0]);
-// methods[j].invoke(stateless, new Object[]{null});
-// methods[j].invoke(stateless, new Object[]{classes[0].newInstance()});
-// }
-// }
-// }
-// }
-// }
-
//check the real web service invocations
-// ClassLoader ocl = Thread.currentThread().getContextClassLoader();
-// URLClassLoader jarclassloder = new URLClassLoader(new URL[]{jarfile.toURL()});
-// Thread.currentThread().setContextClassLoader(jarclassloder);
-
-// Class echoLoacaterClass = Class.forName("org.apache.ws.echosample.EchoServiceLocator",true,jarclassloder);
-// Class structClass = Class.forName("org.apache.ws.echosample.EchoStruct",true,jarclassloder);
Class echoLoacaterClass = ClassUtils.forName("org.apache.ws.echosample.EchoServiceLocator");
Class structClass = ClassUtils.forName("org.apache.ws.echosample.EchoStruct");
-
Object echoLoacater = echoLoacaterClass.newInstance();
Method getportMethod = echoLoacaterClass.getMethod("getechoPort", new Class[]{URL.class});
-
URL serviceURL = new URL("http://localhost:"
- + AxisGeronimoConstants.AXIS_SERVICE_PORT
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
// + 5679
+ "/axis/services/echoPort");
Object echoPort = getportMethod.invoke(echoLoacater, new Object[]{serviceURL});
Class echoClass = echoPort.getClass();
-
Method echostuctMethod = echoClass.getMethod("echoStruct", new Class[]{structClass});
Object structval = structClass.newInstance();
-
Object structret = echostuctMethod.invoke(echoPort, new Object[]{null});
structret = echostuctMethod.invoke(echoPort, new Object[]{structval});
assertEquals(structval, structret);
Modified: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/EchoHeadersTest.java
==============================================================================
--- geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/EchoHeadersTest.java (original)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/EchoHeadersTest.java Tue Nov 2 13:28:59 2004
@@ -51,14 +51,12 @@
name = new ObjectName("test:name=AxisGBean");
kernel = new Kernel("test.kernel", "test");
kernel.boot();
-
ClassLoader cl = getClass().getClassLoader();
ClassLoader myCl = new URLClassLoader(new URL[]{}, cl);
GBeanMBean gbean = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
gbean.setAttribute("Name", "Test");
kernel.loadGBean(name, gbean);
kernel.startGBean(name);
-
Service service = new Service();
service.getEngine().setOption(AxisEngine.PROP_XML_ENCODING, "UTF-8");
call = (Call) service.createCall();
@@ -120,22 +118,17 @@
public void testSynchronization() throws Exception {
SOAPConnectionFactory scFactory = SOAPConnectionFactory.newInstance();
SOAPConnection con = scFactory.createConnection();
-
MessageFactory factory = MessageFactory.newInstance();
SOAPMessage message = factory.createMessage();
String requestEncoding = "UTF-16";
message.setProperty(SOAPMessage.CHARACTER_SET_ENCODING, requestEncoding);
-
SOAPEnvelope envelope = message.getSOAPPart().getEnvelope();
SOAPBody body = envelope.getBody();
-
Name bodyName = envelope.createName("echo");
SOAPBodyElement bodyElement = body.addBodyElement(bodyName);
-
Name name = envelope.createName("arg0");
SOAPElement symbol = bodyElement.addChildElement(name);
symbol.addTextNode("Hello");
-
URLEndpoint endpoint = new URLEndpoint("http://localhost:5678/axis/EchoHeaders.jws");
SOAPMessage response = con.call(message, endpoint);
String responseEncoding = (String) response.getProperty(SOAPMessage.CHARACTER_SET_ENCODING);
Modified: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/J2EEManagerTest.java
==============================================================================
--- geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/J2EEManagerTest.java (original)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/J2EEManagerTest.java Tue Nov 2 13:28:59 2004
@@ -15,6 +15,7 @@
*/
package org.apache.geronimo.axis;
+import org.apache.geronimo.axis.testUtils.J2EEManager;
import org.apache.geronimo.kernel.Kernel;
import javax.management.ObjectName;
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/SimpleEJBWebServiceTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/SimpleEJBWebServiceTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,182 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis;
+
+import org.apache.geronimo.axis.testUtils.AxisGeronimoConstants;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+
+import javax.management.ObjectName;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.lang.reflect.Method;
+import java.net.HttpURLConnection;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.Arrays;
+
+public class SimpleEJBWebServiceTest extends AbstractWebServiceTest {
+ public SimpleEJBWebServiceTest(String testName) throws FileNotFoundException, WaitingException, IOException {
+ super(testName);
+ }
+
+ public void testLoad() throws Exception {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ ClassLoader myCl = new URLClassLoader(new URL[]{}, cl);
+
+
+ //axis gbean
+ GBeanMBean axisgbean = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
+ kernel.loadGBean(axisname, axisgbean);
+ kernel.startGBean(axisname);
+ File jarfile = new File(getTestFile("target/generated/samples/echo-jar/echo-ewsimpl.jar"));
+ WSConfigBuilder wsconfBuilder
+ = new WSConfigBuilder(AxisGeronimoConstants.J2EE_SERVER_NAME,
+ AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME,
+ AxisGeronimoConstants.CONNECTION_TRACKER_NAME,
+ AxisGeronimoConstants.TRANSACTIONAL_TIMER_NAME,
+ AxisGeronimoConstants.NONTRANSACTIONAL_TIMER_NAME,
+ AxisGeronimoConstants.TRACKED_CONNECTION_ASSOCIATOR_NAME,
+ null,
+ kernel,
+ store);
+ File out = new File("target/temp");
+ out.mkdirs();
+ File ws = wsconfBuilder.installWebService(jarfile, out, Thread.currentThread().getContextClassLoader());
+ GBeanMBean[] gbeans = wsconfBuilder.loadtheWSConfigurations(ws, jarfile);
+ ObjectName wsName = ObjectName.getInstance("test:configuration=" + "echo");
+ ObjectName wsEJBName = ObjectName.getInstance("test:configuration=" + "echoEJB");
+ AxisGeronimoUtils.startGBean(wsName, gbeans[0], kernel);
+ AxisGeronimoUtils.startGBean(wsEJBName, gbeans[1], kernel);
+
+
+ //let us try to brows the WSDL of the service
+ URL wsdlrequestUrl = new URL("http://localhost:"
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
+ + "/axis/services/echoPort?wsdl");
+ //+"/axis/services/AdminService?wsdl");
+
+ HttpURLConnection connection = (HttpURLConnection) wsdlrequestUrl.openConnection();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ connection.getResponseCode();
+ String line = reader.readLine();
+ while (line != null) {
+ System.out.println(line);
+ line = reader.readLine();
+ }
+
+
+ //invoke the ejb just in the same way it is invoked by the webservice
+ String msg = "Hi Hello";
+ String result =
+ (String) AxisGeronimoUtils.invokeEJB("echo",
+ "echoString",
+ new Class[]{String.class},
+ new Object[]{msg});
+ System.out.println(result);
+ assertEquals(msg, result);
+ AxisGeronimoUtils.invokeEJB("echo", "echoVoid", new Class[]{
+ }, new Object[]{
+ });
+ int valInt = 2345;
+ Integer intObj =
+ (Integer) AxisGeronimoUtils.invokeEJB("echo",
+ "echoInt",
+ null,
+ new Object[]{new Integer(valInt)});
+ assertEquals(valInt, intObj.intValue());
+ double valDouble = 2425.57;
+ Double doubleObj =
+ (Double) AxisGeronimoUtils.invokeEJB("echo",
+ "echoDouble",
+ null,
+ new Object[]{new Double(valDouble)});
+ assertEquals(valDouble, doubleObj.doubleValue(), 3);
+ float valfloat = 2425.57f;
+ Float floatObj =
+ (Float) AxisGeronimoUtils.invokeEJB("echo",
+ "echoFloat",
+ null,
+ new Object[]{new Float(valfloat)});
+ assertEquals(valfloat, floatObj.doubleValue(), 3);
+ boolean valBoolean = true;
+ Boolean booleanObj =
+ (Boolean) AxisGeronimoUtils.invokeEJB("echo",
+ "echoBoolean",
+ null,
+ new Object[]{new Boolean(valBoolean)});
+ assertEquals(valBoolean, booleanObj.booleanValue());
+ long valLong = 2425573566l;
+ Long longObj =
+ (Long) AxisGeronimoUtils.invokeEJB("echo",
+ "echoLong",
+ null,
+ new Object[]{new Long(valLong)});
+ assertEquals(valLong, longObj.longValue());
+ short valShort = 242;
+ Short shortObj =
+ (Short) AxisGeronimoUtils.invokeEJB("echo",
+ "echoShort",
+ null,
+ new Object[]{new Short(valShort)});
+ assertEquals(valShort, shortObj.shortValue());
+ byte[] byteVal = "Hi Hello".getBytes();
+ byte[] byteValreturn =
+ (byte[]) AxisGeronimoUtils.invokeEJB("echo",
+ "echoBytes",
+ new Class[]{byte[].class},
+ new Object[]{byteVal});
+ assertTrue(Arrays.equals(byteVal, byteValreturn));
+
+
+
+
+//
+// //check the real web service invocations
+ ClassLoader ocl = Thread.currentThread().getContextClassLoader();
+ URLClassLoader jarclassloder = new URLClassLoader(new URL[]{jarfile.toURL()});
+ Thread.currentThread().setContextClassLoader(jarclassloder);
+ Class echoLoacaterClass = Class.forName("org.apache.ws.echosample.EchoServiceLocator", true, jarclassloder);
+ Object echoLoacater = echoLoacaterClass.newInstance();
+ Method getportMethod = echoLoacaterClass.getMethod("getechoPort", new Class[]{URL.class});
+ URL serviceURL = new URL("http://localhost:"
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
+ + "/axis/services/echoPort");
+ Object echoPort = getportMethod.invoke(echoLoacater, new Object[]{serviceURL});
+ Class echoClass = echoPort.getClass();
+ Method echoStringMethod = echoClass.getMethod("echoString", new Class[]{String.class});
+ String val = "Hi";
+ assertEquals(val, echoStringMethod.invoke(echoPort, new Object[]{val}));
+ Class structClass = Class.forName("org.apache.ws.echosample.EchoStruct", true, jarclassloder);
+ Method echostuctMethod = echoClass.getMethod("echoStruct", new Class[]{structClass});
+ Object structval = structClass.newInstance();
+
+ Thread.currentThread().setContextClassLoader(ocl);
+ kernel.stopGBean(axisname);
+ kernel.unloadGBean(axisname);
+ }
+
+ protected void tearDown() throws Exception {
+ j2eeManager.stopJ2EEContainer(kernel);
+ kernel.shutdown();
+ File file = new File(AxisGeronimoConstants.AXIS_CONFIG_STORE);
+ AxisGeronimoUtils.delete(file);
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/SimplePOJOWebServiceTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/SimplePOJOWebServiceTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,100 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis;
+
+import org.apache.axis.utils.ClassUtils;
+import org.apache.geronimo.axis.testUtils.AxisGeronimoConstants;
+import org.apache.geronimo.gbean.WaitingException;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.kernel.config.ConfigurationManager;
+
+import javax.management.ObjectName;
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStreamReader;
+import java.lang.reflect.Method;
+import java.net.HttpURLConnection;
+import java.net.URI;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.List;
+
+public class SimplePOJOWebServiceTest extends AbstractWebServiceTest {
+ public SimplePOJOWebServiceTest(String testName) throws FileNotFoundException, WaitingException, IOException {
+ super(testName);
+ }
+
+ public void testPOJOWS() throws Exception {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ ClassLoader myCl = new URLClassLoader(new URL[]{}, cl);
+ File jarfile = new File(getTestFile("target/generated/samples/echo-war/echo-ewsimpl.jar"));
+
+ //axis gbean
+ GBeanMBean axisgbean = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
+ kernel.loadGBean(axisname, axisgbean);
+ kernel.startGBean(axisname);
+ WSConfigBuilder wsconfBuilder
+ = new WSConfigBuilder(AxisGeronimoConstants.J2EE_SERVER_NAME,
+ AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME,
+ AxisGeronimoConstants.CONNECTION_TRACKER_NAME,
+ AxisGeronimoConstants.TRANSACTIONAL_TIMER_NAME,
+ AxisGeronimoConstants.NONTRANSACTIONAL_TIMER_NAME,
+ AxisGeronimoConstants.TRACKED_CONNECTION_ASSOCIATOR_NAME,
+ null,
+ kernel,
+ store);
+ List uri = wsconfBuilder.buildConfiguration(null, jarfile, outFile);
+ GBeanMBean config = store.getConfiguration((URI) uri.get(0));
+ ConfigurationManager configurationManager = kernel.getConfigurationManager();
+ ObjectName configName = configurationManager.load(config, null);
+ kernel.getMBeanServer().invoke(configName, "startRecursive", null, null);
+
+ //let us try to brows the WSDL of the service
+ URL wsdlrequestUrl = new URL("http://localhost:"
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
+ + "/axis/services/echoPort?wsdl");
+ //+"/axis/services/AdminService?wsdl");
+
+ HttpURLConnection connection = (HttpURLConnection) wsdlrequestUrl.openConnection();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ connection.getResponseCode();
+ String line = reader.readLine();
+ while (line != null) {
+ System.out.println(line);
+ line = reader.readLine();
+ }
+ Class echoLoacaterClass = ClassUtils.forName("org.apache.ws.echosample.EchoServiceLocator");
+ Object echoLoacater = echoLoacaterClass.newInstance();
+ Method getportMethod = echoLoacaterClass.getMethod("getechoPort", new Class[]{URL.class});
+ URL serviceURL = new URL("http://localhost:"
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
+ // + 5679
+ + "/axis/services/echoPort");
+ Object echoPort = getportMethod.invoke(echoLoacater, new Object[]{serviceURL});
+ Class echoClass = echoPort.getClass();
+ Method echoStringMethod = echoClass.getMethod("echoString", new Class[]{String.class});
+ String val = "Hi";
+ assertEquals(val, echoStringMethod.invoke(echoPort, new Object[]{val}));
+ Class structClass = ClassUtils.forName("org.apache.ws.echosample.EchoStruct");
+ Method echostuctMethod = echoClass.getMethod("echoStruct", new Class[]{structClass});
+ Object structval = structClass.newInstance();
+ kernel.stopGBean(axisname);
+ kernel.unloadGBean(axisname);
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/WSConfigBuilderTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/WSConfigBuilderTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,66 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis;
+
+import org.apache.geronimo.axis.testUtils.AxisGeronimoConstants;
+import org.apache.geronimo.axis.testUtils.J2EEManager;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.kernel.Kernel;
+
+import javax.management.ObjectName;
+import java.io.File;
+
+public class WSConfigBuilderTest extends AbstractTestCase {
+ private ObjectName configBuilderName;
+ private Kernel kernel;
+ private J2EEManager j2eeManager;
+
+ /**
+ * @param testName
+ */
+ public WSConfigBuilderTest(String testName) {
+ super(testName);
+ j2eeManager = new J2EEManager();
+ }
+
+ public void testLoad() throws Exception {
+ kernel.getConfigurationManager().load(new File("modules/axis/test-resources/plans/plan1.xml").toURI());
+ //axis gbean
+ GBeanMBean axisgbean = new GBeanMBean(WSConfigBuilder.getGBeanInfo());
+ kernel.loadGBean(configBuilderName, axisgbean);
+ kernel.startGBean(configBuilderName);
+ kernel.stopGBean(configBuilderName);
+ kernel.unloadGBean(configBuilderName);
+ }
+
+ protected void setUp() throws Exception {
+ File file = new File(AxisGeronimoConstants.AXIS_CONFIG_STORE);
+ configBuilderName = new ObjectName("test:name=AxisGBean");
+ kernel = new Kernel("test.kernel", "test");
+ kernel.boot();
+ AxisGeronimoUtils.delete(file);
+ file.getParentFile().mkdirs();
+ j2eeManager.startJ2EEContainer(kernel);
+ }
+
+ protected void tearDown() throws Exception {
+ j2eeManager.stopJ2EEContainer(kernel);
+ kernel.shutdown();
+ File file = new File(AxisGeronimoConstants.AXIS_CONFIG_STORE);
+ AxisGeronimoUtils.delete(file);
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/AdminClientDeploymentTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/AdminClientDeploymentTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,84 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis.preconditions;
+
+import org.apache.axis.client.AdminClient;
+import org.apache.axis.client.Call;
+import org.apache.axis.utils.ClassUtils;
+import org.apache.geronimo.axis.AbstractWebServiceTest;
+import org.apache.geronimo.axis.AxisGeronimoUtils;
+import org.apache.geronimo.gbean.WaitingException;
+
+import java.io.BufferedReader;
+import java.io.File;
+import java.io.FileNotFoundException;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.InputStreamReader;
+import java.net.HttpURLConnection;
+import java.net.MalformedURLException;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+/**
+ * <p>This test case shows the possible two ways of add a entry to the Axis
+ * server-config.wsdd Deployment Discrypter.</p>
+ */
+
+public class AdminClientDeploymentTest extends AbstractWebServiceTest {
+ public AdminClientDeploymentTest(String testName) throws FileNotFoundException, WaitingException, IOException {
+ super(testName);
+ }
+
+ public void testDeployWithAdminClientDinamically() throws Exception {
+ File jarFile = new File(outDir + "echo-jar/echo-ewsimpl.jar");
+ URLClassLoader cl = new URLClassLoader(new URL[]{jarFile.toURL()});
+ InputStream deplydd = cl.getResourceAsStream("deploy.wsdd");
+ assertNotNull(deplydd);
+ ClassLoader parentClassLoder = ClassUtils.getDefaultClassLoader();
+ ClassUtils.setDefaultClassLoader(cl);
+ AdminClient adminClient = new AdminClient();
+ URL requestUrl = new URL("http://localhost:"
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
+ + "/axis/services/AdminService");
+ Call call = adminClient.getCall();
+ call.setTargetEndpointAddress(requestUrl);
+ String result = adminClient.process(null, deplydd);
+ URL wsdlrequestUrl = new URL("http://localhost:"
+ + AxisGeronimoUtils.AXIS_SERVICE_PORT
+ + "/axis/services/echoPort?wsdl");
+ //+"/axis/services/AdminService?wsdl");
+
+ HttpURLConnection connection = (HttpURLConnection) wsdlrequestUrl.openConnection();
+ BufferedReader reader = new BufferedReader(new InputStreamReader(connection.getInputStream()));
+ connection.getResponseCode();
+ String line = reader.readLine();
+ while (line != null) {
+ System.out.println(line);
+ line = reader.readLine();
+ }
+ }
+
+ public void testURLFileTest() throws MalformedURLException {
+ ClassLoader contextLoader = Thread.currentThread().getContextClassLoader();
+ URL url = contextLoader.getResource("deployables/axis/WEB-INF/web.xml");
+ assertNotNull(url);
+ File file = new File(url.getFile());
+ assertTrue(file.exists());
+ assertTrue(url.sameFile(file.toURL()));
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/ClassLoadingTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/ClassLoadingTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,54 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis.preconditions;
+
+import org.apache.axis.utils.ClassUtils;
+import org.apache.geronimo.axis.AbstractTestCase;
+
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+/**
+ * @author hemapani@opensource.lk
+ */
+public class ClassLoadingTest extends AbstractTestCase {
+ /**
+ * @param testName
+ */
+ public ClassLoadingTest(String testName) {
+ super(testName);
+ }
+
+ public void testClassLoading() throws Exception {
+ ClassLoader cl = Thread.currentThread().getContextClassLoader();
+ Class class0 = Class.forName("org.apache.axis.utils.tcpmon", true, cl);
+ File jarfile = new File(getTestFile("target/generated/samples/echo-ewsimpl.jar"));
+ ClassLoader cl1 = new URLClassLoader(new URL[]{jarfile.toURL()}, cl);
+ ClassLoader cl2 = new URLClassLoader(new URL[]{jarfile.toURL()}, cl);
+ Class class1 = Class.forName("org.apache.ws.echosample.EchoStruct", true, cl1);
+ Class class2 = Class.forName("org.apache.ws.echosample.EchoStruct", true, cl2);
+ Class class3 = Class.forName("org.apache.ws.echosample.EchoStruct", true, cl1);
+ Class class4 = Class.forName("org.apache.axis.utils.tcpmon", true, cl1);
+ assertNotSame(class1, class2);
+ assertSame(class1, class3);
+ assertSame(class0, class4);
+ String className = "org.apache.ws.echosample.EchoPortSoapBindingImpl";
+ ClassUtils.setClassLoader(className, cl1);
+ ClassUtils.forName(className);
+ }
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/DynamicEJBDeploymentTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/DynamicEJBDeploymentTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,109 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis.preconditions;
+
+import org.apache.geronimo.axis.AbstractTestCase;
+import org.apache.geronimo.axis.testUtils.J2EEManager;
+import org.apache.geronimo.j2ee.deployment.EARConfigBuilder;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.kernel.jmx.JMXUtil;
+import org.apache.geronimo.kernel.management.State;
+import org.openejb.deployment.OpenEJBModuleBuilder;
+
+import javax.management.ObjectName;
+import java.io.File;
+import java.net.URL;
+import java.net.URLClassLoader;
+import java.util.jar.JarFile;
+
+/**
+ * <p>This test case show the infomation about openEJB that we assumed. And the
+ * simmlier code code is used in the real code. As the OpenEJB is developing and
+ * rapidly changing this test case act as a notifier for saying things has chaged</p>
+ */
+public class DynamicEJBDeploymentTest extends AbstractTestCase {
+ private static final String j2eeDomainName = "openejb.server";
+ private static final String j2eeServerName = "TestOpenEJBServer";
+ private static final ObjectName transactionManagerObjectName = JMXUtil.getObjectName(j2eeDomainName + ":type=TransactionManager");
+ private static final ObjectName connectionTrackerObjectName = JMXUtil.getObjectName(j2eeDomainName + ":type=ConnectionTracker");
+ private Kernel kernel;
+ private J2EEManager j2eeManager;
+
+ /**
+ * @param testName
+ */
+ public DynamicEJBDeploymentTest(String testName) {
+ super(testName);
+ }
+
+ protected void setUp() throws Exception {
+ String str = System.getProperty(javax.naming.Context.URL_PKG_PREFIXES);
+ if (str == null) {
+ str = ":org.apache.geronimo.naming";
+ } else {
+ str = str + ":org.apache.geronimo.naming";
+ }
+ System.setProperty(javax.naming.Context.URL_PKG_PREFIXES, str);
+ kernel = new Kernel("blah");
+ kernel.boot();
+ j2eeManager = new J2EEManager();
+ j2eeManager.startJ2EEContainer(kernel);
+ }
+
+ public void testEJBJarDeploy() throws Exception {
+ OpenEJBModuleBuilder moduleBuilder = new OpenEJBModuleBuilder();
+ File jarFile = new File(outDir + "echo-jar/echo-ewsimpl.jar");
+ ClassLoader oldCl = Thread.currentThread().getContextClassLoader();
+ ClassLoader cl = new URLClassLoader(new URL[]{jarFile.toURL()}, oldCl);
+ Thread.currentThread().setContextClassLoader(cl);
+ File carFile = File.createTempFile("OpenEJBTest", ".car");
+ try {
+ EARConfigBuilder earConfigBuilder =
+ new EARConfigBuilder(new ObjectName(j2eeDomainName + ":j2eeType=J2EEServer,name=" + j2eeServerName),
+ transactionManagerObjectName,
+ connectionTrackerObjectName,
+ null,
+ null,
+ null,
+ moduleBuilder,
+ moduleBuilder,
+ null,
+ null,
+ null,
+ null,
+ null);
+ File unpackedDir = new File(tempDir, "OpenEJBTest-ear-Unpacked");
+ JarFile jarFileModules = null;
+ try {
+ jarFileModules = new JarFile(jarFile);
+ Object plan = earConfigBuilder.getDeploymentPlan(null, jarFileModules);
+ earConfigBuilder.buildConfiguration(plan, jarFileModules, unpackedDir);
+ } finally {
+ if (jarFile != null) {
+ jarFileModules.close();
+ }
+ }
+ } finally {
+ carFile.delete();
+ }
+ }
+
+ protected void tearDown() throws Exception {
+ j2eeManager.stopJ2EEContainer(kernel);
+ }
+}
+
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/EWSTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/EWSTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,49 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis.preconditions;
+
+import org.apache.geronimo.axis.AbstractTestCase;
+import org.apache.geronimo.axis.GeronimoWsDeployContext;
+import org.apache.geronimo.ews.ws4j2ee.toWs.Ws4J2ee;
+
+import java.io.File;
+
+/**
+ * <p>This test case represents the code generation with the EWS module.
+ * This test case needed the $JAVA_HOME/lib.tools.jar at the classapth.</p>
+ */
+public class EWSTest extends AbstractTestCase {
+ public EWSTest(String testName) {
+ super(testName);
+ }
+
+ public void testEchoPOJO() throws Exception {
+ GeronimoWsDeployContext deployContext =
+ new GeronimoWsDeployContext(getTestFile("target/samples/echo.war"),
+ outDir + "/echo-war");
+ Ws4J2ee ws4j2ee = new Ws4J2ee(deployContext, null);
+ ws4j2ee.generate();
+ File out = new File(outDir + "/echo-war", "echo-ewsimpl.jar");
+ assertTrue(out.exists());
+ }
+
+ protected void setUp() throws Exception {
+ new File(outDir).mkdirs();
+ }
+
+ protected void tearDown() throws Exception {
+ }
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/GBeanConfigTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/preconditions/GBeanConfigTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,87 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis.preconditions;
+
+import org.apache.geronimo.axis.AbstractTestCase;
+import org.apache.geronimo.axis.AxisGbean;
+import org.apache.geronimo.axis.AxisGeronimoUtils;
+import org.apache.geronimo.axis.ReferenceCollectionImpl;
+import org.apache.geronimo.gbean.ReferenceCollection;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.kernel.Kernel;
+
+import javax.management.ObjectName;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+/**
+ * <p> This test case start the AxisGbean and test retiving the index.html of the
+ * Axis Service</p>
+ */
+public class GBeanConfigTest extends AbstractTestCase {
+ private ObjectName name1;
+ private ObjectName name2;
+ private Kernel kernel;
+
+ /**
+ * @param testName
+ */
+ public GBeanConfigTest(String testName) {
+ super(testName);
+ }
+
+ public void testStartAxisService() throws Exception {
+ String textFileurl = "http://localhost:" + AxisGeronimoUtils.AXIS_SERVICE_PORT + "/axis/index.html";
+ ClassLoader cl = getClass().getClassLoader();
+ ClassLoader myCl = new URLClassLoader(new URL[0], cl);
+ ReferenceCollection rc = new ReferenceCollectionImpl();
+ GBeanMBean gbean2 = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
+ gbean2.setAttribute("Name", "Test");
+ kernel.loadGBean(name2, gbean2);
+ kernel.startGBean(name2);
+
+ kernel.stopGBean(name2);
+ kernel.unloadGBean(name2);
+ kernel.stopGBean(name1);
+ kernel.unloadGBean(name1);
+ }
+
+ public void testdependencies() throws Exception {
+ ClassLoader cl = getClass().getClassLoader();
+ ClassLoader myCl = new URLClassLoader(new URL[0], cl);
+ ReferenceCollection rc = new ReferenceCollectionImpl();
+ GBeanMBean gbean2 = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
+ gbean2.setAttribute("Name", "Test");
+ kernel.loadGBean(name2, gbean2);
+ kernel.startGBean(name2);
+
+ kernel.stopGBean(name2);
+ kernel.unloadGBean(name2);
+ kernel.stopGBean(name1);
+ kernel.unloadGBean(name1);
+ }
+
+ protected void setUp() throws Exception {
+ name1 = new ObjectName("test:name=WebServiceGBean");
+ name2 = new ObjectName("test:name=AxisGBean");
+ kernel = new Kernel("test.kernel", "test");
+ kernel.boot();
+ }
+
+ protected void tearDown() throws Exception {
+ kernel.shutdown();
+ }
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/AxisGeronimoConstants.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/AxisGeronimoConstants.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,52 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis.testUtils;
+
+import org.apache.geronimo.kernel.jmx.JMXUtil;
+
+import javax.management.ObjectName;
+
+public class AxisGeronimoConstants {
+ public static final String J2EE_DOMAIN_NAME = "openejb.server";
+ public static final String J2EE_SERVER_PREFIX = "TestOpenEJBServer";
+ public static final ObjectName APPLICATION_NAME
+ = JMXUtil.getObjectName("geronimo.jetty:app=test");
+ public static final String AXIS_CONFIG_STORE = "target/config-store";
+ public static final String TEMP_OUTPUT = "target/temp";
+
+ public static final ObjectName J2EE_SERVER_INFO = JMXUtil.getObjectName(J2EE_DOMAIN_NAME + ":type=ServerInfo");
+ public static final ObjectName J2EE_SERVER_NAME = JMXUtil.getObjectName(J2EE_DOMAIN_NAME + ":j2eeType=J2EEServer,name=" + J2EE_SERVER_PREFIX);
+ public static final ObjectName CONNECTION_TRACKER_NAME = JMXUtil.getObjectName(J2EE_DOMAIN_NAME + ":type=ConnectionTracker");
+ ////////////
+ public static final ObjectName CONNTECTION_TRACKING_COORDINATOR = JMXUtil.getObjectName("geronimo.test:role=ConnectionTrackingCoordinator");
+ ////////////
+
+ public static final ObjectName WEB_CONTAINER_NAME = JMXUtil.getObjectName("geronimo.jetty:role=Container");
+ public static final ObjectName WEB_CONNECTOR_NAME = JMXUtil.getObjectName("geronimo.jetty:role=Connector");
+
+ public static final ObjectName EJB_CONTAINER_NAME = JMXUtil.getObjectName(J2EE_DOMAIN_NAME + ":type=ContainerIndex");
+
+ public static final ObjectName TRANSACTION_MANAGER_NAME = JMXUtil.getObjectName(J2EE_DOMAIN_NAME + ":type=TransactionManager");
+ public static final ObjectName TRANSACTION_CONTEXT_MANAGER_NAME = JMXUtil.getObjectName(J2EE_SERVER_PREFIX + ":type=TransactionContextManager");
+ public static final ObjectName TRACKED_CONNECTION_ASSOCIATOR_NAME = JMXUtil.getObjectName("geronimo.test:role=TrackedConnectionAssociator");
+ public static final ObjectName WORKMANAGER_NAME = JMXUtil.getObjectName("geronimo.server:type=WorkManager,name=DefaultWorkManager");
+ public static final ObjectName RESOURCE_ADAPTER_NAME = JMXUtil.getObjectName("openejb.server:j2eeType=ResourceAdapter,J2EEServer=TestOpenEJBServer,name=MockRA");
+ public static final ObjectName ACTIVATIONSPEC_NAME = JMXUtil.getObjectName("geronimo.server:j2eeType=ActivationSpec,name=MockMDB");
+ public static final ObjectName THREADPOOL_NAME = JMXUtil.getObjectName(J2EE_SERVER_PREFIX + ":type=ThreadPool,name=DefaultThreadPool");
+ public static final ObjectName TRANSACTIONAL_TIMER_NAME = JMXUtil.getObjectName(J2EE_SERVER_PREFIX + ":type=ThreadPooledTimer,name=TransactionalThreaPooledTimer");
+ public static final ObjectName NONTRANSACTIONAL_TIMER_NAME = JMXUtil.getObjectName(J2EE_SERVER_PREFIX + ":type=ThreadPooledTimer,name=NonTransactionalThreaPooledTimer");
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/J2EEManager.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/J2EEManager.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,183 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis.testUtils;
+
+import org.apache.axis.AxisFault;
+import org.apache.commons.logging.Log;
+import org.apache.commons.logging.LogFactory;
+import org.apache.geronimo.axis.AxisGeronimoUtils;
+import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.j2ee.management.impl.J2EEServerImpl;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.pool.ThreadPool;
+import org.apache.geronimo.system.serverinfo.ServerInfo;
+import org.apache.geronimo.timer.vm.VMStoreThreadPooledNonTransactionalTimer;
+import org.apache.geronimo.timer.vm.VMStoreThreadPooledTransactionalTimer;
+import org.apache.geronimo.transaction.GeronimoTransactionManager;
+import org.apache.geronimo.transaction.context.TransactionContextManager;
+
+import javax.management.ObjectName;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+public class J2EEManager {
+ public static final Log log = LogFactory.getLog(J2EEManager.class);
+
+ public void init() throws AxisFault {
+ }
+
+ public void startJ2EEContainer(Kernel kernel) throws AxisFault {
+ try {
+ String str =
+ System.getProperty(javax.naming.Context.URL_PKG_PREFIXES);
+ if (str == null) {
+ str = ":org.apache.geronimo.naming";
+ } else {
+ str = str + ":org.apache.geronimo.naming";
+ }
+ System.setProperty(javax.naming.Context.URL_PKG_PREFIXES, str);
+ setUpTransactionManager(kernel);
+ setUpTimer(kernel);
+ GBeanMBean serverInfoGBean = new GBeanMBean(ServerInfo.GBEAN_INFO);
+ serverInfoGBean.setAttribute("baseDirectory", ".");
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.J2EE_SERVER_INFO, serverInfoGBean, kernel);
+ GBeanMBean j2eeServerGBean = new GBeanMBean(J2EEServerImpl.GBEAN_INFO);
+ j2eeServerGBean.setReferencePatterns("ServerInfo", Collections.singleton(AxisGeronimoConstants.J2EE_SERVER_INFO));
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.J2EE_SERVER_NAME, j2eeServerGBean, kernel);
+
+
+ // //load mock resource adapter for mdb
+ // setUpResourceAdapter(kernel);
+ startEJBContainer(kernel);
+ startWebContainer(kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public void stopJ2EEContainer(Kernel kernel) throws AxisFault {
+ try {
+ stopWebContainer(kernel);
+ stopEJBContainer(kernel);
+ stopTransactionManager(kernel);
+ stopTimer(kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.J2EE_SERVER_INFO, kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.J2EE_SERVER_NAME, kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ private void setUpTransactionManager(Kernel kernel) throws AxisFault {
+ try {
+ GBeanMBean tmGBean = new GBeanMBean(GeronimoTransactionManager.GBEAN_INFO);
+ Set rmpatterns = new HashSet();
+ rmpatterns.add(ObjectName.getInstance("geronimo.server:j2eeType=JCAManagedConnectionFactory,*"));
+ tmGBean.setAttribute("defaultTransactionTimeoutSeconds", new Integer(10));
+ tmGBean.setReferencePatterns("ResourceManagers", rmpatterns);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.TRANSACTION_MANAGER_NAME, tmGBean, kernel);
+ GBeanMBean tcmGBean = new GBeanMBean(TransactionContextManager.GBEAN_INFO);
+ tcmGBean.setReferencePattern("TransactionManager", AxisGeronimoConstants.TRANSACTION_MANAGER_NAME);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME, tcmGBean, kernel);
+ GBeanMBean trackedConnectionAssociator = new GBeanMBean(ConnectionTrackingCoordinator.GBEAN_INFO);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.TRACKED_CONNECTION_ASSOCIATOR_NAME, trackedConnectionAssociator, kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ private void stopTransactionManager(Kernel kernel) throws AxisFault {
+ try {
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.TRANSACTION_MANAGER_NAME, kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME, kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.TRACKED_CONNECTION_ASSOCIATOR_NAME, kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public static void setUpTimer(Kernel kernel) throws Exception {
+ GBeanMBean threadPoolGBean = new GBeanMBean(ThreadPool.GBEAN_INFO);
+ threadPoolGBean.setAttribute("keepAliveTime", new Integer(5000));
+ threadPoolGBean.setAttribute("poolSize", new Integer(5));
+ threadPoolGBean.setAttribute("poolName", "DefaultThreadPool");
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.THREADPOOL_NAME, threadPoolGBean, kernel);
+ GBeanMBean transactionalTimerGBean = new GBeanMBean(VMStoreThreadPooledTransactionalTimer.GBEAN_INFO);
+ transactionalTimerGBean.setAttribute("repeatCount", new Integer(5));
+ transactionalTimerGBean.setReferencePattern("TransactionContextManager", AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME);
+ transactionalTimerGBean.setReferencePattern("ThreadPool", AxisGeronimoConstants.THREADPOOL_NAME);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.TRANSACTIONAL_TIMER_NAME, transactionalTimerGBean, kernel);
+ GBeanMBean nonTransactionalTimerGBean = new GBeanMBean(VMStoreThreadPooledNonTransactionalTimer.GBEAN_INFO);
+ nonTransactionalTimerGBean.setReferencePattern("ThreadPool", AxisGeronimoConstants.THREADPOOL_NAME);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.NONTRANSACTIONAL_TIMER_NAME, nonTransactionalTimerGBean, kernel);
+ }
+
+ private void stopTimer(Kernel kernel) throws AxisFault {
+ try {
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.THREADPOOL_NAME, kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.TRANSACTIONAL_TIMER_NAME, kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.NONTRANSACTIONAL_TIMER_NAME, kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public void startWebContainer(Kernel kernel) throws Exception {
+ Set containerPatterns = Collections.singleton(AxisGeronimoConstants.WEB_CONTAINER_NAME);
+ GBeanMBean container = new GBeanMBean("org.apache.geronimo.jetty.JettyContainerImpl");
+ GBeanMBean connector = new GBeanMBean("org.apache.geronimo.jetty.connector.HTTPConnector");
+ connector.setAttribute("port", new Integer(AxisGeronimoUtils.AXIS_SERVICE_PORT));
+ connector.setReferencePatterns("JettyContainer", containerPatterns);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.WEB_CONTAINER_NAME, container, kernel);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.WEB_CONNECTOR_NAME, connector, kernel);
+ }
+
+ private void stopWebContainer(Kernel kernel) throws AxisFault {
+ try {
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.WEB_CONNECTOR_NAME, kernel);
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.WEB_CONTAINER_NAME, kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+ public void startEJBContainer(Kernel kernel) throws Exception {
+ GBeanMBean containerIndexGBean = new GBeanMBean("org.openejb.ContainerIndex");
+ Set ejbContainerNames = new HashSet();
+ ejbContainerNames.add(ObjectName.getInstance(AxisGeronimoConstants.J2EE_DOMAIN_NAME
+ + ":j2eeType=StatelessSessionBean,*"));
+ ejbContainerNames.add(ObjectName.getInstance(AxisGeronimoConstants.J2EE_DOMAIN_NAME
+ + ":j2eeType=StatefulSessionBean,*"));
+ ejbContainerNames.add(ObjectName.getInstance(AxisGeronimoConstants.J2EE_DOMAIN_NAME
+ + ":j2eeType=EntityBean,*"));
+ containerIndexGBean.setReferencePatterns("EJBContainers",
+ ejbContainerNames);
+ AxisGeronimoUtils.startGBeanOnlyIfNotStarted(AxisGeronimoConstants.EJB_CONTAINER_NAME,
+ containerIndexGBean, kernel);
+ }
+
+ private void stopEJBContainer(Kernel kernel) throws AxisFault {
+ try {
+ AxisGeronimoUtils.stopGBean(AxisGeronimoConstants.EJB_CONTAINER_NAME, kernel);
+ } catch (Exception e) {
+ throw AxisFault.makeFault(e);
+ }
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/J2EEManagerTest.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/J2EEManagerTest.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,50 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package org.apache.geronimo.axis.testUtils;
+
+import org.apache.geronimo.axis.AbstractTestCase;
+import org.apache.geronimo.kernel.Kernel;
+
+import javax.management.ObjectName;
+
+/**
+ * <p>This test case represents the code generation with the EWS module.
+ * This test case needed the $JAVA_HOME/lib.tools.jar at the classapth.</p>
+ */
+public class J2EEManagerTest extends AbstractTestCase {
+ private ObjectName name;
+ private Kernel kernel;
+
+ public J2EEManagerTest(String testName) {
+ super(testName);
+ }
+
+ public void testEcho() throws Exception {
+ J2EEManager j2eem = new J2EEManager();
+ j2eem.startJ2EEContainer(kernel);
+ j2eem.stopJ2EEContainer(kernel);
+ }
+
+ protected void setUp() throws Exception {
+ name = new ObjectName("test:name=AxisGBean");
+ kernel = new Kernel("test.kernel", "test");
+ kernel.boot();
+ }
+
+ protected void tearDown() throws Exception {
+ kernel.shutdown();
+ }
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/JettyServiceWrapper.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/JettyServiceWrapper.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,98 @@
+/*
+ * Copyright 2001-2004 The Apache Software Foundation.
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis.testUtils;
+
+import org.apache.geronimo.axis.AxisGeronimoUtils;
+import org.apache.geronimo.connector.outbound.connectiontracking.ConnectionTrackingCoordinator;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.jetty.JettyContainerImpl;
+import org.apache.geronimo.jetty.connector.HTTPConnector;
+import org.apache.geronimo.kernel.Kernel;
+import org.apache.geronimo.transaction.GeronimoTransactionManager;
+import org.apache.geronimo.transaction.context.TransactionContextManager;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.util.Collections;
+import java.util.HashSet;
+import java.util.Set;
+
+/**
+ * <p>This class wrap the Jetty service, This is a test utility only</p>
+ */
+public class JettyServiceWrapper {
+ private ObjectName containerName;
+ private Set containerPatterns;
+ private ObjectName tmName;
+ private ObjectName tcaName;
+ private ObjectName connectorName;
+ private ObjectName tcmName;
+
+ private final MBeanServer mbServer;
+
+ public JettyServiceWrapper(Kernel kernel) {
+ this.mbServer = kernel.getMBeanServer();
+ containerName = AxisGeronimoConstants.WEB_CONTAINER_NAME;
+ containerPatterns = Collections.singleton(containerName);
+ connectorName = AxisGeronimoConstants.WEB_CONNECTOR_NAME;
+ tmName = AxisGeronimoConstants.TRANSACTION_MANAGER_NAME;
+ tcaName = AxisGeronimoConstants.CONNTECTION_TRACKING_COORDINATOR;
+ tcmName = AxisGeronimoConstants.TRANSACTION_CONTEXT_MANAGER_NAME;
+ }
+
+ public void doStart() throws Exception {
+ GBeanMBean connector;
+ GBeanMBean tm;
+ GBeanMBean ctc;
+ GBeanMBean container;
+ container = new GBeanMBean(JettyContainerImpl.GBEAN_INFO);
+ connector = new GBeanMBean(HTTPConnector.GBEAN_INFO);
+ connector.setAttribute("port", new Integer(AxisGeronimoUtils.AXIS_SERVICE_PORT));
+ connector.setReferencePatterns("JettyContainer", containerPatterns);
+ start(containerName, container);
+ start(connectorName, connector);
+
+ tm = new GBeanMBean(GeronimoTransactionManager.GBEAN_INFO);
+ Set patterns = new HashSet();
+ patterns.add(ObjectName.getInstance("geronimo.server:j2eeType=JCAManagedConnectionFactory,*"));
+ tm.setReferencePatterns("ResourceManagers", patterns);
+ start(tmName, tm);
+ GBeanMBean tcm = new GBeanMBean(TransactionContextManager.GBEAN_INFO);
+ tcm.setReferencePattern("TransactionManager", tmName);
+ start(tcmName, tcm);
+ ctc = new GBeanMBean(ConnectionTrackingCoordinator.GBEAN_INFO);
+ start(tcaName, ctc);
+ }
+
+ public void doStop() throws Exception {
+ stop(tcaName);
+ stop(tmName);
+ stop(connectorName);
+ stop(containerName);
+ }
+
+ private void start(ObjectName name, Object instance) throws Exception {
+ mbServer.registerMBean(instance, name);
+ mbServer.invoke(name, "start", null, null);
+ }
+
+ private void stop(ObjectName name) throws Exception {
+ mbServer.invoke(name, "stop", null, null);
+ mbServer.unregisterMBean(name);
+ }
+
+}
Added: geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/TestServer.java
==============================================================================
--- (empty file)
+++ geronimo/trunk/modules/axis/src/test/org/apache/geronimo/axis/testUtils/TestServer.java Tue Nov 2 13:28:59 2004
@@ -0,0 +1,71 @@
+/**
+ *
+ * Copyright 2003-2004 The Apache Software Foundation
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package org.apache.geronimo.axis.testUtils;
+
+import org.apache.geronimo.axis.AxisGbean;
+import org.apache.geronimo.gbean.jmx.GBeanMBean;
+import org.apache.geronimo.kernel.Kernel;
+
+import javax.management.ObjectName;
+import java.net.URL;
+import java.net.URLClassLoader;
+
+/**
+ * <p>Simple stanalone Axis Service started via a GBean. This is a test utility only</p>
+ *
+ * @author hemapani@opensource.lk
+ */
+
+public class TestServer {
+ private Kernel kernel;
+ private ObjectName name;
+ private JettyServiceWrapper jettyService;
+
+ public TestServer() throws Exception {
+ name = new ObjectName("test:name=AxisGBean");
+ kernel = new Kernel("test.kernel", "test");
+ kernel.boot();
+ }
+
+ public void start() throws Exception {
+ jettyService = new JettyServiceWrapper(kernel);
+ jettyService.doStart();
+ ClassLoader cl = getClass().getClassLoader();
+ ClassLoader myCl = new URLClassLoader(new URL[0], cl);
+ GBeanMBean gbean = new GBeanMBean(AxisGbean.getGBeanInfo(), myCl);
+ gbean.setAttribute("Name", "Test");
+ kernel.loadGBean(name, gbean);
+ kernel.startGBean(name);
+ }
+
+ public void stop() throws Exception {
+ //System.out.println("Shutting down the kernel");
+ kernel.stopGBean(name);
+ kernel.unloadGBean(name);
+ jettyService.doStop();
+ kernel.shutdown();
+ }
+
+ public static void main(String[] args) throws Exception {
+ TestServer test = new TestServer();
+ test.start();
+ System.in.read();
+ test.stop();
+ }
+
+}