[jbossws-commits] JBossWS SVN: r6447 - in container/jboss42/branches: jbossws-jboss423 and 18 other directories.

jbossws-commits at lists.jboss.org jbossws-commits at lists.jboss.org
Wed Apr 16 05:20:05 EDT 2008


Author: heiko.braun at jboss.com
Date: 2008-04-16 05:20:04 -0400 (Wed, 16 Apr 2008)
New Revision: 6447

Added:
   container/jboss42/branches/jbossws-jboss423/
   container/jboss42/branches/jbossws-jboss423/ant-import/
   container/jboss42/branches/jbossws-jboss423/ant-import/build-release.xml
   container/jboss42/branches/jbossws-jboss423/ant-import/build-setup.xml
   container/jboss42/branches/jbossws-jboss423/ant-import/build-thirdparty.xml
   container/jboss42/branches/jbossws-jboss423/ant.properties
   container/jboss42/branches/jbossws-jboss423/ant.properties.example
   container/jboss42/branches/jbossws-jboss423/build.xml
   container/jboss42/branches/jbossws-jboss423/src/
   container/jboss42/branches/jbossws-jboss423/src/main/
   container/jboss42/branches/jbossws-jboss423/src/main/etc/
   container/jboss42/branches/jbossws-jboss423/src/main/etc/component-info.xml
   container/jboss42/branches/jbossws-jboss423/src/main/etc/default.mf
   container/jboss42/branches/jbossws-jboss423/src/main/java/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHook.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookEJB.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractInvocationHandler.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ArchiveDeployerHook.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataAdapter.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataDeploymentAspect.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DefaultWebAppDesciptorModifierImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHook.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHookPostJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptor.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21MBean.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3MBean.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSEMBean.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorMBean.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeploymentAspectHttpServer.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapter.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB21.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB21.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB3.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerFactoryImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXRPC.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXWS.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB21.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB3.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookEJB21.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPostJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookEJB3.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPostJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/LazyAssemblyWSFRuntime.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ModifyWebMetaDataDeploymentAspect.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RewriteResults.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RuntimeLoaderDeploymentAspect.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdapterFactoryImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdaptorImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB21.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB3.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ServiceEndpointInterceptor.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeployingHttpServer.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDesciptorModifier.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebServiceContextFactoryImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebXMLRewriterImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/serviceref/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/serviceref/ServiceRefHandlerImpl.java
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/transport/
   container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/transport/BareTransportManagerFactory.java
   container/jboss42/branches/jbossws-jboss423/src/main/resources/
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42-config.xml
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.deployment.DeploymentModelFactory
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.management.ServerConfigFactory
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/META-INF/
   container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/META-INF/jboss-service.xml
   container/jboss42/branches/jbossws-jboss423/version.properties
   container/jboss42/branches/jbossws-jboss423/version.properties.md5
Log:
Migrate container integration from Branch_4_2

Added: container/jboss42/branches/jbossws-jboss423/ant-import/build-release.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/ant-import/build-release.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/ant-import/build-release.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,38 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--  JBoss, the OpenSource J2EE webOS                                      -->
+<!--                                                                        -->
+<!--  Distributable under LGPL license.                                     -->
+<!--  See terms of license at http://www.gnu.org.                           -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project>
+
+  <!-- Release to jboss.local.repository -->
+  <target name="release" depends="jars" 
+    description="Release to jboss.local.repository">
+
+    <!-- jboss/jbossws-jboss42 -->
+    <property name="jboss.repository.dir" value="${jboss.local.repository}/jboss"/>
+    <mkdir dir="${jboss.repository.dir}/jbossws-jboss42/${repository.id}/lib"/>
+    <copy todir="${jboss.repository.dir}/jbossws-jboss42/${repository.id}/lib" overwrite="true">
+      <fileset dir="${jbws42.dir}/output/lib">
+        <include name="jbossws-jboss42.jar"/>
+        <include name="jbossws-jboss42-src.zip"/>
+        <include name="jbossws-jboss42-resources.zip"/>
+      </fileset>
+    </copy>
+    <copy tofile="${jboss.repository.dir}/jbossws-jboss42/${repository.id}/component-info.xml" file="${jbws42.etc.dir}/component-info.xml" filtering="true" overwrite="true">
+      <filterset>
+        <filtersfile file="${jbws42.dir}/version.properties"/>
+      </filterset>
+    </copy>
+    
+  </target>
+
+</project>


Property changes on: container/jboss42/branches/jbossws-jboss423/ant-import/build-release.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/ant-import/build-setup.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/ant-import/build-setup.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/ant-import/build-setup.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--  JBoss, the OpenSource J2EE webOS                                      -->
+<!--                                                                        -->
+<!--  Distributable under LGPL license.                                     -->
+<!--  See terms of license at http://www.gnu.org.                           -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project>
+  
+  <!-- ================================================================== -->
+  <!-- Setup                                                              -->
+  <!-- ================================================================== -->
+	
+  <property name="jbws42.dir" value="${basedir}"/>
+  
+  <!-- Check if ant.properties is available -->
+  <available property="ant.properties.available" file="${jbws42.dir}/ant.properties"/>
+  <fail message="Cannot find ant.properties. Did you copy/edit ant.properties.example?" unless="ant.properties.available"/>
+  
+  <property file="${jbws42.dir}/ant.properties"/>
+  <property file="${jbws42.dir}/version.properties"/>
+  
+  <property name="jboss42.lib" value="${jboss42.home}/lib"/>
+  <property name="jboss42.client" value="${jboss42.home}/client"/>
+  <property name="jboss42.server" value="${jboss42.home}/server/${jboss.server.instance}"/>
+  <property name="jboss42.server.lib" value="${jboss42.server}/lib"/>
+  <property name="jboss42.server.deploy" value="${jboss42.server}/deploy"/>
+  
+  <property name="jboss42.available.file" value="${jboss42.client}/jboss-client.jar"/>
+  <available property="jboss42.available" file="${jboss42.available.file}"/>
+  
+  <!-- JDK Detection -->
+  <available classname="java.lang.Enum" property="HAVE_JDK_1.5"/>
+  <available classname="java.io.Console" property="HAVE_JDK_1.6"/>
+  
+  <fail message="JDK1.5 or above is required" unless="HAVE_JDK_1.5"/>
+  
+  <!-- ================================================================== -->
+  <!-- Initialization                                                     -->
+  <!-- ================================================================== -->
+  
+  <target name="prepare">
+    <tstamp>
+      <format property="build.id" pattern="yyyyMMddHHmm"/>
+    </tstamp>
+  </target>
+  
+</project>
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/ant-import/build-setup.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/ant-import/build-thirdparty.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/ant-import/build-thirdparty.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/ant-import/build-thirdparty.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,80 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--  JBoss, the OpenSource J2EE webOS                                      -->
+<!--                                                                        -->
+<!--  Distributable under LGPL license.                                     -->
+<!--  See terms of license at http://www.gnu.org.                           -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project>
+
+  <!-- ========= -->
+  <!-- Libraries -->
+  <!-- ========= -->
+
+  <target name="thirdparty-init" depends="prepare">
+    
+    <property name="thirdparty.dir" value="${jbws42.dir}/thirdparty"/>
+    <checksum file="${jbws42.dir}/version.properties" fileext=".md5" verifyproperty="checksum.ok"/>
+    <condition property="force.thirdparty">
+      <or>
+        <not>
+          <available file="${thirdparty.dir}" type="dir"/>
+        </not>
+        <isfalse value="${checksum.ok}"/>
+        <isset property="force.thirdparty.get"/>
+      </or>
+    </condition>
+    <echo message="checksum.ok = ${checksum.ok}"/>
+  </target>
+  
+  <target name="thirdparty-get" depends="thirdparty-init" if="force.thirdparty" description="Gets the thirdparty libraries">
+    
+    <mkdir dir="${thirdparty.dir}"/>
+    <get src="${jboss.repository}/jboss/jbossws-common/${jbossws-common}/lib/jbossws-common.jar" dest="${thirdparty.dir}/jbossws-common.jar" usetimestamp="true" verbose="true"/>
+    <get src="${jboss.repository}/jboss/jbossws-framework/${jbossws-framework}/lib/jbossws-framework.jar" dest="${thirdparty.dir}/jbossws-framework.jar" usetimestamp="true" verbose="true"/>
+    <get src="${jboss.repository}/jboss/jbossws-spi/${jbossws-spi}/lib/jbossws-spi.jar" dest="${thirdparty.dir}/jbossws-spi.jar" usetimestamp="true" verbose="true"/>
+    
+    <get src="${jboss.repository}/dom4j/${dom4j}/lib/dom4j.jar" dest="${thirdparty.dir}/dom4j.jar" usetimestamp="true" verbose="true"/>
+    <get src="${jboss.repository}/sun-jaxws/${sun-jaxws}/lib/jaxws-api.jar" dest="${thirdparty.dir}/jaxws-api.jar" usetimestamp="true" verbose="true"/>
+    <get src="${jboss.repository}/sun-jaxws/${sun-jaxws}/lib/jsr181-api.jar" dest="${thirdparty.dir}/jsr181-api.jar" usetimestamp="true" verbose="true"/> 
+    <get src="${jboss.repository}/sun-jaxws/${sun-jaxws}/lib/saaj-api.jar" dest="${thirdparty.dir}/saaj-api.jar" usetimestamp="true" verbose="true"/>
+    <get src="${jboss.repository}/sun-jaxrpc/${sun-jaxrpc}/lib/jaxrpc-api.jar" dest="${thirdparty.dir}/jaxrpc-api.jar" usetimestamp="true" verbose="true"/>
+    <checksum file="${jbws42.dir}/version.properties" fileext=".md5"/>
+  </target>
+  
+  <target name="thirdparty-classpath" depends="thirdparty-get">
+    
+    <!-- The compile classpath for jboss42 integration -->
+    <path id="jbws42.integration.classpath">
+      <pathelement location="${thirdparty.dir}/jbossws-common.jar"/>
+      <pathelement location="${thirdparty.dir}/jbossws-spi.jar"/>
+      <pathelement location="${thirdparty.dir}/jaxws-api.jar"/>
+      <pathelement location="${thirdparty.dir}/jaxrpc-api.jar"/>
+      <pathelement location="${thirdparty.dir}/jsr181-api.jar"/>
+      <pathelement location="${thirdparty.dir}/saaj-api.jar"/>
+      <pathelement location="${jboss42.lib}/jboss-common.jar"/>
+      <pathelement location="${jboss42.lib}/jboss-jmx.jar"/>
+      <pathelement location="${jboss42.lib}/jboss-system.jar"/>
+      <pathelement location="${jboss42.lib}/jboss-xml-binding.jar"/>
+      <pathelement location="${jboss42.server.lib}/dom4j.jar"/>
+      <pathelement location="${jboss42.server.lib}/jboss.jar"/>
+      <pathelement location="${jboss42.server.lib}/jboss-j2ee.jar"/>
+      <pathelement location="${jboss42.server.lib}/jboss-ejb3x.jar"/>
+      <pathelement location="${jboss42.server.lib}/jbosssx.jar"/>
+      <pathelement location="${jboss42.server.lib}/servlet-api.jar"/>
+      <pathelement location="${jboss42.server.deploy}/jboss-aop-jdk50.deployer/jboss-aop-jdk50.jar"/>
+      <pathelement location="${jboss42.server.deploy}/jboss-bean.deployer/jboss-dependency.jar"/>
+      <pathelement location="${jboss42.server.deploy}/jboss-bean.deployer/jboss-microcontainer.jar"/>
+      <pathelement location="${jboss42.server.deploy}/ejb3.deployer/jboss-annotations-ejb3.jar"/>
+      <pathelement location="${jboss42.server.deploy}/ejb3.deployer/jboss-ejb3.jar"/>
+    </path>
+
+  </target>
+
+</project>


Property changes on: container/jboss42/branches/jbossws-jboss423/ant-import/build-thirdparty.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/ant.properties
===================================================================
--- container/jboss42/branches/jbossws-jboss423/ant.properties	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/ant.properties	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,26 @@
+#
+# A sample ant properties file
+#
+# $Id: ant.properties.example 3995 2007-07-26 08:52:45Z thomas.diesler at jboss.com $
+
+# JBoss Home
+jboss42.home=/home/hbraun/dev/prj/jbossas/branches/Branch_4_2/build/output/jboss-4.2.3.GA/
+
+# The JBoss settings
+jboss.server.instance=default
+
+# JBoss Repository
+jboss.repository=file:/home/hbraun/dev/prj/jboss.local.repository
+#jboss.repository=http://repository.jboss.org
+
+# JBossWS Release
+jboss.local.repository=/home/hbraun/dev/prj/jboss.local.repository
+
+# Force thirdparty HTTP get
+#force.thirdparty.get=true
+
+# Java Compiler options
+javac.debug=yes
+javac.deprecation=no
+javac.fail.onerror=yes
+javac.verbose=no

Added: container/jboss42/branches/jbossws-jboss423/ant.properties.example
===================================================================
--- container/jboss42/branches/jbossws-jboss423/ant.properties.example	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/ant.properties.example	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,26 @@
+#
+# A sample ant properties file
+#
+# $Id: ant.properties.example 3995 2007-07-26 08:52:45Z thomas.diesler at jboss.com $
+
+# JBoss Home
+#jboss42.home=/home/tdiesler/svn/jbossas/tags/JBoss_4_2_1_GA/build/output/jboss-4.2.1.GA
+
+# The JBoss settings
+jboss.server.instance=default
+
+# JBoss Repository
+#jboss.repository=file:/home/tdiesler/svn/jboss.local.repository
+jboss.repository=http://repository.jboss.org
+
+# JBossWS Release
+jboss.local.repository=/home/tdiesler/svn/jboss.local.repository
+
+# Force thirdparty HTTP get
+#force.thirdparty.get=true
+
+# Java Compiler options
+javac.debug=yes
+javac.deprecation=no
+javac.fail.onerror=yes
+javac.verbose=no

Added: container/jboss42/branches/jbossws-jboss423/build.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/build.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/build.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,158 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- ====================================================================== -->
+<!--                                                                        -->
+<!--  JBoss, the OpenSource J2EE webOS                                      -->
+<!--                                                                        -->
+<!--  Distributable under LGPL license.                                     -->
+<!--  See terms of license at http://www.gnu.org.                           -->
+<!--                                                                        -->
+<!-- ====================================================================== -->
+
+<!-- $Id$ -->
+
+<project default="main" basedir="." name="JBossWS-JBoss42">
+  
+  <import file="${basedir}/ant-import/build-setup.xml"/>
+  <import file="${basedir}/ant-import/build-release.xml"/>
+  <import file="${basedir}/ant-import/build-thirdparty.xml"/>
+  
+  <!-- ================================================================== -->
+  <!-- Setup                                                              -->
+  <!-- ================================================================== -->
+  
+  <property name="jbws42.dir" value="${int.jboss42.dir}"/>
+  <property name="jbws42.src.dir" value="${jbws42.dir}/src/main"/>
+  <property name="jbws42.etc.dir" value="${jbws42.src.dir}/etc"/>
+  <property name="jbws42.java.dir" value="${jbws42.src.dir}/java"/>
+  <property name="jbws42.resources.dir" value="${jbws42.src.dir}/resources"/>
+  <property name="jbws42.output.dir" value="${jbws42.dir}/output"/>
+  <property name="jbws42.output.apidocs.dir" value="${jbws42.output.dir}/apidocs"/>
+  <property name="jbws42.output.classes.dir" value="${jbws42.output.dir}/classes"/>
+  <property name="jbws42.output.etc.dir" value="${jbws42.output.dir}/etc"/>
+  <property name="jbws42.output.lib.dir" value="${jbws42.output.dir}/lib"/>
+
+  <!-- ================================================================== -->
+  <!-- Initialization                                                     -->
+  <!-- ================================================================== -->
+  
+  <target name="init" depends="prepare,thirdparty-get">
+    <fail message="Not available: ${jboss42.available.file}" unless="jboss42.available"/>
+  </target>
+  
+  <!-- ================================================================== -->
+  <!-- Compile                                                            -->
+  <!-- ================================================================== -->
+  
+  <!--
+  | Compile everything.
+  |
+  | This target should depend on other compile-* targets for each
+  | different type of compile that needs to be performed, short of
+  | documentation compiles.
+  -->
+  
+  <target name="compile" depends="init,compile-classes,compile-etc" description="Compile all source files."/>
+  
+  <!-- Compile integration java sources -->
+  <target name="compile-classes" depends="init">
+    <mkdir dir="${jbws42.output.classes.dir}"/>
+    <javac srcdir="${jbws42.java.dir}" sourcepath="" destdir="${jbws42.output.classes.dir}" encoding="utf-8" debug="${javac.debug}" verbose="${javac.verbose}"
+      deprecation="${javac.deprecation}" failonerror="${javac.fail.onerror}">
+      <include name="org/jboss/ws/integration/**"/>
+      <include name="org/jboss/wsf/container/jboss42/**"/>
+      <exclude name="org/jboss/wsf/container/jboss42/jms/**"/>
+      <classpath refid="jbws42.integration.classpath"/>
+    </javac>
+  </target>
+  
+  <!-- Compile etc files (manifests and such) -->
+  <target name="compile-etc" depends="init">
+    <mkdir dir="${jbws42.output.etc.dir}"/>
+    <copy todir="${jbws42.output.etc.dir}" filtering="yes" overwrite="true">
+      <fileset dir="${jbws42.etc.dir}">
+        <include name="default.mf"/>
+  	  </fileset>
+      <filterset>
+        <filter token="java.vm.version" value="${java.vm.version}"/>
+        <filter token="java.vm.vendor" value="${java.vm.vendor}"/>
+        <filter token="build.id" value="${build.id}"/>
+        <filter token="implementation.version" value="jbossws-${version.id}"/>
+        <filtersfile file="${jbws42.dir}/version.properties"/>
+      </filterset>
+    </copy>
+  </target>
+  
+  <!-- ================================================================== -->
+  <!-- Archives                                                           -->
+  <!-- ================================================================== -->
+  
+  <!--
+  | Build all jar files.
+  -->
+  <target name="jars"  depends="compile,module-jars" description="Builds all jar files.">
+  </target>
+  
+  <!--
+  |  Build all jar files.
+  -->
+  <target name="module-jars" depends="init">
+    
+    <!-- Build jbossws-jboss42.jar -->
+    <mkdir dir="${jbws42.output.lib.dir}"/>
+    <jar jarfile="${jbws42.output.lib.dir}/jbossws-jboss42.jar" manifest="${jbws42.output.etc.dir}/default.mf">
+      <fileset dir="${jbws42.output.classes.dir}">
+        <include name="org/jboss/ws/integration/**"/>
+        <include name="org/jboss/wsf/container/jboss42/**"/>
+      </fileset>
+      <metainf dir="${jbws42.resources.dir}/jbossws-jboss42.jar/META-INF"/>
+    </jar>
+    
+    <!-- Build jbossws-jboss42-resources.zip -->
+    <zip zipfile="${jbws42.output.lib.dir}/jbossws-jboss42-resources.zip" >
+      <fileset dir="${jbws42.resources.dir}"/>
+    </zip>
+    
+    <!-- Build jbossws-jboss42-src.zip -->
+    <zip zipfile="${jbws42.output.lib.dir}/jbossws-jboss42-src.zip" >
+      <fileset dir="${jbws42.java.dir}"/>
+    </zip>
+    
+  </target>
+
+	<!-- Generate the JavaDoc -->
+   <target name="javadoc" depends="init" description="Generate the Javadoc">
+
+		<mkdir dir="${jbws42.output.apidocs.dir}"/>
+      <javadoc destdir="${jbws42.output.apidocs.dir}" author="true" version="true" use="true" windowtitle="JBossWS API">
+         <classpath>
+				<path refid="jbws42.integration.classpath"/>
+			</classpath>
+         <packageset dir="${jbws42.java.dir}" defaultexcludes="yes">
+            <include name="org/jboss/wsf/**"/>
+         </packageset>
+         <doctitle><![CDATA[<h1>JBoss Web Service Framework - Container integration AS 4.0</h1>]]></doctitle>
+         <tag name="todo" scope="all" description="To do:"/>
+		</javadoc>
+   </target>
+
+  <!-- ================================================================== -->
+  <!-- Miscellaneous                                                       -->
+  <!-- ================================================================== -->
+  
+  <target name="clean" depends="prepare" description="Cleans up most generated files.">
+    <delete dir="${jbws42.output.dir}"/>
+  </target>
+  
+  <target name="clobber" depends="clean" description="Cleans up all generated files.">
+    <delete dir="${jbws42.dir}/thirdparty"/>
+  </target>
+  
+  <target name="main" description="Executes the default target (most)." depends="most"/>
+  
+  <target name="most" description="Builds almost everything." depends="jars"/>
+  
+  <target name="all" description="Create a distribution zip file" depends="main">
+  </target>
+  
+</project>


Property changes on: container/jboss42/branches/jbossws-jboss423/build.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/etc/component-info.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/etc/component-info.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/etc/component-info.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,28 @@
+<project name="jboss/jbossws-jboss42">
+  
+  <component id="jboss/jbossws-jboss42"
+    description="JBossWS container integration layer" 
+    version="@repository.id@"
+    licenseType="lgpl">
+    
+    <artifact id="jbossws-jboss42.jar"/>
+    <artifact id="jbossws-jboss42-deployer.zip"/>
+    <artifact id="jbossws-jboss42-src.zip"/>
+    
+    <import componentref="jboss/jbossws-common">
+      <compatible version="@jbossws-common@"/>
+    </import>
+    <import componentref="jboss/jbossws-framework">
+      <compatible version="@jbossws-framework@"/>
+    </import>
+    <import componentref="jboss/jbossws-spi">
+      <compatible version="@jbossws-spi@"/>
+    </import>
+    
+    <export>
+      <include input="jbossws-jboss42.jar"/>
+    </export>
+    
+  </component>
+  
+</project>


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/etc/component-info.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/etc/default.mf
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/etc/default.mf	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/etc/default.mf	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,10 @@
+Manifest-Version: 1.2
+Created-By: @java.vm.version@ (@java.vm.vendor@)
+Specification-Title: @specification.title@
+Specification-Version: @specification.version@
+Specification-Vendor: @specification.vendor@
+Implementation-Title: @implementation.title@
+Implementation-URL: @implementation.url@
+Implementation-Version: @implementation.version@ (build=@build.id@)
+Implementation-Vendor: @implementation.vendor@
+Implementation-Vendor-Id: @implementation.vendor.id@

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHook.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHook.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHook.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,199 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanProxyCreationException;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.WSFRuntime;
+import org.jboss.wsf.spi.deployment.*;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import java.util.List;
+
+/**
+ * An abstract web service deployer.
+ * Lazily adds deployer hooks to the deployment interceptors.
+ * Otherwise the dependency management at boot time doesn't work.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
+ * @since 25-Apr-2007
+ */
+public abstract class AbstractDeployerHook implements DeployerHook
+{
+   // provide logging
+   protected final Logger log = Logger.getLogger(getClass());
+
+   private WSFRuntime runtime;
+   private DeploymentModelFactory deploymentModelFactory;
+
+   private List<ObjectName> phaseOneInterceptors;
+   private List<ObjectName> phaseTwoInterceptors;
+
+   /**
+    * MC injected
+    * @param runtime
+    */
+   public void setRuntime(WSFRuntime runtime)
+   {
+      this.runtime = runtime;
+   }
+
+   public WSFRuntime getRuntime()
+   {      
+      return this.runtime;
+   }
+
+   public DeploymentModelFactory getDeploymentModelFactory()
+   {
+      if(null == deploymentModelFactory)
+      {
+         SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+         deploymentModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
+      }
+
+      return deploymentModelFactory;
+   }
+
+   public ArchiveDeployment newDeployment(DeploymentInfo di)
+   {
+      try
+      {
+         DeploymentModelFactory factory = getDeploymentModelFactory();
+         ArchiveDeployment dep = (ArchiveDeployment)factory.newDeployment(di.shortName, di.annotationsCl);
+         if (di.parent != null)
+         {
+            DeploymentInfo parentInfo = di.parent;
+            ArchiveDeployment parentDep = (ArchiveDeployment)factory.newDeployment(parentInfo.shortName, parentInfo.annotationsCl);
+            dep.setParent(parentDep);
+         }
+         return dep;
+      }
+      catch (Exception ex)
+      {
+         throw new WSFDeploymentException("Cannot load spi.deployment.Deployment class", ex);
+      }
+   }
+
+   public Endpoint newEndpoint(String targetBean)
+   {
+      try
+      {
+         return getDeploymentModelFactory().newEndpoint(targetBean);
+      }
+      catch (Exception ex)
+      {
+         throw new WSFDeploymentException("Cannot load spi.deployment.Endpoint class", ex);
+      }
+   }
+
+   public void setPhaseOneInterceptors(List<ObjectName> phaseOneInterceptors)
+   {
+      this.phaseOneInterceptors = phaseOneInterceptors;
+   }
+
+   public void setPhaseTwoInterceptors(List<ObjectName> phaseTwoInterceptors)
+   {
+      this.phaseTwoInterceptors = phaseTwoInterceptors;
+   }
+
+   /** Return true if this deployment should be ignored
+    */
+   public boolean ignoreDeployment(DeploymentInfo unit)
+   {
+      return false;
+   }
+
+   /** Add the hooks to the interceptors
+    */
+   public void start()
+   {
+      MBeanServer server = MBeanServerLocator.locateJBoss();
+      try
+      {
+         if (phaseOneInterceptors != null)
+         {
+            for (ObjectName oname : phaseOneInterceptors)
+            {
+               DeployerInterceptorMBean interceptor = (DeployerInterceptorMBean)MBeanProxy.get(DeployerInterceptorMBean.class, oname, server);
+               interceptor.addPhaseOneHook(this);
+            }
+         }
+
+         if (phaseTwoInterceptors != null)
+         {
+            for (ObjectName oname : phaseTwoInterceptors)
+            {
+               DeployerInterceptorMBean interceptor = (DeployerInterceptorMBean)MBeanProxy.get(DeployerInterceptorMBean.class, oname, server);
+               interceptor.addPhaseTwoHook(this);
+            }
+         }
+      }
+      catch (MBeanProxyCreationException e)
+      {
+         throw new WSFDeploymentException(e);
+      }
+   }
+
+   /** Add the hooks to the interceptors
+    */
+   public void stop()
+   {
+      MBeanServer server = MBeanServerLocator.locateJBoss();
+      try
+      {
+         if (phaseOneInterceptors != null)
+         {
+            for (ObjectName oname : phaseOneInterceptors)
+            {
+               DeployerInterceptorMBean interceptor = (DeployerInterceptorMBean)MBeanProxy.get(DeployerInterceptorMBean.class, oname, server);
+               interceptor.removePhaseOneHook(this);
+            }
+         }
+
+         if (phaseTwoInterceptors != null)
+         {
+            for (ObjectName oname : phaseTwoInterceptors)
+            {
+               DeployerInterceptorMBean interceptor = (DeployerInterceptorMBean)MBeanProxy.get(DeployerInterceptorMBean.class, oname, server);
+               interceptor.removePhaseTwoHook(this);
+            }
+         }
+      }
+      catch (MBeanProxyCreationException e)
+      {
+         throw new WSFDeploymentException(e);
+      }
+   }
+
+   /** Get the deployment type this deployer can handle
+    */
+   public abstract Deployment.DeploymentType getDeploymentType();
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHook.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookEJB.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookEJB.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookEJB.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.deployment.Deployment;
+
+//$Id$
+
+/**
+ * An abstract deployer for EJB Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public abstract class AbstractDeployerHookEJB extends ArchiveDeployerHook
+{
+   
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookEJB.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,63 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.metadata.WebMetaData;
+
+//$Id$
+
+/**
+ * An abstract deployer for JSE Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public abstract class AbstractDeployerHookJSE extends ArchiveDeployerHook
+{
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      if ((unit.metaData instanceof WebMetaData) == false)
+         return false;
+
+      return true;
+   }
+   
+   static class Servlet
+   {
+      String servletName;
+      String servletClass;
+      public Servlet(String servletName, String servletClass)
+      {
+         this.servletName = servletName;
+         this.servletClass = servletClass;
+      }
+      public String getServletClass()
+      {
+         return servletClass;
+      }
+      public String getServletName()
+      {
+         return servletName;
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractDeployerHookJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractInvocationHandler.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractInvocationHandler.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractInvocationHandler.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.lang.reflect.Method;
+
+import org.jboss.wsf.common.JavaUtils;
+import org.jboss.wsf.spi.invocation.InvocationHandler;
+
+/**
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public abstract class AbstractInvocationHandler extends InvocationHandler
+{
+   protected Method getImplMethod(Class implClass, Method seiMethod) throws ClassNotFoundException, NoSuchMethodException
+   {
+      String methodName = seiMethod.getName();
+      Class[] paramTypes = seiMethod.getParameterTypes();
+      for (int i = 0; i < paramTypes.length; i++)
+      {
+         Class paramType = paramTypes[i];
+         if (JavaUtils.isPrimitive(paramType) == false)
+         {
+            String paramTypeName = paramType.getName();
+            paramType = JavaUtils.loadJavaType(paramTypeName);
+            paramTypes[i] = paramType;
+         }
+      }
+
+      Method implMethod = implClass.getMethod(methodName, paramTypes);
+      return implMethod;
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/AbstractInvocationHandler.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ArchiveDeployerHook.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ArchiveDeployerHook.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ArchiveDeployerHook.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,158 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import java.io.IOException;
+import java.net.URL;
+
+import org.jboss.deployment.DeploymentException;
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
+import org.jboss.wsf.spi.deployment.WSFDeploymentException;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesFactory;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+import org.jboss.wsf.common.DOMUtils;
+import org.jboss.wsf.common.ResourceLoaderAdapter;
+import org.jboss.xb.binding.ObjectModelFactory;
+import org.jboss.xb.binding.Unmarshaller;
+import org.jboss.xb.binding.UnmarshallerFactory;
+import org.w3c.dom.Element;
+
+/**
+ * An abstract web service deployer.
+ * 
+ *    deploy(unit) 
+ *      if(isWebServiceDeployment)
+ *        dep = createDeployment(unit)
+ *        deploy(dep)
+ *
+ *    undeploy(unit)
+ *      dep = getDeployment(unit) 
+ *      undeploy(dep)
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public abstract class ArchiveDeployerHook extends AbstractDeployerHook
+{
+   /** Get the deployemnt type this deployer can handle 
+    */
+   public abstract DeploymentType getDeploymentType();
+
+   /** Depending on the type of deployment, this method should return true
+    *  if the deployment contains web service endpoints.
+    */
+   public abstract boolean isWebServiceDeployment(DeploymentInfo unit);
+
+   /** Create the Deployment for a given DeploymentInfo
+    */
+   public abstract Deployment createDeployment(DeploymentInfo unit);
+
+   /** Get the Deployment for a given DeploymentInfo
+    */
+   public Deployment getDeployment(DeploymentInfo unit)
+   {
+      Deployment dep = (Deployment)unit.context.get(Deployment.class);
+      return (dep != null && dep.getType() == getDeploymentType() ? dep : null);
+   }
+
+   public void deploy(DeploymentInfo unit) throws DeploymentException
+   {
+      if (ignoreDeployment(unit))
+         return;
+
+      if (isWebServiceDeployment(unit))
+      {
+         log.debug("deploy: " + unit.shortName);
+         Deployment dep = getDeployment(unit);
+         if (dep == null)
+         {
+            dep = createDeployment(unit);
+            dep.addAttachment(DeploymentInfo.class, unit);
+         }
+
+         getRuntime().create(dep);         
+         
+         unit.context.put(Deployment.class, dep);
+      }
+   }
+
+   public void undeploy(DeploymentInfo unit)
+   {
+      if (ignoreDeployment(unit))
+         return;
+
+      Deployment dep = getDeployment(unit);
+      if (dep != null)
+      {
+         log.debug("undeploy: " + unit.shortName);
+         getRuntime().stop(dep);
+         getRuntime().destroy(dep);
+      }
+   }
+
+   /** Unmrashall the webservices.xml if there is one
+    */
+   protected WebservicesMetaData getWebservicesMetaData(DeploymentInfo unit, String wsFile)
+   {
+      WebservicesMetaData wsMetaData = (WebservicesMetaData)unit.context.get(WebservicesMetaData.class);
+      UnifiedVirtualFile vfWebservices = getWebservicesFile(unit, wsFile);
+      if (wsMetaData == null && vfWebservices != null)
+      {
+         try
+         {
+            URL wsURL = vfWebservices.toURL();
+            Element root = DOMUtils.parse(wsURL.openStream());
+            String namespaceURI = root.getNamespaceURI();
+            if (namespaceURI.equals("http://java.sun.com/xml/ns/j2ee"))
+            {
+               Unmarshaller unmarshaller = UnmarshallerFactory.newInstance().newUnmarshaller();
+               ObjectModelFactory factory = new WebservicesFactory(wsURL);
+               wsMetaData = (WebservicesMetaData)unmarshaller.unmarshal(wsURL.openStream(), factory, null);
+               unit.context.put(WebservicesMetaData.class, wsMetaData);
+            }
+         }
+         catch (Exception ex)
+         {
+            throw new WSFDeploymentException(ex);
+         }
+      }
+      return wsMetaData;
+   }
+
+   private UnifiedVirtualFile getWebservicesFile(DeploymentInfo unit, String wsFile)
+   {
+      try
+      {
+         UnifiedVirtualFile vfsRoot = new ResourceLoaderAdapter(unit.localCl);
+         return (wsFile != null ? vfsRoot.findChild(wsFile) : null);
+      }
+      catch (IOException e)
+      {
+         return null;
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ArchiveDeployerHook.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataAdapter.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataAdapter.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataAdapter.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,116 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData;
+
+import java.io.File;
+import java.net.MalformedURLException;
+import java.net.URL;
+
+/**
+ * Build container independent deployment info. 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2006
+ */
+public class ContainerMetaDataAdapter
+{
+   // logging support
+   private static Logger log = Logger.getLogger(ContainerMetaDataAdapter.class);
+
+   private EJBArchiveMetaDataAdapterEJB3 applicationMetaDataAdapterEJB3;
+   private EJBArchiveMetaDataAdapter applicationMetaDataAdapterEJB21;
+   private JSEArchiveMetaDataAdapter webMetaDataAdapter;
+
+   public void setApplicationMetaDataAdapterEJB21(EJBArchiveMetaDataAdapter adapter)
+   {
+      this.applicationMetaDataAdapterEJB21 = adapter;
+   }
+
+   public void setApplicationMetaDataAdapterEJB3(EJBArchiveMetaDataAdapterEJB3 adapter)
+   {
+      this.applicationMetaDataAdapterEJB3 = adapter;
+   }
+
+   public void setWebMetaDataAdapter(JSEArchiveMetaDataAdapter adapter)
+   {
+      this.webMetaDataAdapter = adapter;
+   }
+
+   public void buildContainerMetaData(Deployment dep, DeploymentInfo di)
+   {
+      dep.addAttachment(DeploymentInfo.class, di);
+      dep.setProperty(EJBArchiveMetaDataAdapterEJB3.DEPLOYED_OBJECT, di.deployedObject);
+
+      if (di.metaData instanceof WebMetaData)
+      {
+         JSEArchiveMetaData webMetaData = webMetaDataAdapter.buildUnifiedWebMetaData(dep, di);
+         if (webMetaData != null)
+            dep.addAttachment(JSEArchiveMetaData.class, webMetaData);
+         
+         dep.setProperty("org.jboss.ws.webapp.url", getDeploymentURL(di));
+      }
+      else if (dep.getType() == DeploymentType.JAXWS_EJB3)
+      {
+         EJBArchiveMetaData appMetaData = applicationMetaDataAdapterEJB3.buildUnifiedApplicationMetaData(dep);
+         if (appMetaData != null)
+            dep.addAttachment(EJBArchiveMetaData.class, appMetaData);
+      }
+      else if (di.metaData instanceof ApplicationMetaData)
+      {
+         EJBArchiveMetaData appMetaData = applicationMetaDataAdapterEJB21.buildUnifiedApplicationMetaData(dep, di);
+         if (appMetaData != null)
+            dep.addAttachment(EJBArchiveMetaData.class, appMetaData);
+      }
+   }
+
+   private URL getDeploymentURL(DeploymentInfo di)
+   {
+      URL deploymentURL = (di.localUrl != null ? di.localUrl : di.url);
+      if ("file".equals(deploymentURL.getProtocol()))
+      {
+         String path = deploymentURL.getPath();
+         if (new File(path).isFile())
+         {
+            try
+            {
+               deploymentURL = new URL("jar:file:" + path + "!/");
+            }
+            catch (MalformedURLException e)
+            {
+               // ignore
+            }
+         }
+      }
+      return deploymentURL;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataAdapter.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataDeploymentAspect.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataDeploymentAspect.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataDeploymentAspect.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,55 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspect;
+import org.jboss.wsf.spi.WSFRuntime;
+
+/**
+ * A deployer that builds the UnifiedDeploymentInfo 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class ContainerMetaDataDeploymentAspect extends DeploymentAspect
+{
+   private ContainerMetaDataAdapter metaDataAdapter;
+
+   public void setMetaDataAdapter(ContainerMetaDataAdapter adapter)
+   {
+      this.metaDataAdapter = adapter;
+   }
+
+   @Override
+   public void create(Deployment dep, WSFRuntime runtime)
+   {
+      DeploymentInfo di = dep.getAttachment(DeploymentInfo.class);
+      if (di == null)
+         throw new IllegalStateException("Cannot obtain deployment info");
+
+      metaDataAdapter.buildContainerMetaData(dep, di);
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ContainerMetaDataDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DefaultWebAppDesciptorModifierImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DefaultWebAppDesciptorModifierImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DefaultWebAppDesciptorModifierImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,164 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.logging.Logger;
+import org.dom4j.Document;
+import org.dom4j.Element;
+
+import java.util.Iterator;
+import java.util.Map;
+
+/**
+ * Modifies web.xml for jbossws
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 19-May-2006
+ */
+public class DefaultWebAppDesciptorModifierImpl implements WebAppDesciptorModifier
+{
+   // logging support
+   private static Logger log = Logger.getLogger(DefaultWebAppDesciptorModifierImpl.class);
+
+   public RewriteResults modifyDescriptor(Deployment dep, Document webXml) throws ClassNotFoundException
+   {
+      RewriteResults results = new RewriteResults();
+      Element root = webXml.getRootElement();
+
+      String propKey = "org.jboss.ws.webapp.ServletClass";
+      String servletClass = (String)dep.getProperty(propKey);
+      if (servletClass == null)
+         throw new IllegalStateException("Cannot obtain context property: " + propKey);
+
+      propKey = "org.jboss.ws.webapp.ContextParameterMap";
+      Map<String, String> contextParams = (Map<String, String>)dep.getProperty(propKey);
+      if (contextParams != null)
+      {
+         for (Map.Entry<String, String> entry : contextParams.entrySet())
+         {
+            Element contextParam = root.addElement("context-param");
+            contextParam.addElement("param-name").addText(entry.getKey());
+            contextParam.addElement("param-value").addText(entry.getValue());
+         }
+      }
+
+      propKey = "org.jboss.ws.webapp.ServletContextListener";
+      String listenerClass = (String)dep.getProperty(propKey);
+      if (listenerClass != null)
+      {
+         Element listener = root.addElement("listener");
+         listener.addElement("listener-class").setText(listenerClass);
+      }
+
+      for (Iterator it = root.elementIterator("servlet"); it.hasNext();)
+      {
+         Element servlet = (Element)it.next();
+         String linkName = servlet.element("servlet-name").getTextTrim();
+
+         // find the servlet-class
+         Element classElement = servlet.element("servlet-class");
+
+         // JSP
+         if (classElement == null)
+            continue;
+
+         String orgServletClassName = classElement.getTextTrim();
+
+         // Get the servlet class
+         Class orgServletClass = null;
+         try
+         {
+            ClassLoader loader = dep.getInitialClassLoader();
+            orgServletClass = loader.loadClass(orgServletClassName);
+         }
+         catch (ClassNotFoundException ex)
+         {
+            log.warn("Cannot load servlet class: " + orgServletClassName);
+         }
+
+         String targetBeanName = null;
+
+         // Nothing to do if we have an <init-param>
+         if (isAlreadyModified(servlet))
+         {
+            for (Iterator itParam = servlet.elementIterator("init-param"); itParam.hasNext();)
+            {
+               Element elParam = (Element)itParam.next();
+               String paramName = elParam.element("param-name").getTextTrim();
+               String paramValue = elParam.element("param-value").getTextTrim();
+               if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
+               {
+                  targetBeanName = paramValue;
+               }
+            }
+         }
+         else
+         {
+            // Check if it is a real servlet that we can ignore
+            if (orgServletClass != null && javax.servlet.Servlet.class.isAssignableFrom(orgServletClass))
+            {
+               log.info("Ignore servlet: " + orgServletClassName);
+               continue;
+            }
+            else if (orgServletClassName.endsWith("Servlet"))
+            {
+               log.info("Ignore <servlet-class> that ends with 'Servlet': " + orgServletClassName);
+               continue;
+            }
+
+            classElement.setText(servletClass);
+
+            // add additional init params
+            if (orgServletClassName.equals(servletClass) == false)
+            {
+               targetBeanName = orgServletClassName;
+               Element paramElement = servlet.addElement("init-param");
+               paramElement.addElement("param-name").addText(Endpoint.SEPID_DOMAIN_ENDPOINT);
+               paramElement.addElement("param-value").addText(targetBeanName);
+            }
+         }
+
+         if (targetBeanName == null)
+            throw new IllegalStateException("Cannot obtain service endpoint bean for: " + linkName);
+
+         // remember the target bean name
+         results.sepTargetMap.put(linkName, targetBeanName);
+      }
+
+      return results;
+   }
+
+   // Return true if the web.xml is already modified
+   private boolean isAlreadyModified(Element servlet)
+   {
+      for (Iterator it = servlet.elementIterator("init-param"); it.hasNext();)
+      {
+         Element elParam = (Element)it.next();
+         String paramName = elParam.element("param-name").getTextTrim();
+         if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
+            return true;
+      }
+      return false;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DefaultWebAppDesciptorModifierImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHook.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHook.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHook.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,41 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.deployment.DeploymentException;
+import org.jboss.deployment.DeploymentInfo;
+
+//$Id$
+
+
+/**
+ * An interface for all web service deployer hooks 
+ * 
+ * @author Thomas.Diesler at jboss.org
+ * @since 24-Apr-2007
+ */
+public interface DeployerHook
+{
+   void deploy(DeploymentInfo unit) throws DeploymentException;
+
+   void undeploy(DeploymentInfo unit);
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHook.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHookPostJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHookPostJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHookPostJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.DeploymentException;
+import org.jboss.wsf.spi.deployment.Deployment;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public abstract class DeployerHookPostJSE extends AbstractDeployerHookJSE
+{
+   /**
+    * The deployment should be created in phase 1.
+    */
+   @Override
+   public Deployment createDeployment(DeploymentInfo di)
+   {
+      Deployment deployment = (Deployment)di.context.get(Deployment.class);
+      if (null == deployment)
+         throw new IllegalArgumentException("spi.Deployment missing. Should be created in Phase 1");
+
+      return deployment;
+   }
+
+   /**
+    * A phase 2 deployer hook needs to reject first-place
+    * JSE deployments and wait for those that are re-written.
+    * We rely on the fact that spi.Deployment is created in phase 1.    
+    */
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo di)
+   {
+      if (super.isWebServiceDeployment(di) == false)
+         return false;
+
+      Deployment deployment = (Deployment)di.context.get(Deployment.class);
+      return deployment != null;
+   }
+
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerHookPostJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptor.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptor.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptor.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,153 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.MainDeployerMBean;
+import org.jboss.deployment.SubDeployerInterceptorSupport;
+import org.jboss.mx.server.Invocation;
+import org.jboss.mx.util.MBeanProxy;
+
+/**
+ * A deployer service that manages WS4EE compliant Web Services
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 03-May-2007
+ */
+public abstract class DeployerInterceptor extends SubDeployerInterceptorSupport implements DeployerInterceptorMBean
+{
+   // The main deployer
+   private MainDeployerMBean mainDeployer;
+
+   private List<DeployerHook> phaseOneHooks = new LinkedList<DeployerHook>();
+   private List<DeployerHook> phaseTwoHooks = new LinkedList<DeployerHook>();
+
+   public void addPhaseOneHook(DeployerHook hook)
+   {
+      log.debug("Add phase-one deployer hook: " + hook);
+      phaseOneHooks.add(hook);
+   }
+
+   public void removePhaseOneHook(DeployerHook hook)
+   {
+      log.debug("Remove phase-one deployer hook: " + hook);
+      phaseOneHooks.remove(hook);
+   }
+
+   public void addPhaseTwoHook(DeployerHook hook)
+   {
+      log.debug("Add phase-two deployer hook: " + hook);
+      phaseTwoHooks.add(hook);
+   }
+
+   public void removePhaseTwoHook(DeployerHook hook)
+   {
+      log.debug("Remove phase-two deployer hook: " + hook);
+      phaseTwoHooks.remove(hook);
+   }
+
+   @Override
+   protected final Object create(Invocation invocation, DeploymentInfo unit) throws Throwable
+   {
+      Object retn = invokeNext(invocation);
+
+      for (DeployerHook deployer : phaseOneHooks)
+         deployer.deploy(unit);
+
+      return retn;
+   }
+
+   @Override
+   protected final Object start(Invocation invocation, DeploymentInfo unit) throws Throwable
+   {
+      Object retn = invokeNext(invocation);
+
+      for (DeployerHook deployer : phaseTwoHooks)
+         deployer.deploy(unit);
+
+      return retn;
+   }
+
+   @Override
+   protected final Object stop(Invocation invocation, DeploymentInfo unit) throws Throwable
+   {
+      Object retn = invokeNext(invocation);
+
+      for (DeployerHook deployer : phaseTwoHooks)
+         deployer.undeploy(unit);
+
+      return retn;
+   }
+
+   @Override
+   protected final Object destroy(Invocation invocation, DeploymentInfo unit) throws Throwable
+   {
+      Object retn = invokeNext(invocation);
+
+      for (DeployerHook deployer : phaseOneHooks)
+         deployer.undeploy(unit);
+
+      return retn;
+   }
+
+   /** Create the deployer service
+    */
+   protected void createService() throws Exception
+   {
+      mainDeployer = (MainDeployerMBean)MBeanProxy.get(MainDeployerMBean.class, MainDeployerMBean.OBJECT_NAME, server);
+      super.attach();
+   }
+
+   /** Destroy the deployer service
+    */
+   protected void destroyService()
+   {
+      super.detach();
+   }
+
+   /** 
+    * Handle all webservice deployment exceptions.
+    * You can either simply log the problem and keep the EJB/WAR module
+    * alive or undeploy properly.
+    */
+   protected void handleStartupException(DeploymentInfo di, Throwable th)
+   {
+      log.error("Cannot startup webservice for: " + di.shortName, th);
+      mainDeployer.undeploy(di);
+   }
+
+   /** 
+    * Handle all webservice deployment exceptions.
+    *
+    * You can either simply logs the problem and keep the EJB/WAR module
+    * alive or undeploy properly.
+    */
+   protected void handleShutdownException(String moduleName, Throwable th)
+   {
+      log.error("Cannot shutdown webservice for: " + moduleName, th);
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,35 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+/**
+ * A deployer service that manages WS4EE compliant Web-Services for EJB-2.1 Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 15-Jan-2005
+ */
+public class DeployerInterceptorEJB21 extends DeployerInterceptor implements DeployerInterceptorEJB21MBean
+{
+
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21MBean.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21MBean.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21MBean.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import javax.management.ObjectName;
+
+import org.jboss.wsf.common.ObjectNameFactory;
+
+/**
+ * MBean interface.
+ * @since 19-Jan-2005
+ */
+public interface DeployerInterceptorEJB21MBean extends DeployerInterceptorMBean
+{
+   //default object name
+   public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.ws:service=WebServiceDeployerEJB21");
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB21MBean.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+/**
+ * A deployer service that manages WS4EE compliant Web-Services for EJB3 Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 10-May-2005
+ */
+public class DeployerInterceptorEJB3 extends DeployerInterceptor implements DeployerInterceptorEJB3MBean
+{
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3MBean.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3MBean.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3MBean.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,36 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import javax.management.ObjectName;
+
+import org.jboss.wsf.common.ObjectNameFactory;
+
+/**
+ * MBean interface.
+ * @since 19-Jan-2005
+ */
+public interface DeployerInterceptorEJB3MBean extends DeployerInterceptorMBean
+{
+   //default object name
+   public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.ws:service=WebServiceDeployerEJB3");
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorEJB3MBean.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+/**
+ * A deployer service that manages WS4EE compliant Web Services for WAR
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 15-Jan-2005
+ */
+public class DeployerInterceptorJSE extends DeployerInterceptor implements DeployerInterceptorJSEMBean
+{
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSEMBean.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSEMBean.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSEMBean.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,36 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.wsf.container.jboss42;
+
+import javax.management.ObjectName;
+
+import org.jboss.wsf.common.ObjectNameFactory;
+
+/**
+ * MBean interface.
+ * @since 19-Jan-2005
+ */
+public interface DeployerInterceptorJSEMBean extends DeployerInterceptorMBean
+{
+   //default object name
+   public static final ObjectName OBJECT_NAME = ObjectNameFactory.create("jboss.ws:service=WebServiceDeployerJSE");
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorJSEMBean.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorMBean.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorMBean.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorMBean.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,39 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.deployment.SubDeployerInterceptorMBean;
+
+/**
+ * MBean interface.
+ * @since 19-Jan-2005
+ */
+public interface DeployerInterceptorMBean extends SubDeployerInterceptorMBean
+{
+   void addPhaseOneHook(DeployerHook deployer);
+
+   void removePhaseOneHook(DeployerHook deployer);
+
+   void addPhaseTwoHook(DeployerHook deployer);
+
+   void removePhaseTwoHook(DeployerHook deployer);
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeployerInterceptorMBean.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeploymentAspectHttpServer.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeploymentAspectHttpServer.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeploymentAspectHttpServer.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,133 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.WSFRuntime;
+import org.jboss.wsf.spi.WSFRuntimeLocator;
+import org.jboss.wsf.spi.deployment.AbstractExtensible;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentModelFactory;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.http.HttpContext;
+import org.jboss.wsf.spi.http.HttpContextFactory;
+import org.jboss.wsf.spi.http.HttpServer;
+
+import javax.xml.ws.Endpoint;
+import javax.xml.ws.WebServiceException;
+
+/**
+ * A HTTP Server that uses DeploymentAspects
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 07-Jul-2006
+ */
+public class DeploymentAspectHttpServer extends AbstractExtensible implements HttpServer
+{
+   private String runtimeName;
+
+
+   public void setRuntimeName(String runtimeName)
+   {
+      this.runtimeName = runtimeName;
+   }
+
+   /** Start an instance of this HTTP server */
+   public void start()
+   {
+      // verify required properties
+   }
+
+   /** Create an HTTP context */
+   public HttpContext createContext(String contextRoot)
+   {
+      SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+      HttpContext httpContext = spiProvider.getSPI(HttpContextFactory.class).newHttpContext(this, contextRoot);
+      return httpContext;
+   }
+
+   /** Publish an JAXWS endpoint to the HTTP server */
+   public void publish(HttpContext context, Endpoint endpoint)
+   {
+      Class implClass = getImplementorClass(endpoint);
+
+      try
+      {
+         // Get the deployment model factory
+         SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+         DeploymentModelFactory depModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
+
+         // Create/Setup the deployment
+         Deployment dep = depModelFactory.newDeployment("endpoint-deployment", implClass.getClassLoader());
+         dep.setRuntimeClassLoader(dep.getInitialClassLoader());
+
+         // Create/Setup the service
+         Service service = dep.getService();
+         service.setContextRoot(context.getContextRoot());
+
+         // Create/Setup the endpoint
+         org.jboss.wsf.spi.deployment.Endpoint ep = depModelFactory.newEndpoint(implClass.getName());
+         service.addEndpoint(ep);
+
+         // Deploy using deployment aspects
+         WSFRuntimeLocator locator = spiProvider.getSPI(WSFRuntimeLocator.class);
+         WSFRuntime runtime = locator.locateRuntime(runtimeName);
+
+         runtime.create(dep);         
+         runtime.start(dep);
+      }
+      catch (RuntimeException rte)
+      {
+         throw rte;
+      }
+      catch (Exception ex)
+      {
+         throw new WebServiceException(ex);
+      }
+   }
+
+   /** Destroys an JAXWS endpoint on the HTTP server */
+   public void destroy(HttpContext context, Endpoint endpoint)
+   {
+      try
+      {
+      }
+      catch (RuntimeException rte)
+      {
+         throw rte;
+      }
+      catch (Exception ex)
+      {
+         throw new WebServiceException(ex);
+      }
+   }
+
+   private Class getImplementorClass(Endpoint endpoint)
+   {
+      Object implementor = endpoint.getImplementor();
+      Class implClass = (implementor instanceof Class ? (Class)implementor : implementor.getClass());
+      return implClass;
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/DeploymentAspectHttpServer.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapter.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapter.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapter.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,89 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.BeanMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData.PublishLocationAdapter;
+
+/**
+ * Build container independent application meta data 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2006
+ */
+public abstract class EJBArchiveMetaDataAdapter
+{
+   public EJBArchiveMetaData buildUnifiedApplicationMetaData(Deployment dep, DeploymentInfo di)
+   {
+      ApplicationMetaData apmd = (ApplicationMetaData)di.metaData;
+      dep.addAttachment(ApplicationMetaData.class, apmd);
+
+      EJBArchiveMetaData appMetaData = new EJBArchiveMetaData();
+      buildUnifiedBeanMetaData(appMetaData, apmd);
+      appMetaData.setConfigName(apmd.getConfigName());
+      appMetaData.setConfigFile(apmd.getConfigFile());
+      appMetaData.setWebServiceContextRoot(apmd.getWebServiceContextRoot());
+      appMetaData.setSecurityDomain(apmd.getSecurityDomain());
+      appMetaData.setPublishLocationAdapter(getPublishLocationAdpater(apmd));
+      return appMetaData;
+   }
+
+   protected PublishLocationAdapter getPublishLocationAdpater(final ApplicationMetaData apmd)
+   {
+      return new PublishLocationAdapter()
+      {
+         public String getWsdlPublishLocationByName(String name)
+         {
+            return apmd.getWsdlPublishLocationByName(name);
+         }
+      };
+   }
+
+   protected void buildUnifiedBeanMetaData(EJBArchiveMetaData umd, ApplicationMetaData metaData)
+   {
+      List<EJBMetaData> beans = new ArrayList<EJBMetaData>();
+      Iterator it = metaData.getEnterpriseBeans();
+      while (it.hasNext())
+      {
+         BeanMetaData bmd = (BeanMetaData)it.next();
+         EJBMetaData ubmd = buildUnifiedBeanMetaData(bmd);
+         if (ubmd != null)
+         {
+            beans.add(ubmd);
+         }
+      }
+      umd.setEnterpriseBeans(beans);
+   }
+
+   protected abstract EJBMetaData buildUnifiedBeanMetaData(BeanMetaData bmd);
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapter.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB21.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB21.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB21.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,81 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import org.jboss.metadata.BeanMetaData;
+import org.jboss.metadata.EjbPortComponentMetaData;
+import org.jboss.metadata.MessageDrivenMetaData;
+import org.jboss.metadata.SessionMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBSecurityMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.MDBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.SLSBMetaData;
+
+/**
+ * Build container independent application meta data 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2006
+ */
+public class EJBArchiveMetaDataAdapterEJB21 extends EJBArchiveMetaDataAdapter
+{
+   @Override
+   protected EJBMetaData buildUnifiedBeanMetaData(BeanMetaData bmd)
+   {
+      EJBMetaData ubmd = null;
+      if (bmd instanceof SessionMetaData)
+      {
+         ubmd = new SLSBMetaData();
+      }
+      else if (bmd instanceof MessageDrivenMetaData)
+      {
+         ubmd = new MDBMetaData();
+         ((MDBMetaData)ubmd).setDestinationJndiName(((MessageDrivenMetaData)bmd).getDestinationJndiName());
+      }
+
+      if (ubmd != null)
+      {
+         ubmd.setEjbName(bmd.getEjbName());
+         ubmd.setEjbClass(bmd.getEjbClass());
+         ubmd.setServiceEndpointInterface(bmd.getServiceEndpoint());
+         ubmd.setHome(bmd.getHome());
+         ubmd.setLocalHome(bmd.getLocalHome());
+         ubmd.setJndiName(bmd.getJndiName());
+         ubmd.setLocalJndiName(bmd.getLocalJndiName());
+
+         EjbPortComponentMetaData pcmd = bmd.getPortComponent();
+         if (pcmd != null)
+         {
+            ubmd.setPortComponentName(pcmd.getPortComponentName());
+            ubmd.setPortComponentURI(pcmd.getPortComponentURI());
+            EJBSecurityMetaData smd = new EJBSecurityMetaData();
+            smd.setAuthMethod(pcmd.getAuthMethod());
+            smd.setTransportGuarantee(pcmd.getTransportGuarantee());
+            smd.setSecureWSDLAccess(pcmd.getSecureWSDLAccess());
+            ubmd.setSecurityMetaData(smd);
+         }
+      }
+      return ubmd;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,142 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.jboss.ejb3.Ejb3ModuleMBean;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.metamodel.EnterpriseBean;
+import org.jboss.ejb3.mdb.MessagingContainer;
+import org.jboss.ejb3.stateless.StatelessContainer;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ActivationConfigPropertyMetaData;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanProxyCreationException;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.WSFDeploymentException;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.MDBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.SLSBMetaData;
+import org.jboss.wsf.spi.annotation.WebContext;
+
+/**
+ * Build container independent application meta data 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 14-Apr-2007
+ */
+public class EJBArchiveMetaDataAdapterEJB3
+{
+   // logging support
+   private static Logger log = Logger.getLogger(EJBArchiveMetaDataAdapterEJB3.class);
+
+   public static final String DEPLOYED_OBJECT = "org.jboss.ws.ejb3.deployed.object";
+
+   public EJBArchiveMetaData buildUnifiedApplicationMetaData(Deployment dep)
+   {
+      EJBArchiveMetaData appMetaData = null;
+
+      ObjectName oname = (ObjectName)dep.getProperty(DEPLOYED_OBJECT);
+
+      // jboss.j2ee:service=EJB3,module=some-ejb3.jar
+      if (oname != null && oname.getDomain().equals("jboss.j2ee") && "EJB3".equals(oname.getKeyProperty("service")))
+      {
+         appMetaData = new EJBArchiveMetaData();
+
+         Ejb3ModuleMBean ejb3Module = getEJB3Module(oname);
+
+         ArrayList<EJBMetaData> beans = new ArrayList<EJBMetaData>();
+         for (Object container : ejb3Module.getContainers().values())
+         {
+            if (container instanceof StatelessContainer)
+            {
+               StatelessContainer slc = (StatelessContainer)container;
+               SLSBMetaData usmd = new SLSBMetaData();
+               usmd.setEjbName(slc.getEjbName());
+               usmd.setEjbClass(slc.getBeanClassName());
+               beans.add(usmd);
+
+               buildWebServiceMetaData(appMetaData, slc);
+            }
+            else if (container instanceof MessagingContainer)
+            {
+               MessagingContainer mdb = (MessagingContainer)container;
+               MDBMetaData umdb = new MDBMetaData();
+               umdb.setEjbName(mdb.getEjbName());
+               umdb.setEjbClass(mdb.getBeanClassName());
+               Map props = mdb.getActivationConfigProperties();
+               if (props != null)
+               {
+                  ActivationConfigPropertyMetaData destProp = (ActivationConfigPropertyMetaData)props.get("destination");
+                  if (destProp != null)
+                  {
+                     String destination = destProp.getValue();
+                     umdb.setDestinationJndiName(destination);
+                  }
+               }
+               beans.add(umdb);
+
+               buildWebServiceMetaData(appMetaData, mdb);
+            }
+         }
+
+         appMetaData.setEnterpriseBeans(beans);
+      }
+      return appMetaData;
+   }
+
+   private void buildWebServiceMetaData(EJBArchiveMetaData appMetaData, EJBContainer container)
+   {
+      WebContext webContext = (WebContext)container.resolveAnnotation(WebContext.class);
+      if(webContext!=null)
+      {
+         appMetaData.setWebServiceContextRoot(webContext.contextRoot());         
+      }
+   }
+
+   static Ejb3ModuleMBean getEJB3Module(ObjectName objectName)
+   {
+      Ejb3ModuleMBean ejb3Module;
+      try
+      {
+         MBeanServer server = MBeanServerLocator.locateJBoss();
+         ejb3Module = (Ejb3ModuleMBean)MBeanProxy.get(Ejb3ModuleMBean.class, objectName, server);
+         if (ejb3Module == null)
+            throw new WSFDeploymentException("Cannot obtain EJB3 module: " + objectName);
+
+         return ejb3Module;
+      }
+      catch (MBeanProxyCreationException ex)
+      {
+         throw new WSFDeploymentException("Cannot obtain proxy to EJB3 module");
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/EJBArchiveMetaDataAdapterEJB3.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB21.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB21.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB21.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,184 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.lang.reflect.Method;
+import java.security.Principal;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.xml.rpc.handler.MessageContext;
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
+import javax.xml.ws.WebServiceException;
+
+import org.jboss.ejb.EjbModule;
+import org.jboss.ejb.Interceptor;
+import org.jboss.ejb.StatelessSessionContainer;
+import org.jboss.invocation.InvocationKey;
+import org.jboss.invocation.InvocationType;
+import org.jboss.invocation.PayloadKey;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.wsf.common.ObjectNameFactory;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.HandlerCallback;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationHandler;
+import org.jboss.wsf.spi.invocation.SecurityAdaptor;
+import org.jboss.wsf.spi.invocation.SecurityAdaptorFactory;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
+
+/**
+ * Handles invocations on EJB21 endpoints.
+ * Used with jboss40 and jboss42.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerEJB21 extends InvocationHandler
+{
+   // provide logging
+   private static final Logger log = Logger.getLogger(InvocationHandlerEJB21.class);
+
+   private String jndiName;
+   private MBeanServer server;
+   private ObjectName objectName;
+
+   /**
+    * Used from both 40 and 42.
+    * Therefore it's not package protected...    
+    */
+   public InvocationHandlerEJB21()
+   {
+   }
+
+   public Invocation createInvocation()
+   {
+      return new Invocation();
+   }
+
+   public void init(Endpoint ep)
+   {
+      String ejbName = ep.getShortName();
+      Deployment dep = ep.getService().getDeployment();
+      EJBArchiveMetaData apMetaData = dep.getAttachment(EJBArchiveMetaData.class);
+      EJBMetaData beanMetaData = (EJBMetaData)apMetaData.getBeanByEjbName(ejbName);
+      if (beanMetaData == null)
+         throw new WebServiceException("Cannot obtain ejb meta data for: " + ejbName);
+
+      // get the bean's JNDI name
+      jndiName = beanMetaData.getContainerObjectNameJndiName();
+      if (jndiName == null)
+         throw new WebServiceException("Cannot obtain JNDI name for: " + ejbName);
+
+      server = MBeanServerLocator.locateJBoss();
+      objectName = ObjectNameFactory.create("jboss.j2ee:jndiName=" + jndiName + ",service=EJB");
+      if (server.isRegistered(objectName) == false)
+         throw new WebServiceException("Cannot find service endpoint target: " + objectName);
+
+      // Dynamically add the service endpoint interceptor
+      // http://jira.jboss.org/jira/browse/JBWS-758
+      try
+      {
+         EjbModule ejbModule = (EjbModule)server.getAttribute(objectName, "EjbModule");
+         StatelessSessionContainer container = (StatelessSessionContainer)ejbModule.getContainer(ejbName);
+
+         boolean injectionPointFound = false;
+         Interceptor prev = container.getInterceptor();
+         while (prev != null && prev.getNext() != null)
+         {
+            Interceptor next = prev.getNext();
+            if (next.getNext() == null)
+            {
+               log.debug("Inject service endpoint interceptor after: " + prev.getClass().getName());
+               ServiceEndpointInterceptor sepInterceptor = new ServiceEndpointInterceptor();
+               prev.setNext(sepInterceptor);
+               sepInterceptor.setNext(next);
+               injectionPointFound = true;
+            }
+            prev = next;
+         }
+         if (injectionPointFound == false)
+            log.warn("Cannot service endpoint interceptor injection point");
+      }
+      catch (Exception ex)
+      {
+         log.warn("Cannot add service endpoint interceptor", ex);
+      }
+
+   }
+
+   public void invoke(Endpoint ep, Invocation inv) throws Exception
+   {
+      log.debug("Invoke: " + inv.getJavaMethod().getName());
+
+      // invoke on the container
+      try
+      {
+         // setup the invocation
+         org.jboss.invocation.Invocation jbInv = getMBeanInvocation(inv);
+
+         String[] sig = { org.jboss.invocation.Invocation.class.getName() };
+         Object retObj = server.invoke(objectName, "invoke", new Object[] { jbInv }, sig);
+         inv.setReturnValue(retObj);
+      }
+      catch (Exception e)
+      {
+         handleInvocationException(e);
+      }
+   }
+
+   private org.jboss.invocation.Invocation getMBeanInvocation(Invocation inv)
+   {
+      // EJB2.1 endpoints will only get an JAXRPC context 
+      MessageContext msgContext = inv.getInvocationContext().getAttachment(MessageContext.class);
+      if (msgContext == null)
+         throw new IllegalStateException("Cannot obtain MessageContext");
+
+      SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+      SecurityAdaptor securityAdaptor = spiProvider.getSPI(SecurityAdaptorFactory.class).newSecurityAdapter();
+      Principal principal = securityAdaptor.getPrincipal();
+      Object credential = securityAdaptor.getCredential();
+
+      Method method = inv.getJavaMethod();
+      Object[] args = inv.getArgs();
+      org.jboss.invocation.Invocation jbInv = new org.jboss.invocation.Invocation(null, method, args, null, principal, credential);
+
+      HandlerCallback callback = inv.getInvocationContext().getAttachment(HandlerCallback.class);
+      if (callback == null)
+         throw new IllegalStateException("Cannot obtain HandlerCallback");
+
+      jbInv.setValue(InvocationKey.SOAP_MESSAGE_CONTEXT, msgContext);
+      jbInv.setValue(InvocationKey.SOAP_MESSAGE, ((SOAPMessageContext)msgContext).getMessage());
+      jbInv.setType(InvocationType.SERVICE_ENDPOINT);
+      jbInv.setValue(HandlerCallback.class.getName(), callback, PayloadKey.TRANSIENT);
+      jbInv.setValue(Invocation.class.getName(), inv, PayloadKey.TRANSIENT);
+
+      return jbInv;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB3.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB3.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB3.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,145 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.lang.reflect.Method;
+
+import javax.ejb.EJBContext;
+import javax.management.ObjectName;
+import javax.xml.ws.WebServiceException;
+
+import org.jboss.aop.Dispatcher;
+import org.jboss.aop.MethodInfo;
+import org.jboss.ejb3.BeanContext;
+import org.jboss.ejb3.BeanContextLifecycleCallback;
+import org.jboss.ejb3.EJBContainerInvocation;
+import org.jboss.ejb3.stateless.StatelessBeanContext;
+import org.jboss.ejb3.stateless.StatelessContainer;
+import org.jboss.injection.lang.reflect.BeanProperty;
+import org.jboss.wsf.common.ObjectNameFactory;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.ExtensibleWebServiceContext;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationType;
+import org.jboss.wsf.spi.invocation.WebServiceContextFactory;
+
+/**
+ * Handles invocations on EJB3 endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerEJB3 extends AbstractInvocationHandler
+{
+   private ObjectName objectName;
+
+   InvocationHandlerEJB3()
+   {
+   }
+
+   public Invocation createInvocation()
+   {
+      return new Invocation();
+   }
+
+   public void init(Endpoint ep)
+   {
+      String ejbName = ep.getShortName();
+      ArchiveDeployment dep = (ArchiveDeployment)ep.getService().getDeployment();
+      String nameStr = "jboss.j2ee:name=" + ejbName + ",service=EJB3,jar=" + dep.getSimpleName();
+      if (dep.getParent() != null)
+      {
+         nameStr += ",ear=" + dep.getParent().getSimpleName();
+      }
+
+      objectName = ObjectNameFactory.create(nameStr.toString());
+
+      Dispatcher dispatcher = Dispatcher.singleton;
+      if (dispatcher.getRegistered(objectName.getCanonicalName()) == null)
+         throw new WebServiceException("Cannot find service endpoint target: " + objectName);
+   }
+
+   public void invoke(Endpoint ep, Invocation epInv) throws Exception
+   {
+      try
+      {
+         Dispatcher dispatcher = Dispatcher.singleton;
+         StatelessContainer container = (StatelessContainer)dispatcher.getRegistered(objectName.getCanonicalName());
+         Class beanClass = container.getBeanClass();
+
+         Method method = getImplMethod(beanClass, epInv.getJavaMethod());
+         Object[] args = epInv.getArgs();
+
+         MethodInfo info = container.getMethodInfo(method);
+         EJBContainerInvocation<StatelessContainer, StatelessBeanContext> ejb3Inv = new EJBContainerInvocation<StatelessContainer, StatelessBeanContext>(info);
+         ejb3Inv.setAdvisor(container);
+         ejb3Inv.setArguments(args);
+         ejb3Inv.setContextCallback(new CallbackImpl(epInv));
+
+         Object retObj = ejb3Inv.invokeNext();
+
+         epInv.setReturnValue(retObj);
+      }
+      catch (Throwable th)
+      {
+         handleInvocationException(th);
+      }
+   }
+
+   static class CallbackImpl implements BeanContextLifecycleCallback
+   {
+      private javax.xml.ws.handler.MessageContext jaxwsMessageContext;
+      private javax.xml.rpc.handler.MessageContext jaxrpcMessageContext;
+
+      public CallbackImpl(Invocation epInv)
+      {
+         jaxrpcMessageContext = epInv.getInvocationContext().getAttachment(javax.xml.rpc.handler.MessageContext.class);
+         jaxwsMessageContext = epInv.getInvocationContext().getAttachment(javax.xml.ws.handler.MessageContext.class);
+      }
+
+      public void attached(BeanContext beanCtx)
+      {
+         StatelessBeanContext sbc = (StatelessBeanContext)beanCtx;
+         sbc.setMessageContextJAXRPC(jaxrpcMessageContext);
+
+         EJBContext ejbCtx = beanCtx.getEJBContext();
+         SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+         WebServiceContextFactory factory = spiProvider.getSPI(WebServiceContextFactory.class);
+         ExtensibleWebServiceContext wsContext = factory.newWebServiceContext(InvocationType.JAXWS_EJB3, jaxwsMessageContext);
+         wsContext.addAttachment(EJBContext.class, ejbCtx);
+         sbc.setWebServiceContext(wsContext);
+      }
+
+      public void released(BeanContext beanCtx)
+      {
+         StatelessBeanContext sbc = (StatelessBeanContext)beanCtx;
+         sbc.setMessageContextJAXRPC(null);
+
+         sbc.setWebServiceContext(null);
+      }
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerEJB3.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerFactoryImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerFactoryImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerFactoryImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,64 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.invocation.*;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ *         Created: Jul 19, 2007
+ */
+public class InvocationHandlerFactoryImpl extends InvocationHandlerFactory
+{
+   public InvocationHandler newInvocationHandler(InvocationType type)
+   {
+     InvocationHandler handler = null;
+
+      switch(type)
+      {
+         case JAXRPC_JSE:
+            handler = new InvocationHandlerJAXRPC();
+            break;
+         case JAXRPC_EJB21:
+            handler = new InvocationHandlerEJB21();
+            break;
+         case JAXRPC_MDB21:
+            handler = new InvocationHandlerMDB21();
+            break;
+         case JAXWS_JSE:
+            handler = new InvocationHandlerJAXWS();
+            break;
+         case JAXWS_EJB3:
+            handler = new InvocationHandlerEJB3();
+            break;
+         case JAXWS_MDB3:
+            handler = new InvocationHandlerMDB3();
+            break;
+      }
+
+      if(null == handler)
+         throw new IllegalArgumentException("Unable to resolve spi.invocation.InvocationHandler for type " +type);
+
+      return handler;
+   }
+
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXRPC.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXRPC.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXRPC.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import javax.xml.rpc.server.ServiceLifecycle;
+import javax.xml.rpc.server.ServletEndpointContext;
+
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationContext;
+
+/**
+ * Handles invocations on JSE endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerJAXRPC extends InvocationHandlerJSE
+{
+   public void invoke(Endpoint ep, Invocation epInv) throws Exception
+   {
+      try
+      {
+         Object targetBean = getTargetBean(ep, epInv);
+
+         InvocationContext invContext = epInv.getInvocationContext();
+         if (targetBean instanceof ServiceLifecycle)
+         {
+            ServletEndpointContext sepContext = invContext.getAttachment(ServletEndpointContext.class);
+            if (sepContext != null)
+               ((ServiceLifecycle)targetBean).init(sepContext);
+         }
+
+         try
+         {
+            super.invoke(ep, epInv);
+         }
+         finally
+         {
+            if (targetBean instanceof ServiceLifecycle)
+            {
+               ((ServiceLifecycle)targetBean).destroy();
+            }
+         }
+      }
+      catch (Exception e)
+      {
+         handleInvocationException(e);
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXRPC.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXWS.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXWS.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXWS.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,34 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+/**
+ * Handles invocations on JSE endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerJAXWS extends InvocationHandlerJSE
+{
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJAXWS.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,129 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.lang.reflect.Method;
+
+import javax.xml.ws.WebServiceContext;
+
+import org.jboss.wsf.common.JavaUtils;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationContext;
+import org.jboss.wsf.spi.invocation.InvocationHandler;
+import org.jboss.wsf.spi.invocation.ResourceInjector;
+import org.jboss.wsf.spi.invocation.ResourceInjectorFactory;
+
+/**
+ * Handles invocations on JSE endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerJSE extends InvocationHandler
+{
+   private SPIProvider spiProvider;
+   private ResourceInjectorFactory resourceInjectorFactory;
+
+   public InvocationHandlerJSE()
+   {
+      spiProvider = SPIProviderResolver.getInstance().getProvider();
+      resourceInjectorFactory = spiProvider.getSPI(ResourceInjectorFactory.class);
+   }
+
+   public Invocation createInvocation()
+   {
+      return new Invocation();
+   }
+
+   public void init(Endpoint ep)
+   {
+   }
+
+   protected Object getTargetBean(Endpoint ep, Invocation epInv)
+   {
+      InvocationContext invCtx = epInv.getInvocationContext();
+      Object targetBean = invCtx.getTargetBean();
+      if (targetBean == null)
+      {
+         try
+         {
+            Class epImpl = ep.getTargetBeanClass();
+            targetBean = epImpl.newInstance();
+            invCtx.setTargetBean(targetBean);
+         }
+         catch (Exception ex)
+         {
+            throw new IllegalStateException("Cannot get target bean instance", ex);
+         }
+      }
+      return targetBean;
+   }
+
+   public void invoke(Endpoint ep, Invocation epInv) throws Exception
+   {
+      try
+      {
+         Object targetBean = getTargetBean(ep, epInv);
+
+         InvocationContext invContext = epInv.getInvocationContext();
+         WebServiceContext wsContext = invContext.getAttachment(WebServiceContext.class);
+         if (wsContext != null)
+         {
+
+            ResourceInjector injector = resourceInjectorFactory.newResourceInjector();
+            injector.inject(targetBean, wsContext);
+         }
+
+         Method method = getImplMethod(targetBean.getClass(), epInv.getJavaMethod());
+         Object retObj = method.invoke(targetBean, epInv.getArgs());
+         epInv.setReturnValue(retObj);
+      }
+      catch (Exception e)
+      {
+         handleInvocationException(e);
+      }
+   }
+
+   protected Method getImplMethod(Class implClass, Method seiMethod) throws ClassNotFoundException, NoSuchMethodException
+   {
+      String methodName = seiMethod.getName();
+      Class[] paramTypes = seiMethod.getParameterTypes();
+      for (int i = 0; i < paramTypes.length; i++)
+      {
+         Class paramType = paramTypes[i];
+         if (JavaUtils.isPrimitive(paramType) == false)
+         {
+            String paramTypeName = paramType.getName();
+            paramType = JavaUtils.loadJavaType(paramTypeName);
+            paramTypes[i] = paramType;
+         }
+      }
+
+      Method implMethod = implClass.getMethod(methodName, paramTypes);
+      return implMethod;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB21.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB21.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB21.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.lang.reflect.Method;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationContext;
+
+/**
+ * Handles invocations on MDB EJB21 endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerMDB21 extends AbstractInvocationHandler
+{
+   // provide logging
+   private static final Logger log = Logger.getLogger(InvocationHandlerMDB21.class);
+
+   public Invocation createInvocation()
+   {
+      return new Invocation();
+   }
+
+   public void init(Endpoint ep)
+   {
+
+   }
+
+   public void invoke(Endpoint ep, Invocation epInv) throws Exception
+   {
+      log.debug("Invoke: " + epInv.getJavaMethod().getName());
+
+      try
+      {
+         InvocationContext invCtx = epInv.getInvocationContext();
+         Object targetBean = invCtx.getTargetBean();
+         if (targetBean == null)
+         {
+            try
+            {
+               Class epImpl = ep.getTargetBeanClass();
+               targetBean = epImpl.newInstance();
+               invCtx.setTargetBean(targetBean);
+            }
+            catch (Exception ex)
+            {
+               throw new IllegalStateException("Cannot get target bean instance", ex);
+            }
+         }
+         Class implClass = targetBean.getClass();
+         Method seiMethod = epInv.getJavaMethod();
+         Method implMethod = getImplMethod(implClass, seiMethod);
+
+         Object[] args = epInv.getArgs();
+         Object retObj = implMethod.invoke(targetBean, args);
+         epInv.setReturnValue(retObj);
+      }
+      catch (Exception e)
+      {
+         handleInvocationException(e);
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB3.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB3.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB3.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,88 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.lang.reflect.Method;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.InvocationContext;
+
+/**
+ * Handles invocations on MDB EJB3 endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerMDB3 extends AbstractInvocationHandler
+{
+   // provide logging
+   private static final Logger log = Logger.getLogger(InvocationHandlerMDB3.class);
+
+   public Invocation createInvocation()
+   {
+      return new Invocation();
+   }
+
+   public void init(Endpoint ep)
+   {
+
+   }
+
+   public void invoke(Endpoint ep, Invocation epInv) throws Exception
+   {
+      log.debug("Invoke: " + epInv.getJavaMethod().getName());
+
+      try
+      {
+         InvocationContext invCtx = epInv.getInvocationContext();
+         Object targetBean = invCtx.getTargetBean();
+         if (targetBean == null)
+         {
+            try
+            {
+               Class epImpl = ep.getTargetBeanClass();
+               targetBean = epImpl.newInstance();
+               invCtx.setTargetBean(targetBean);
+            }
+            catch (Exception ex)
+            {
+               throw new IllegalStateException("Cannot get target bean instance", ex);
+            }
+         }
+         Class implClass = targetBean.getClass();
+         Method seiMethod = epInv.getJavaMethod();
+         Method implMethod = getImplMethod(implClass, seiMethod);
+
+         Object[] args = epInv.getArgs();
+         Object retObj = implMethod.invoke(targetBean, args);
+         epInv.setReturnValue(retObj);
+      }
+      catch (Exception e)
+      {
+         handleInvocationException(e);
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/InvocationHandlerMDB3.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookEJB21.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookEJB21.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookEJB21.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,108 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.BeanMetaData;
+import org.jboss.wsf.common.URLLoaderAdapter;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.metadata.webservices.PortComponentMetaData;
+import org.jboss.wsf.spi.metadata.webservices.WebserviceDescriptionMetaData;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+
+/**
+ * A deployer JAXRPC EJB21 Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXRPCDeployerHookEJB21 extends AbstractDeployerHookEJB
+{
+   /** Get the deployemnt type this deployer can handle 
+    */
+   public DeploymentType getDeploymentType()
+   {
+      return DeploymentType.JAXRPC_EJB21;
+   }
+
+   @Override
+   public Deployment createDeployment(DeploymentInfo di)
+   {
+      ArchiveDeployment dep = newDeployment(di);
+      dep.setRootFile(new URLLoaderAdapter(di.localUrl));
+      dep.setRuntimeClassLoader(di.ucl);
+      dep.setType(getDeploymentType());
+
+      Service service = dep.getService();
+
+      ApplicationMetaData appmd = (ApplicationMetaData)di.metaData;
+      if (appmd == null)
+         throw new IllegalStateException("Deployment unit does not contain application meta data");
+
+      WebservicesMetaData wsMetaData = getWebservicesMetaData(di, null);
+      if (wsMetaData == null)
+         throw new IllegalStateException("Deployment unit does not contain webservices meta data");
+
+      // Copy the attachments
+      dep.addAttachment(WebservicesMetaData.class, wsMetaData);
+      dep.addAttachment(ApplicationMetaData.class, appmd);
+
+      for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions())
+      {
+         for (PortComponentMetaData pcmd : wsd.getPortComponents())
+         {
+            String ejbLink = pcmd.getEjbLink();
+            if (ejbLink == null)
+               throw new IllegalStateException("ejb-link cannot be null");
+
+            BeanMetaData beanMetaData = appmd.getBeanByEjbName(ejbLink);
+            if (beanMetaData == null)
+               throw new IllegalStateException("Cannot obtain bean meta data for: " + ejbLink);
+
+            String ejbClass = beanMetaData.getEjbClass();
+            
+            // Create the endpoint
+            Endpoint ep = newEndpoint(ejbClass);
+            ep.setShortName(ejbLink);
+            service.addEndpoint(ep);
+         }
+      }
+      return dep;
+   }
+
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      if ((unit.metaData instanceof ApplicationMetaData) == false)
+         return false;
+
+      WebservicesMetaData wsMetaData = getWebservicesMetaData(unit, "META-INF/webservices.xml");
+      return wsMetaData != null;
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookEJB21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPostJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPostJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPostJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,69 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.DeploymentException;
+
+/**
+ * A deployer JAXRPC JSE Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXRPCDeployerHookPostJSE extends DeployerHookPostJSE
+{
+
+   public void deploy(DeploymentInfo unit) throws DeploymentException
+   {
+      if (ignoreDeployment(unit))
+         return;
+
+      if (!ignoreDeployment(unit) && isWebServiceDeployment(unit))
+      {
+         log.debug("deploy: " + unit.shortName);
+         Deployment dep = getDeployment(unit);
+         if(null==dep || Deployment.DeploymentState.CREATED != dep.getState())
+            throw new DeploymentException("Create step is missing");
+
+         getRuntime().start(dep);
+      }
+   }
+
+   /** Get the deployment type this deployer can handle
+    */
+   public Deployment.DeploymentType getDeploymentType()
+   {
+      return Deployment.DeploymentType.JAXRPC_JSE;
+   }
+
+
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      WebservicesMetaData wsMetaData = getWebservicesMetaData(unit, "WEB-INF/webservices.xml");
+      return (wsMetaData!=null && super.isWebServiceDeployment(unit));
+   }
+
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPostJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,149 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import java.util.Iterator;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.wsf.common.URLLoaderAdapter;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.metadata.webservices.PortComponentMetaData;
+import org.jboss.wsf.spi.metadata.webservices.WebserviceDescriptionMetaData;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+
+/**
+ * A deployer JAXRPC JSE Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXRPCDeployerHookPreJSE extends AbstractDeployerHookJSE
+{
+
+   public void undeploy(DeploymentInfo unit)
+   {
+      // the post hook deals with undeployment 
+   }
+
+   /** Get the deployemnt type this deployer can handle
+    */
+   public DeploymentType getDeploymentType()
+   {
+      return DeploymentType.JAXRPC_JSE;
+   }
+
+   /**
+    * Create an endpoint for every servlet-link in webservices.xml
+    */
+   @Override
+   public Deployment createDeployment(DeploymentInfo di)
+   {
+      ArchiveDeployment dep = newDeployment(di);
+      dep.setRootFile(new URLLoaderAdapter(di.localUrl));
+      dep.setRuntimeClassLoader(null);
+      dep.setType(getDeploymentType());
+
+      Service service = dep.getService();
+
+      WebMetaData webMetaData = (WebMetaData)di.metaData;
+      if (webMetaData == null)
+         throw new IllegalStateException("Deployment unit does not contain web meta data");
+
+      WebservicesMetaData wsMetaData = getWebservicesMetaData(di, "WEB-INF/webservices.xml");
+      if (wsMetaData == null)
+         throw new IllegalStateException("Deployment unit does not contain webservices meta data");
+
+      // Copy the attachments
+      dep.addAttachment(WebservicesMetaData.class, wsMetaData);
+      dep.addAttachment(WebMetaData.class, webMetaData);
+
+      for (WebserviceDescriptionMetaData wsd : wsMetaData.getWebserviceDescriptions())
+      {
+         for (PortComponentMetaData pcmd : wsd.getPortComponents())
+         {
+            String servletLink = pcmd.getServletLink();
+            if (servletLink == null)
+               throw new IllegalStateException("servlet-link cannot be null");
+
+            Servlet servlet = getServletForName(webMetaData, servletLink);
+            String servletClass = servlet.getServletClass();
+
+            try
+            {
+               ClassLoader loader = dep.getInitialClassLoader();
+               Class<?> epBean = loader.loadClass(servletClass.trim());
+
+               // If this is a servlet we defer the the bean creation 
+               if (javax.servlet.Servlet.class.isAssignableFrom(epBean))
+                  servletClass = null;
+            }
+            catch (ClassNotFoundException ex)
+            {
+               log.warn("Cannot load servlet class: " + servletClass);
+            }
+
+            // Create the endpoint
+            Endpoint ep = newEndpoint(servletClass);
+            ep.setShortName(servletLink);
+            service.addEndpoint(ep);
+         }
+      }
+
+      return dep;
+   }
+
+   private Servlet getServletForName(WebMetaData wmd, String servletLink)
+   {
+      Iterator it = wmd.getServletClassMap().entrySet().iterator();
+      while (it.hasNext())
+      {
+         Map.Entry entry = (Entry)it.next();
+         String servletName = (String)entry.getKey();
+         String servletClass = (String)entry.getValue();
+         if (servletLink.equals(servletName))
+         {
+            return new Servlet(servletName, servletClass);
+         }
+      }
+      throw new IllegalStateException("Cannot find servlet for link: " + servletLink);
+   }
+
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      if (super.isWebServiceDeployment(unit) == false
+        || unit.context.get("org.jboss.ws.ejbwebapp")!=null) // Reject EJB im-memory deployments)
+         return false;
+
+      WebservicesMetaData wsMetaData = getWebservicesMetaData(unit, "WEB-INF/webservices.xml");
+      return wsMetaData != null;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXRPCDeployerHookPreJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookEJB3.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookEJB3.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookEJB3.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,137 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceProvider;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.DeploymentException;
+import org.jboss.ejb3.EJBContainer;
+import org.jboss.ejb3.Ejb3ModuleMBean;
+import org.jboss.ejb3.mdb.MessagingContainer;
+import org.jboss.ejb3.stateless.StatelessContainer;
+import org.jboss.wsf.common.URLLoaderAdapter;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+
+/**
+ * A deployer JAXWS EJB3 Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXWSDeployerHookEJB3 extends AbstractDeployerHookEJB
+{
+   /** Get the deployemnt type this deployer can handle 
+    */
+   public DeploymentType getDeploymentType()
+   {
+      return DeploymentType.JAXWS_EJB3;
+   }
+
+   @Override
+   public Deployment createDeployment(DeploymentInfo di)
+   {
+      ArchiveDeployment dep = newDeployment(di);
+      dep.setRootFile(new URLLoaderAdapter(di.localUrl));
+      dep.setRuntimeClassLoader(di.ucl);
+      dep.setType(getDeploymentType());
+
+      Service service = dep.getService();
+
+      Ejb3ModuleMBean ejb3Module = EJBArchiveMetaDataAdapterEJB3.getEJB3Module(di.deployedObject);
+      for (Object manager : ejb3Module.getContainers().values())
+      {
+         if (manager instanceof EJBContainer)
+         {
+            EJBContainer container = (EJBContainer)manager;
+            if (isWebServiceBean(container))
+            {
+               String ejbName = container.getEjbName();
+               String epBean = container.getBeanClassName();
+
+               // Create the endpoint
+               Endpoint ep = newEndpoint(epBean);
+               ep.setShortName(ejbName);
+               service.addEndpoint(ep);
+            }
+         }
+      }
+
+      return dep;
+   }
+
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      boolean isWebserviceDeployment = false;
+
+      // Check if the ejb3 contains annotated endpoints
+      Ejb3ModuleMBean ejb3Module = EJBArchiveMetaDataAdapterEJB3.getEJB3Module(unit.deployedObject);
+      for (Object manager : ejb3Module.getContainers().values())
+      {
+         if (manager instanceof EJBContainer)
+         {
+            EJBContainer container = (EJBContainer)manager;
+            if (isWebServiceBean(container))
+            {
+               isWebserviceDeployment = true;
+               break;
+            }
+         }
+      }
+
+      return isWebserviceDeployment;
+   }
+
+   private boolean isWebServiceBean(EJBContainer container)
+   {
+      boolean isWebServiceBean = false;
+      if (container instanceof StatelessContainer || container instanceof MessagingContainer)
+      {
+         boolean isWebService = container.resolveAnnotation(WebService.class) != null;
+         boolean isWebServiceProvider = container.resolveAnnotation(WebServiceProvider.class) != null;
+         isWebServiceBean = isWebService || isWebServiceProvider;
+      }
+      return isWebServiceBean;
+   }
+
+
+   public void deploy(DeploymentInfo unit) throws DeploymentException
+   {
+      super.deploy(unit);
+
+      Deployment dep = getDeployment(unit);
+      if (dep == null)
+      {
+         throw new IllegalStateException("Deployment missing in start phase");
+      }
+
+      getRuntime().start(dep);
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookEJB3.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPostJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPostJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPostJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.DeploymentException;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public class JAXWSDeployerHookPostJSE extends DeployerHookPostJSE
+{
+
+
+   public void deploy(DeploymentInfo unit) throws DeploymentException
+   {
+      if (ignoreDeployment(unit))
+         return;
+
+      if (!ignoreDeployment(unit) && isWebServiceDeployment(unit))
+      {
+         log.debug("deploy: " + unit.shortName);
+         Deployment dep = getDeployment(unit);
+
+         if (null == dep || Deployment.DeploymentState.CREATED != dep.getState())
+            throw new DeploymentException("Create step failed");
+       
+         getRuntime().start(dep);                  
+      }
+   }
+
+   /** Get the deployment type this deployer can handle
+    */
+   public Deployment.DeploymentType getDeploymentType()
+   {
+      return Deployment.DeploymentType.JAXWS_JSE;
+   }
+
+   /**
+    * Reject JAX-RPC deployments
+    */
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      WebservicesMetaData wsMetaData = getWebservicesMetaData(unit, "WEB-INF/webservices.xml"); // JAX-RPC artifact
+      return (wsMetaData == null && super.isWebServiceDeployment(unit));
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPostJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,171 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceProvider;
+import javax.ejb.Stateless;
+import javax.ejb.Stateful;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.wsf.common.URLLoaderAdapter;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+
+/**
+ * A deployer JAXWS JSE Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXWSDeployerHookPreJSE extends AbstractDeployerHookJSE
+{
+
+
+   public void undeploy(DeploymentInfo unit)
+   {
+      // let the post deployer hook deal with undeployment
+   }
+
+   /** Get the deployemnt type this deployer can handle
+    */
+   public DeploymentType getDeploymentType()
+   {
+      return DeploymentType.JAXWS_JSE;
+   }
+
+   @Override
+   public Deployment createDeployment(DeploymentInfo di)
+   {
+      ArchiveDeployment dep = newDeployment(di);
+      dep.setRootFile(new URLLoaderAdapter(di.localUrl));
+      dep.setRuntimeClassLoader(null);
+      dep.setType(getDeploymentType());
+
+      Service service = dep.getService();
+
+      WebMetaData webMetaData = (WebMetaData)di.metaData;
+      if (webMetaData == null)
+         throw new IllegalStateException("Deployment unit does not contain web meta data");
+
+      // Copy the attachments
+      dep.addAttachment(WebMetaData.class, webMetaData);
+
+      List<Servlet> servlets = getEndpointBeans(webMetaData, di.annotationsCl);
+      for (Servlet servlet : servlets)
+      {
+         String servletName = servlet.getServletName();
+         String servletClass = servlet.getServletClass();
+
+         // Create the endpoint
+         Endpoint ep = newEndpoint(servletClass);
+         ep.setShortName(servletName);
+         service.addEndpoint(ep);
+      }
+
+      return dep;
+   }
+
+   @Override
+   public boolean isWebServiceDeployment(DeploymentInfo unit)
+   {
+      if (super.isWebServiceDeployment(unit) == false
+        || unit.context.get("org.jboss.ws.ejbwebapp")!=null) // Reject EJB im-memory deployments
+         return false;
+
+      boolean isWebServiceDeployment = false;
+      try
+      {
+         WebMetaData webMetaData = (WebMetaData)unit.metaData;
+         List<Servlet> servlets = getEndpointBeans(webMetaData, unit.annotationsCl);
+         isWebServiceDeployment = servlets.size() > 0;
+      }
+      catch (Exception ex)
+      {
+         log.error("Cannot process web deployment", ex);
+      }
+
+      return isWebServiceDeployment;
+   }
+
+   private List<Servlet> getEndpointBeans(WebMetaData webMetaData, ClassLoader loader)
+   {
+      List<Servlet> servlets = new ArrayList<Servlet>();
+      Iterator it = webMetaData.getServletClassMap().entrySet().iterator();
+      while (it.hasNext())
+      {
+         Map.Entry entry = (Entry)it.next();
+         String servletName = (String)entry.getKey();
+         String servletClassName = (String)entry.getValue();
+
+         // Skip JSPs
+         if (servletClassName == null || servletClassName.length() == 0)
+            continue;
+
+         try
+         {
+
+            // [JBWS-1762] works on re-written web.xml
+            // In this case we grap the endpoint classname from the init param
+            Map initParams = webMetaData.getServletParams(servletName);
+            Iterator iterator = initParams.keySet().iterator();
+            while(iterator.hasNext())
+            {
+               String paramName = (String)iterator.next();
+               if(Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
+               {
+                  servletClassName = (String)initParams.get(paramName);                  
+               }
+            }
+
+            Class<?> servletClass = loader.loadClass(servletClassName.trim());
+            boolean isWebService = servletClass.isAnnotationPresent(WebService.class);
+            boolean isWebServiceProvider = servletClass.isAnnotationPresent(WebServiceProvider.class);
+
+            if (isWebService || isWebServiceProvider)
+            {
+               // works on standard JSR 109 deployments
+               servlets.add(new Servlet(servletName, servletClassName));
+            }
+
+         }
+         catch (ClassNotFoundException ex)
+         {
+            log.warn("Cannot load servlet class: " + servletClassName);
+            continue;
+         }
+      }
+      return servlets;
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JAXWSDeployerHookPreJSE.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,151 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+import java.util.Map.Entry;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.J2eeApplicationMetaData;
+import org.jboss.deployment.J2eeModuleMetaData;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.metadata.WebSecurityMetaData;
+import org.jboss.metadata.WebSecurityMetaData.WebResourceCollection;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.JSESecurityMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData.PublishLocationAdapter;
+import org.jboss.wsf.spi.metadata.j2ee.JSESecurityMetaData.JSEResourceCollection;
+
+/**
+ * Build container independent web meta data 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2006
+ */
+public class JSEArchiveMetaDataAdapter
+{
+   public JSEArchiveMetaData buildUnifiedWebMetaData(Deployment dep, DeploymentInfo di)
+   {
+      String contextRoot = null;
+      
+      WebMetaData wmd = (WebMetaData)di.metaData;
+      dep.addAttachment(WebMetaData.class, wmd);
+      
+      if (di.parent != null)
+      {
+         J2eeApplicationMetaData appmd = (J2eeApplicationMetaData)di.parent.metaData;
+         if(appmd!=null) // An ESB case, They deploy a *.war inside *.esb 
+         {
+            Iterator it = appmd.getModules();
+            while (it.hasNext())
+            {
+               J2eeModuleMetaData module = (J2eeModuleMetaData)it.next();
+               if (module.getFileName().equals(dep.getSimpleName()))
+                  contextRoot = module.getWebContext();
+            }
+         }
+      }
+      
+      if (contextRoot == null)
+         contextRoot = wmd.getContextRoot();
+      
+      JSEArchiveMetaData webMetaData = new JSEArchiveMetaData();
+      webMetaData.setContextRoot(contextRoot);
+      webMetaData.setServletMappings(wmd.getServletMappings());
+      webMetaData.setServletClassNames(getServletClassMap(wmd));
+      webMetaData.setConfigName(wmd.getConfigName());
+      webMetaData.setConfigFile(wmd.getConfigFile());
+      Map contextParams = wmd.getContextParams();
+      if (contextParams.containsKey("jbossws-config-name"))
+         webMetaData.setConfigName((String)contextParams.get("jbossws-config-name"));
+      if (contextParams.containsKey("jbossws-config-file"))
+         webMetaData.setConfigFile((String)contextParams.get("jbossws-config-file"));
+      webMetaData.setSecurityDomain(wmd.getSecurityDomain());
+      webMetaData.setPublishLocationAdapter(getPublishLocationAdpater(wmd));
+      webMetaData.setSecurityMetaData(getSecurityMetaData(wmd.getSecurityContraints()));
+      
+      return webMetaData;
+   }
+
+   private PublishLocationAdapter getPublishLocationAdpater(final WebMetaData wmd)
+   {
+      return new PublishLocationAdapter()
+      {
+         public String getWsdlPublishLocationByName(String name)
+         {
+            return wmd.getWsdlPublishLocationByName(name);
+         }
+      };
+   }
+
+   private List<JSESecurityMetaData> getSecurityMetaData(final Iterator securityConstraints)
+   {
+      ArrayList<JSESecurityMetaData> unifiedsecurityMetaData = new ArrayList<JSESecurityMetaData>();
+
+      while (securityConstraints.hasNext())
+      {
+         WebSecurityMetaData securityMetaData = (WebSecurityMetaData)securityConstraints.next();
+
+         JSESecurityMetaData current = new JSESecurityMetaData();
+         unifiedsecurityMetaData.add(current);
+
+         current.setTransportGuarantee(securityMetaData.getTransportGuarantee());
+
+         HashMap resources = securityMetaData.getWebResources();
+         for (Object webResourceObj : resources.values())
+         {
+            WebResourceCollection webResource = (WebResourceCollection)webResourceObj;
+            JSEResourceCollection currentResource = current.addWebResource(webResource.getName());
+            for (String currentPattern : webResource.getUrlPatterns())
+            {
+               currentResource.addPattern(currentPattern);
+            }
+         }
+
+      }
+
+      return unifiedsecurityMetaData;
+   }
+
+   private Map<String, String> getServletClassMap(WebMetaData wmd)
+   {
+      Map<String, String> mappings = new HashMap<String, String>();
+      Iterator it = wmd.getServletClassMap().entrySet().iterator();
+      while (it.hasNext())
+      {
+         Map.Entry entry = (Entry)it.next();
+         String servletName = (String)entry.getKey();
+         String servletClass = (String)entry.getValue();
+         // Skip JSPs
+         if (servletClass != null)
+            mappings.put(servletName, servletClass);
+      }
+      return mappings;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/JSEArchiveMetaDataAdapter.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/LazyAssemblyWSFRuntime.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/LazyAssemblyWSFRuntime.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/LazyAssemblyWSFRuntime.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,143 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.WSFRuntime;
+import org.jboss.wsf.spi.ComposableRuntime;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.invocation.RequestHandlerFactory;
+import org.jboss.wsf.spi.invocation.InvocationHandlerFactory;
+import org.jboss.wsf.spi.management.EndpointRegistry;
+import org.jboss.wsf.spi.transport.TransportManagerFactory;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspectManager;
+
+/**
+ * Lazy assembly required because MC 1.0.x doesn't support IOC
+ * across different beans configurations.
+ * 
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class LazyAssemblyWSFRuntime implements WSFRuntime, ComposableRuntime
+{
+
+   private boolean assembled;
+   private String runtimeName;
+   private TransportManagerFactory tmf;
+   private RequestHandlerFactory rhf;
+   private InvocationHandlerFactory ihf;
+   private DeploymentAspectManager dam;
+   private EndpointRegistry reg;
+
+   public void setRuntimeName(String runtimeName)
+   {
+      this.runtimeName = runtimeName;
+   }
+
+   public void create(Deployment deployment)
+   {
+      assemble();
+      dam.create(deployment, this);
+   }
+
+   public void start(Deployment deployment)
+   {
+      assemble();
+      dam.start(deployment, this);
+   }
+
+   public void stop(Deployment deployment)
+   {
+      assemble();
+      dam.stop(deployment, this);
+   }
+
+   public void destroy(Deployment deployment)
+   {
+      assemble();
+      dam.destroy(deployment, this);
+   }
+
+
+   public void setTransportManagerFactory(TransportManagerFactory factory)
+   {
+      this.tmf = factory;
+   }
+
+   public TransportManagerFactory getTransportManagerFactory()
+   {
+      return this.tmf;
+   }
+
+   public void setEndpointRegistry(EndpointRegistry endpointRegistry)
+   {
+      this.reg = endpointRegistry;
+   }
+
+   public EndpointRegistry getEndpointRegistry()
+   {
+      return this.reg;
+   }
+
+   public void setDeploymentAspectManager(DeploymentAspectManager deploymentManager)
+   {
+      this.dam = deploymentManager;
+   }
+
+   public DeploymentAspectManager getDeploymentAspectManager()
+   {
+      return this.dam;
+   }
+
+   public void setRequestHandlerFactory(RequestHandlerFactory factory)
+   {
+      this.rhf = factory;
+   }
+
+   public RequestHandlerFactory getRequestHandlerFactory()
+   {
+      return this.rhf;
+   }
+
+   public void setInvocationHandlerFactory(InvocationHandlerFactory factory)
+   {
+      this.ihf = factory;
+   }
+
+   public InvocationHandlerFactory getInvocationHandlerFactory()
+   {
+      return this.ihf;
+   }
+   
+   private void assemble()
+   {
+      if(!assembled)
+      {
+         SPIProvider provider = SPIProviderResolver.getInstance().getProvider();
+         RequestHandlerFactory rhFactory = provider.getSPI(RequestHandlerFactory.class);
+         setRequestHandlerFactory(rhFactory);
+
+         assembled = true;
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/LazyAssemblyWSFRuntime.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ModifyWebMetaDataDeploymentAspect.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ModifyWebMetaDataDeploymentAspect.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ModifyWebMetaDataDeploymentAspect.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,65 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspect;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.WSFRuntime;
+
+/**
+ * A deployer that modifies the web.xml meta data 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class ModifyWebMetaDataDeploymentAspect extends DeploymentAspect
+{
+   private WebXMLRewriterImpl webXMLRewriter;
+
+   public void setWebXMLRewriter(WebXMLRewriterImpl serviceEndpointPublisher)
+   {
+      this.webXMLRewriter = serviceEndpointPublisher;
+   }
+
+   public void create(Deployment dep, WSFRuntime runtime)
+   {
+      RewriteResults results = webXMLRewriter.rewriteWebXml(dep);
+
+      // The endpoint may not have a target bean when 
+      // <servlet-class> originally contained a javax.servlet.Servlet
+      for (Endpoint ep : dep.getService().getEndpoints())
+      {
+         if (ep.getTargetBeanName() == null)
+         {
+            String servletName = ep.getShortName();
+            String beanClassName = results.sepTargetMap.get(servletName);
+            if (beanClassName == null)
+               throw new IllegalStateException("Cannot obtain target bean for: " + servletName);
+
+            ep.setTargetBeanName(beanClassName);
+         }
+      }
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ModifyWebMetaDataDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RewriteResults.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RewriteResults.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RewriteResults.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,38 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import java.net.URL;
+import java.util.Map;
+import java.util.HashMap;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ *         Created: Jul 19, 2007
+ */
+public class RewriteResults
+{
+   // The URL to the rewritten web.xml
+   public URL webXML;
+   // Maps the servlet name to the target bean
+   public Map<String, String> sepTargetMap = new HashMap<String, String>();
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RewriteResults.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RuntimeLoaderDeploymentAspect.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RuntimeLoaderDeploymentAspect.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RuntimeLoaderDeploymentAspect.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,72 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.WebMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspect;
+import org.jboss.wsf.spi.WSFRuntime;
+
+/**
+ * Determines the correct runtime loader for per deployment type
+ * and makes it available through the {@link org.jboss.wsf.spi.deployment.Deployment}.
+ *
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public class RuntimeLoaderDeploymentAspect extends DeploymentAspect
+{
+
+   public void start(Deployment dep, WSFRuntime runtime)
+   {
+
+      // JSE endpoints
+      if (dep.getAttachment(WebMetaData.class) != null)
+      {
+         WebMetaData webMetaData = dep.getAttachment(WebMetaData.class);
+         ClassLoader classLoader = webMetaData.getContextLoader();
+         dep.setRuntimeClassLoader(classLoader);
+      }
+
+      // EJB3 endpoints
+      else if (dep.getType() == Deployment.DeploymentType.JAXWS_EJB3)
+      {
+         // loader provided by the deployer hook
+         if (null == dep.getRuntimeClassLoader())
+            throw new IllegalArgumentException("Runtime loader not provided");
+      }
+
+      // EJB21 endpoints
+      else if (dep.getAttachment(ApplicationMetaData.class) != null)
+      {
+         // loader provided by the deployer hook
+         if (null == dep.getRuntimeClassLoader())
+            throw new IllegalArgumentException("Runtime loader not provided");
+      }
+
+      else
+      {
+         throw new IllegalArgumentException("Unable to determine runtime loader");
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/RuntimeLoaderDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdapterFactoryImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdapterFactoryImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdapterFactoryImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,37 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.invocation.SecurityAdaptorFactory;
+import org.jboss.wsf.spi.invocation.SecurityAdaptor;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ *         Created: Jul 24, 2007
+ */
+public class SecurityAdapterFactoryImpl extends SecurityAdaptorFactory
+{
+   public SecurityAdaptor newSecurityAdapter()
+   {
+      return new SecurityAdaptorImpl(); 
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdapterFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdaptorImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdaptorImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdaptorImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,62 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.security.Principal;
+
+import org.jboss.security.SecurityAssociation;
+import org.jboss.wsf.spi.invocation.SecurityAdaptor;
+
+/**
+ * A JBoss specific SecurityAssociationAdaptor 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 05-May-2006
+ */
+public class SecurityAdaptorImpl implements SecurityAdaptor
+{
+   SecurityAdaptorImpl()
+   {
+   }
+
+   public Principal getPrincipal()
+   {
+      return SecurityAssociation.getPrincipal();
+   }
+   
+   public void setPrincipal(Principal pricipal)
+   {
+      SecurityAssociation.setPrincipal(pricipal);
+   }
+
+   public Object getCredential()
+   {
+      return SecurityAssociation.getCredential();
+   }
+
+   public void setCredential(Object credential)
+   {
+      SecurityAssociation.setCredential(credential);
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityAdaptorImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB21.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB21.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB21.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,78 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import java.util.Iterator;
+import java.util.Map;
+
+import org.dom4j.Element;
+import org.jboss.metadata.ApplicationMetaData;
+import org.jboss.metadata.AssemblyDescriptorMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.SecurityHandler;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+
+/**
+ * Generate a service endpoint deployment for EJB endpoints 
+ * 
+ * @author Thomas.Diesler at jboss.org
+ * @since 12-May-2006
+ */
+public class SecurityHandlerEJB21 implements SecurityHandler
+{
+   public void addSecurityDomain(Element jbossWeb, Deployment dep)
+   {
+      EJBArchiveMetaData appMetaData = dep.getAttachment(EJBArchiveMetaData.class);
+      if (appMetaData == null)
+         throw new IllegalStateException("Cannot obtain application meta data");
+
+      String securityDomain = appMetaData.getSecurityDomain();
+      if (securityDomain != null)
+      {
+         if (securityDomain.startsWith("java:/jaas/") == false)
+            securityDomain = "java:/jaas/" + securityDomain;
+         
+         jbossWeb.addElement("security-domain").addText(securityDomain);
+      }
+   }
+
+   public void addSecurityRoles(Element webApp, Deployment dep)
+   {
+      // Fix: http://jira.jboss.org/jira/browse/JBWS-309
+      ApplicationMetaData applMetaData = dep.getAttachment(ApplicationMetaData.class);
+      AssemblyDescriptorMetaData assemblyDescriptor = applMetaData.getAssemblyDescriptor();
+      if (assemblyDescriptor != null)
+      {
+         Map securityRoles = assemblyDescriptor.getSecurityRoles();
+         if (securityRoles != null)
+         {
+            Iterator it = securityRoles.keySet().iterator();
+            while (it.hasNext())
+            {
+               webApp.addElement("security-role").addElement("role-name").addText((String)it.next());
+            }
+         }
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB21.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB3.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB3.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB3.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,121 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import javax.annotation.security.RolesAllowed;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
+import org.dom4j.Element;
+import org.jboss.annotation.security.SecurityDomain;
+import org.jboss.ejb3.Ejb3ModuleMBean;
+import org.jboss.ejb3.stateless.StatelessContainer;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanProxyCreationException;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.SecurityHandler;
+import org.jboss.wsf.spi.deployment.WSFDeploymentException;
+
+/**
+ * Generate a service endpoint deployment for EJB endpoints 
+ * 
+ * @author Thomas.Diesler at jboss.org
+ * @since 12-May-2006
+ */
+public class SecurityHandlerEJB3 implements SecurityHandler
+{
+   public void addSecurityDomain(Element jbossWeb, Deployment dep)
+   {
+      String securityDomain = null;
+
+      ObjectName deployedObject = (ObjectName)dep.getProperty(EJBArchiveMetaDataAdapterEJB3.DEPLOYED_OBJECT);
+      Ejb3ModuleMBean ejb3Module = getEJB3Module(deployedObject);
+      for (Object manager : ejb3Module.getContainers().values())
+      {
+         if (manager instanceof StatelessContainer)
+         {
+            StatelessContainer container = (StatelessContainer)manager;
+
+            SecurityDomain anSecurityDomain = (SecurityDomain)container.resolveAnnotation(SecurityDomain.class);
+            if (anSecurityDomain != null)
+            {
+               if (securityDomain != null && !securityDomain.equals(anSecurityDomain.value()))
+                  throw new IllegalStateException("Multiple security domains not supported");
+
+               securityDomain = anSecurityDomain.value();
+            }
+         }
+      }
+
+      if (securityDomain != null)
+      {
+         if (securityDomain.startsWith("java:/jaas/") == false)
+            securityDomain = "java:/jaas/" + securityDomain;
+         
+         jbossWeb.addElement("security-domain").addText(securityDomain);
+      }
+   }
+
+   public void addSecurityRoles(Element webApp, Deployment dep)
+   {
+      // The container objects below provide access to all of the ejb metadata
+      ObjectName deployedObject = (ObjectName)dep.getProperty(EJBArchiveMetaDataAdapterEJB3.DEPLOYED_OBJECT);
+      Ejb3ModuleMBean ejb3Module = getEJB3Module(deployedObject);
+      for (Object manager : ejb3Module.getContainers().values())
+      {
+         if (manager instanceof StatelessContainer)
+         {
+            StatelessContainer container = (StatelessContainer)manager;
+
+            RolesAllowed anRolesAllowed = (RolesAllowed)container.resolveAnnotation(RolesAllowed.class);
+            if (anRolesAllowed != null)
+            {
+               for (String role : anRolesAllowed.value())
+               {
+                  webApp.addElement("security-role").addElement("role-name").addText(role);
+               }
+            }
+         }
+      }
+   }
+
+   private Ejb3ModuleMBean getEJB3Module(ObjectName objectName)
+   {
+      Ejb3ModuleMBean ejb3Module;
+      try
+      {
+         MBeanServer server = MBeanServerLocator.locateJBoss();
+         ejb3Module = (Ejb3ModuleMBean)MBeanProxy.get(Ejb3ModuleMBean.class, objectName, server);
+         if (ejb3Module == null)
+            throw new WSFDeploymentException("Cannot obtain EJB3 module: " + objectName);
+
+         return ejb3Module;
+      }
+      catch (MBeanProxyCreationException ex)
+      {
+         throw new WSFDeploymentException("Cannot obtain proxy to EJB3 module");
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/SecurityHandlerEJB3.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ServiceEndpointInterceptor.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ServiceEndpointInterceptor.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ServiceEndpointInterceptor.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,126 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
+
+import org.jboss.ejb.plugins.AbstractInterceptor;
+import org.jboss.invocation.InvocationKey;
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.invocation.HandlerCallback;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerMetaData.HandlerType;
+
+/**
+ * This Interceptor does the ws4ee handler processing.
+ * 
+ * According to the ws4ee spec the handler logic must be invoked after the container
+ * applied method level security to the invocation. 
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 21-Sep-2005
+ */
+public class ServiceEndpointInterceptor extends AbstractInterceptor
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(ServiceEndpointInterceptor.class);
+
+   // Interceptor implementation --------------------------------------
+
+   /** Before and after we call the service endpoint bean, we process the handler chains.
+    */
+   public Object invoke(final org.jboss.invocation.Invocation jbInv) throws Exception
+   {
+      // If no msgContext, it's not for us
+      SOAPMessageContext msgContext = (SOAPMessageContext)jbInv.getPayloadValue(InvocationKey.SOAP_MESSAGE_CONTEXT);
+      if (msgContext == null)
+      {
+         return getNext().invoke(jbInv);
+      }
+
+      // Get the endpoint invocation 
+      Invocation wsInv = (Invocation)jbInv.getValue(Invocation.class.getName());
+
+      // Get the handler callback 
+      HandlerCallback callback = (HandlerCallback)jbInv.getValue(HandlerCallback.class.getName());
+
+      // Handlers need to be Tx. Therefore we must invoke the handler chain after the TransactionInterceptor.
+      if (callback != null && wsInv != null)
+      {
+         try
+         {
+            // call the request handlers
+            boolean handlersPass = callback.callRequestHandlerChain(wsInv, HandlerType.ENDPOINT);
+            handlersPass = handlersPass && callback.callRequestHandlerChain(wsInv, HandlerType.POST);
+
+            // Call the next interceptor in the chain
+            if (handlersPass)
+            {
+               // The SOAPContentElements stored in the EndpointInvocation might have changed after
+               // handler processing. Get the updated request payload. This should be a noop if request
+               // handlers did not modify the incomming SOAP message.
+               Object[] reqParams = wsInv.getArgs();
+               jbInv.setArguments(reqParams);
+               Object resObj = getNext().invoke(jbInv);
+
+               // Setting the message to null should trigger binding of the response message
+               msgContext.setMessage(null);
+               wsInv.setReturnValue(resObj);
+            }
+
+            // call the response handlers
+            handlersPass = callback.callResponseHandlerChain(wsInv, HandlerType.POST);
+            handlersPass = handlersPass && callback.callResponseHandlerChain(wsInv, HandlerType.ENDPOINT);
+
+            // update the return value after response handler processing
+            Object resObj = wsInv.getReturnValue();
+
+            return resObj;
+         }
+         catch (Exception ex)
+         {
+            try
+            {
+               // call the fault handlers
+               boolean handlersPass = callback.callFaultHandlerChain(wsInv, HandlerType.POST, ex);
+               handlersPass = handlersPass && callback.callFaultHandlerChain(wsInv, HandlerType.ENDPOINT, ex);
+            }
+            catch (Exception subEx)
+            {
+               log.warn("Cannot process handlerChain.handleFault, ignoring: ", subEx);
+            }
+            throw ex;
+         }
+         finally
+         {
+            // do nothing
+         }
+      }
+      else
+      {
+         log.warn("Handler callback not available");
+         return getNext().invoke(jbInv);
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/ServiceEndpointInterceptor.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeployingHttpServer.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeployingHttpServer.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeployingHttpServer.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,236 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+//$Id$
+
+import java.io.File;
+import java.io.FileWriter;
+import java.io.IOException;
+import java.net.URL;
+import java.util.Map;
+
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+import javax.xml.ws.Endpoint;
+import javax.xml.ws.WebServiceException;
+
+import org.jboss.wsf.common.DOMUtils;
+import org.jboss.wsf.common.DOMWriter;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.AbstractExtensible;
+import org.jboss.wsf.spi.http.HttpContext;
+import org.jboss.wsf.spi.http.HttpContextFactory;
+import org.jboss.wsf.spi.http.HttpServer;
+import org.jboss.wsf.spi.management.ServerConfig;
+import org.jboss.wsf.spi.management.ServerConfigFactory;
+import org.w3c.dom.Element;
+
+/**
+ * A Tomcat HTTP Server
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 07-Jul-2006
+ */
+public class WebAppDeployingHttpServer extends AbstractExtensible implements HttpServer
+{
+   private static final String MAIN_DEPLOYER = "jboss.system:service=MainDeployer";
+
+   // The MBeanServer
+   private MBeanServer mbeanServer;
+
+   public MBeanServer getMbeanServer()
+   {
+      return mbeanServer;
+   }
+
+   public void setMbeanServer(MBeanServer mbeanServer)
+   {
+      this.mbeanServer = mbeanServer;
+   }
+
+   /** Start an instance of this HTTP server */
+   public void start()
+   {
+      // verify required properties
+   }
+
+   /** Create an HTTP context */
+   public HttpContext createContext(String contextRoot)
+   {
+      SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+      HttpContext httpContext = spiProvider.getSPI(HttpContextFactory.class).newHttpContext(this, contextRoot);
+      return httpContext;
+   }
+
+   /** Publish an JAXWS endpoint to the HTTP server */
+   public void publish(HttpContext context, Endpoint endpoint)
+   {
+      Class implClass = getImplementorClass(endpoint);
+      String implName = implClass.getName();
+
+      try
+      {
+         Element webDoc = createWebAppDescriptor(context, endpoint);
+         Element jbossDoc = createJBossWebAppDescriptor(context, endpoint);
+
+         File tmpWar = null;
+         try
+         {
+            SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+            ServerConfig serverConfig = spiProvider.getSPI(ServerConfigFactory.class).getServerConfig();
+            File tmpDir = new File(serverConfig.getServerTempDir().getCanonicalPath() + "/jbossws");
+            tmpDir.mkdirs();
+
+            String deploymentName = implName.substring(implName.lastIndexOf(".") + 1);
+            tmpWar = File.createTempFile(deploymentName, ".war", tmpDir);
+            tmpWar.delete();
+            File webInf = new File(tmpWar, "WEB-INF");
+            webInf.mkdirs();
+
+            File webXml = new File(webInf, "web.xml");
+            FileWriter fw = new FileWriter(webXml);
+            new DOMWriter(fw).setPrettyprint(true).print(webDoc);
+            fw.close();
+
+            File jbossWebXml = new File(webInf, "jboss-web.xml");
+            fw = new FileWriter(jbossWebXml);
+            new DOMWriter(fw).setPrettyprint(true).print(jbossDoc);
+            fw.close();
+         }
+         catch (IOException e)
+         {
+            throw new WebServiceException("Failed to create webservice war", e);
+         }
+
+         Map<String, Object> epProps = endpoint.getProperties();
+         epProps.put("jbossws-endpoint-war-url", tmpWar);
+
+         URL tmpURL = tmpWar.toURL();
+         getMbeanServer().invoke(new ObjectName(MAIN_DEPLOYER), "deploy", new Object[] { tmpURL }, new String[] { "java.net.URL" });
+      }
+      catch (RuntimeException rte)
+      {
+         throw rte;
+      }
+      catch (Exception ex)
+      {
+         throw new WebServiceException(ex);
+      }
+   }
+
+   /** Destroys an JAXWS endpoint on the HTTP server */
+   public void destroy(HttpContext context, Endpoint endpoint)
+   {
+      Map<String, Object> epProps = endpoint.getProperties();
+      File tmpWar = (File)epProps.get("jbossws-endpoint-war-url");
+      if (tmpWar == null)
+         throw new IllegalStateException("Cannot find endpoint war property");
+
+      try
+      {
+         URL tmpURL = tmpWar.toURL();
+         getMbeanServer().invoke(new ObjectName(MAIN_DEPLOYER), "undeploy", new Object[] { tmpURL }, new String[] { "java.net.URL" });
+
+         tmpWar.delete();
+      }
+      catch (RuntimeException rte)
+      {
+         throw rte;
+      }
+      catch (Exception ex)
+      {
+         throw new WebServiceException(ex);
+      }
+   }
+
+   private Class getImplementorClass(Endpoint endpoint)
+   {
+      Object implementor = endpoint.getImplementor();
+      Class implClass = (implementor instanceof Class ? (Class)implementor : implementor.getClass());
+      return implClass;
+   }
+
+   private Element createWebAppDescriptor(HttpContext context, Endpoint endpoint)
+   {
+      Class implClass = getImplementorClass(endpoint);
+      String implName = implClass.getName();
+
+      Element webApp = DOMUtils.createElement("web-app");
+
+      /*
+       <servlet>
+       <servlet-name>
+       <servlet-class>
+       </servlet>
+       */
+      Element servlet = (Element)webApp.appendChild(DOMUtils.createElement("servlet"));
+      Element servletName = (Element)servlet.appendChild(DOMUtils.createElement("servlet-name"));
+      servletName.appendChild(DOMUtils.createTextNode("JAXWSEndpoint"));
+      Element servletClass = (Element)servlet.appendChild(DOMUtils.createElement("servlet-class"));
+      servletClass.appendChild(DOMUtils.createTextNode(implName));
+
+      /*
+       <servlet-mapping>
+       <servlet-name>
+       <url-pattern>
+       </servlet-mapping>
+       */
+      Element servletMapping = (Element)webApp.appendChild(DOMUtils.createElement("servlet-mapping"));
+      servletName = (Element)servletMapping.appendChild(DOMUtils.createElement("servlet-name"));
+      servletName.appendChild(DOMUtils.createTextNode("JAXWSEndpoint"));
+      Element urlPatternElement = (Element)servletMapping.appendChild(DOMUtils.createElement("url-pattern"));
+
+      String urlPattern = "/*";
+      urlPatternElement.appendChild(DOMUtils.createTextNode(urlPattern));
+
+      // Add security-constraint in generated web.xml for Endpoint API
+      // FIXME: JBWS-1069
+
+      return webApp;
+   }
+
+   private Element createJBossWebAppDescriptor(HttpContext context, Endpoint endpoint)
+   {
+      /* Create a jboss-web
+       <jboss-web>
+       <security-domain>java:/jaas/cts</security-domain>
+       <context-root>/ws/ejbN/</context-root>
+       </jboss-web>
+       */
+      Element jbossWeb = DOMUtils.createElement("jboss-web");
+
+      // Get the context root for this deployment
+      String contextRoot = context.getContextRoot();
+      if (contextRoot == null)
+         throw new WebServiceException("Cannot obtain context root");
+
+      Element root = (Element)jbossWeb.appendChild(DOMUtils.createElement("context-root"));
+      root.appendChild(DOMUtils.createTextNode(contextRoot));
+
+      // Add security-constraint in generated web.xml for Endpoint API
+      // FIXME: JBWS-1069
+
+      return jbossWeb;
+   }
+}
\ No newline at end of file


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeployingHttpServer.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,113 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+// $Id$
+
+import java.net.URL;
+
+import javax.management.MBeanServer;
+
+import org.jboss.deployment.DeploymentInfo;
+import org.jboss.deployment.MainDeployerMBean;
+import org.jboss.logging.Logger;
+import org.jboss.mx.util.MBeanProxy;
+import org.jboss.mx.util.MBeanProxyCreationException;
+import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspect;
+import org.jboss.wsf.spi.deployment.WSFDeploymentException;
+import org.jboss.wsf.spi.WSFRuntime;
+
+/**
+ * Publish the HTTP service endpoint to Tomcat 
+ * 
+ * @author Thomas.Diesler at jboss.org
+ * @since 12-May-2006
+ */
+public class WebAppDeploymentAspect extends DeploymentAspect
+{
+   // provide logging
+   private static Logger log = Logger.getLogger(WebAppDeploymentAspect.class);
+
+   private WebXMLRewriterImpl webXMLRewriter;
+
+   public void setWebXMLRewriter(WebXMLRewriterImpl serviceEndpointPublisher)
+   {
+      this.webXMLRewriter = serviceEndpointPublisher;
+   }
+
+   public void create(Deployment dep, WSFRuntime runtime)
+   {
+      URL warURL = (URL)dep.getProperty("org.jboss.ws.webapp.url");
+      if (warURL == null)
+         throw new IllegalStateException("Cannot obtain webapp URL");
+
+      log.debug("publishServiceEndpoint: " + warURL);
+      try
+      {
+         webXMLRewriter.rewriteWebXml(dep);
+         
+         DeploymentInfo auxdi = new DeploymentInfo(warURL, null, MBeanServerLocator.locateJBoss());
+
+         // Preserve the repository config
+         DeploymentInfo di = dep.getAttachment(DeploymentInfo.class);
+         if (di != null)
+            auxdi.repositoryConfig = di.getTopRepositoryConfig();
+
+         auxdi.context.put("org.jboss.ws.ejbwebapp", "true");
+         
+         getMainDeployer().deploy(auxdi);
+      }
+      catch (Exception ex)
+      {
+         WSFDeploymentException.rethrow(ex);
+      }
+   }
+
+   public void destroy(Deployment dep)
+   {
+      URL warURL = (URL)dep.getProperty("org.jboss.ws.webapp.url");
+      if (warURL == null)
+      {
+         log.error("Cannot obtain warURL");
+         return;
+      }
+
+      log.debug("destroyServiceEndpoint: " + warURL);
+      try
+      {
+         getMainDeployer().undeploy(warURL);
+      }
+      catch (Exception ex)
+      {
+         WSFDeploymentException.rethrow(ex);
+      }
+   }
+
+   private MainDeployerMBean getMainDeployer() throws MBeanProxyCreationException
+   {
+      MBeanServer server = MBeanServerLocator.locateJBoss();
+      MainDeployerMBean mainDeployer = (MainDeployerMBean)MBeanProxy.get(MainDeployerMBean.class, MainDeployerMBean.OBJECT_NAME, server);
+      return mainDeployer;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDesciptorModifier.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDesciptorModifier.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDesciptorModifier.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,40 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.dom4j.Document;
+
+/**
+ * Modifies the web app according to the stack requirements.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 19-May-2007
+ */
+public interface WebAppDesciptorModifier
+{
+   final String SERVLET_CONTEXT_LISTENER = "org.jboss.ws.webapp.ServletContextListener";
+   final String CONTEXT_PARAMETER_MAP = "org.jboss.ws.webapp.ContextParameterMap";
+   final String SERVLET_CLASS = "org.jboss.ws.webapp.ServletClass";
+
+   RewriteResults modifyDescriptor(Deployment dep, Document webXml) throws ClassNotFoundException;
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebAppDesciptorModifier.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebServiceContextFactoryImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebServiceContextFactoryImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebServiceContextFactoryImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,45 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+import org.jboss.wsf.spi.invocation.*;
+
+import javax.xml.ws.handler.MessageContext;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ *         Created: Jul 25, 2007
+ */
+public class WebServiceContextFactoryImpl extends WebServiceContextFactory
+{
+   public ExtensibleWebServiceContext newWebServiceContext(InvocationType type, MessageContext messageContext)
+   {
+      ExtensibleWebServiceContext context = null;
+
+      if(type.toString().indexOf("EJB")!=-1 || type.toString().indexOf("MDB")!=-1)
+         context = new WebServiceContextEJB(messageContext);
+      else
+         context = new WebServiceContextJSE(messageContext);
+
+      return context;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebServiceContextFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebXMLRewriterImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebXMLRewriterImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebXMLRewriterImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,137 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42;
+
+
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileOutputStream;
+import java.net.URL;
+
+import javax.xml.ws.WebServiceException;
+
+import org.dom4j.Document;
+import org.dom4j.io.OutputFormat;
+import org.dom4j.io.SAXReader;
+import org.dom4j.io.XMLWriter;
+import org.jboss.util.xml.JBossEntityResolver;
+import org.jboss.wsf.common.IOUtils;
+import org.jboss.wsf.spi.deployment.Deployment;
+
+/**
+ * The rewriter for web.xml
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 19-May-2007
+ */
+public class WebXMLRewriterImpl
+{
+   private WebAppDesciptorModifier desciptorModifier;
+
+   public WebXMLRewriterImpl()
+   {
+      this.desciptorModifier = new DefaultWebAppDesciptorModifierImpl();
+   }
+
+   public WebAppDesciptorModifier getDesciptorModifier()
+   {
+      return desciptorModifier;
+   }
+
+   public void setDesciptorModifier(WebAppDesciptorModifier desciptorModifier)
+   {
+      this.desciptorModifier = desciptorModifier;
+   }
+
+   public RewriteResults rewriteWebXml(Deployment dep)
+   {
+      URL warURL = (URL)dep.getProperty("org.jboss.ws.webapp.url");
+      File warFile = new File(warURL.getFile());
+      if (warFile.isDirectory() == false)
+         throw new WebServiceException("Expected a war directory: " + warURL);
+
+      File webXML = new File(warURL.getFile() + "/WEB-INF/web.xml");
+      if (webXML.isFile() == false)
+         throw new WebServiceException("Cannot find web.xml: " + webXML);
+
+      try
+      {
+         // After redeployment there might be a stale copy of the original web.xml.org, we delete it
+         File orgWebXML = new File(webXML.getCanonicalPath() + ".org");
+         orgWebXML.delete();
+
+         // Rename the web.xml
+         if (webXML.renameTo(orgWebXML) == false)
+            throw new WebServiceException("Cannot rename web.xml: " + orgWebXML);
+
+         return rewriteWebXml(orgWebXML, webXML, dep);
+      }
+      catch (RuntimeException rte)
+      {
+         throw rte;
+      }
+      catch (Exception e)
+      {
+         throw new WebServiceException(e);
+      }
+   }
+
+   private RewriteResults rewriteWebXml(File input, File destFile, Deployment dep) throws Exception
+   {
+      if (destFile == null)
+      {
+         destFile = File.createTempFile("jbossws-alt-web", "xml", IOUtils.createTempDirectory());
+         destFile.deleteOnExit();
+      }
+
+      FileInputStream inputStream = null;
+      FileOutputStream outputStream = null;
+
+      try
+      {
+         SAXReader reader = new SAXReader();
+         reader.setEntityResolver(new JBossEntityResolver());
+         
+         inputStream = new FileInputStream(input);
+         Document document = reader.read(inputStream);
+
+         RewriteResults results = desciptorModifier.modifyDescriptor(dep, document);
+         results.webXML = destFile.toURL();
+
+         outputStream = new FileOutputStream(destFile);
+         OutputFormat format = OutputFormat.createPrettyPrint();
+         XMLWriter writer = new XMLWriter(outputStream, format);
+         writer.write(document);
+         writer.close();
+
+         return results;
+      }
+      finally
+      {
+         if(inputStream!=null)
+            inputStream.close();
+
+         if(outputStream!=null)
+            outputStream.close();
+      }
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/WebXMLRewriterImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/serviceref/ServiceRefHandlerImpl.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/serviceref/ServiceRefHandlerImpl.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/serviceref/ServiceRefHandlerImpl.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,32 @@
+/*
+ * JBoss, Home of Professional Open Source
+ * Copyright 2005, JBoss Inc., and individual contributors as indicated
+ * by the @authors tag. See the copyright.txt in the distribution for a
+ * full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42.serviceref;
+
+// $Id$
+
+
+/**
+ * @deprecated
+ */
+public class ServiceRefHandlerImpl 
+{
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/serviceref/ServiceRefHandlerImpl.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/transport/BareTransportManagerFactory.java
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/transport/BareTransportManagerFactory.java	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/transport/BareTransportManagerFactory.java	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,57 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2006, Red Hat Middleware LLC, and individual contributors
+ * as indicated by the @author tags. See the copyright.txt file in the
+ * distribution for a full listing of individual contributors.
+ *
+ * This is free software; you can redistribute it and/or modify it
+ * under the terms of the GNU Lesser General Public License as
+ * published by the Free Software Foundation; either version 2.1 of
+ * the License, or (at your option) any later version.
+ *
+ * This software is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this software; if not, write to the Free
+ * Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+ * 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+ */
+package org.jboss.wsf.container.jboss42.transport;
+
+import org.jboss.wsf.spi.transport.TransportManagerFactory;
+import org.jboss.wsf.spi.transport.TransportManager;
+import org.jboss.wsf.spi.transport.Protocol;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class BareTransportManagerFactory implements TransportManagerFactory
+{
+
+   private TransportManager httpTransport;
+
+
+   public void setHttpTransport(TransportManager httpTransport)
+   {
+      this.httpTransport = httpTransport;
+   }
+
+   public TransportManager createTransportManager(Protocol protocol)
+   {
+      TransportManager t = null;
+
+      switch(protocol)
+      {
+         case HTTP:
+            t = httpTransport;
+            break;
+         default:
+            throw new IllegalArgumentException("No transport manager for protocol " + protocol);
+      }
+
+      return t;
+   }
+}


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/java/org/jboss/wsf/container/jboss42/transport/BareTransportManagerFactory.java
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42-config.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42-config.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42-config.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,319 @@
+<!-- Locate the single instance of the kernel -->
+ <bean name="WSKernelLocator" class="org.jboss.wsf.spi.util.KernelLocator">
+    <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
+ </bean>
+
+ <!-- Locate the single instance of the MBeanServer -->
+ <bean name="WSMBeanServerLocator" class="org.jboss.wsf.framework.management.MBeanServerLocator"/>
+
+ <!-- The HTTPServer used by the JAXWS Endpoint API -->
+ <bean name="WSHTTPServer" class="org.jboss.wsf.container.jboss42.DeploymentAspectHttpServer"/>
+
+ <!-- Bind Service objects in client environment context  -->
+ <bean name="WSServiceRefHandler" class="org.jboss.wsf.container.jboss42.serviceref.ServiceRefHandlerImpl"/>
+
+ <!-- JBoss_4_2_0_GA uses this hardcoded bean name -->
+ <bean name="ServiceRefHandler" class="org.jboss.wsf.container.jboss42.serviceref.ServiceRefHandlerImpl"/>
+
+ <!--
+   *********************************************************************************************************************
+   Web Service deployment
+
+   There are three deployer interceptors registered with the JBoss Deployers.
+
+   1) DeployerInterceptorJSE
+   2) DeployerInterceptorEJB21
+   3) DeployerInterceptorEJB3
+
+   Each interceptor has a number of DeployerHooks registerd with it
+
+   Conceptually, each of these hooks implements the following pattern:
+
+   DployerHook.deploy(unit)
+     if(isWebServiceDeployment)
+       Deployment dep = createDeployment(unit)
+       DeploymentAspectManager.deploy(dep)
+
+   DeployerHook.undeploy(unit)
+     Deployment dep = getDeployment(unit)
+     DeploymentAspectManager.undeploy(dep)
+
+   Each deployer hook has a web service DeployerManager injected into it.
+   A web service DeployerManager maintains a list of Deployers, each of which
+   handles a single aspect of web service deployment.
+
+   Finally, each Endpoint is registered with the EndpointRegistry.
+
+   *********************************************************************************************************************
+ -->
+
+ <!--
+   Register DeployerHooks with JBoss deployers
+ -->
+
+ <!-- Phase 1 -->
+ <bean name="WSDeployerHook_JAXRPC_PRE_JSE" class="org.jboss.wsf.container.jboss42.JAXRPCDeployerHookPreJSE">
+    <property name="runtime"><inject bean="WebserviceJSERuntime"/></property>
+    <property name="phaseOneInterceptors">
+       <list class="java.util.LinkedList" elementClass="javax.management.ObjectName">
+          <value>jboss.ws:service=DeployerInterceptorJSE</value>
+       </list>
+    </property>
+ </bean>
+
+ <!-- Phase 2 -->
+ <bean name="WSDeployerHook_JAXRPC_POST_JSE" class="org.jboss.wsf.container.jboss42.JAXRPCDeployerHookPostJSE">
+    <property name="runtime"><inject bean="WebserviceJSERuntime"/></property>
+    <property name="phaseTwoInterceptors">
+       <list class="java.util.LinkedList" elementClass="javax.management.ObjectName">
+          <value>jboss.ws:service=DeployerInterceptorJSE</value>
+       </list>
+    </property>
+ </bean>
+
+ <bean name="WSDeployerHook_JAXRPC_EJB21" class="org.jboss.wsf.container.jboss42.JAXRPCDeployerHookEJB21">
+    <property name="runtime"><inject bean="WebserviceEJBRuntime"/></property>
+    <property name="phaseTwoInterceptors">
+       <list class="java.util.LinkedList" elementClass="javax.management.ObjectName">
+          <value>jboss.ws:service=DeployerInterceptorEJB21</value>
+       </list>
+    </property>
+ </bean>
+
+ <!-- Phase 1 -->
+ <bean name="WSDeployerHook_JAXWS_PRE_JSE" class="org.jboss.wsf.container.jboss42.JAXWSDeployerHookPreJSE">
+    <property name="runtime"><inject bean="WebserviceJSERuntime"/></property>
+    <property name="phaseOneInterceptors">
+       <list class="java.util.LinkedList" elementClass="javax.management.ObjectName">
+          <value>jboss.ws:service=DeployerInterceptorJSE</value>
+       </list>
+    </property>
+ </bean>
+
+ <!-- Phase 2 -->
+ <bean name="WSDeployerHook_JAXWS_POST_JSE" class="org.jboss.wsf.container.jboss42.JAXWSDeployerHookPostJSE">
+    <property name="runtime"><inject bean="WebserviceJSERuntime"/></property>
+    <property name="phaseTwoInterceptors">
+       <list class="java.util.LinkedList" elementClass="javax.management.ObjectName">
+          <value>jboss.ws:service=DeployerInterceptorJSE</value>
+       </list>
+    </property>
+ </bean>
+
+ <bean name="WSDeployerHook_JAXWS_EJB3" class="org.jboss.wsf.container.jboss42.JAXWSDeployerHookEJB3">
+    <property name="runtime"><inject bean="WebserviceEJBRuntime"/></property>
+    <property name="phaseTwoInterceptors">
+       <list class="java.util.LinkedList" elementClass="javax.management.ObjectName">
+          <value>jboss.ws:service=DeployerInterceptorEJB3</value>
+       </list>
+    </property>
+ </bean>
+
+ <!--
+    *********************************************************************************************************************
+    Main WSFRuntimes.
+    -->
+
+ <bean name="WebserviceJSERuntime" class="org.jboss.wsf.container.jboss42.LazyAssemblyWSFRuntime">
+    <property name="runtimeName">WebserviceJSERuntime</property>
+    <property name="deploymentAspectManager"><inject bean="WSDeploymentAspectManagerJSE"/></property>
+    <property name="endpointRegistry"><inject bean="WSEndpointRegistry"/></property>
+
+    <property name="invocationHandlerFactory"><inject bean="InvocationHandlerFactory"/></property>
+ </bean>
+
+ <bean name="WebserviceEJBRuntime" class="org.jboss.wsf.container.jboss42.LazyAssemblyWSFRuntime">
+    <property name="runtimeName">WebserviceEJBRuntime</property>
+    <property name="deploymentAspectManager"><inject bean="WSDeploymentAspectManagerEJB"/></property>
+    <property name="endpointRegistry"><inject bean="WSEndpointRegistry"/></property>
+
+    <property name="invocationHandlerFactory"><inject bean="InvocationHandlerFactory"/></property>
+ </bean>
+
+ <bean name="EndpointAPIRuntime" class="org.jboss.wsf.container.jboss42.LazyAssemblyWSFRuntime">
+    <property name="runtimeName">EndpointAPIRuntime</property>
+    <property name="deploymentAspectManager"><inject bean="WSDeploymentAspectManagerEndpointAPI"/></property>
+    <property name="endpointRegistry"><inject bean="WSEndpointRegistry"/></property>
+
+    <property name="invocationHandlerFactory"><inject bean="InvocationHandlerFactory"/></property>
+ </bean>
+
+
+ <!--
+ *********************************************************************************************************************
+ WSFRuntimes Components
+ -->
+
+ <!-- The registry for web service endpoints -->
+ <bean name="WSEndpointRegistry" class="org.jboss.wsf.framework.management.ManagedEndpointRegistry">
+    <property name="mbeanServer"><inject bean="WSMBeanServerLocator" property="mbeanServer"/></property>
+ </bean>
+
+ <!-- invcocation handling -->
+ <bean name="InvocationHandlerFactory" class="org.jboss.wsf.container.jboss42.InvocationHandlerFactoryImpl"/>
+
+ <!--
+   *********************************************************************************************************************
+   Each DeploymentAspectManger maintains a list of DeploymentAspects
+ -->
+ <bean name="WSDeploymentAspectManagerJSE" class="org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl">
+    <property name="name">WSDeploymentAspectManagerJSE</property>
+ </bean>
+ <bean name="WSDeploymentAspectManagerEJB" class="org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl">
+    <property name="name">WSDeploymentAspectManagerEJB</property>
+ </bean>
+ <bean name="WSDeploymentAspectManagerEndpointAPI" class="org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl">
+    <property name="name">WSDeploymentAspectManagerEndpointAPI</property>
+ </bean>
+
+ <!--
+   The container deployment aspects
+ -->
+ <bean name="WSContainerMetaDataDeploymentAspect" class="org.jboss.wsf.container.jboss42.ContainerMetaDataDeploymentAspect">
+    <property name="provides">ContainerMetaData, VFSRoot</property>
+    <property name="metaDataAdapter"><inject bean="WSContainerMetaDataAdapter"/></property>
+ </bean>
+
+ <bean name="WSContextRootDeploymentAspect" class="org.jboss.wsf.framework.deployment.BackwardCompatibleContextRootDeploymentAspect">
+    <property name="requires">ContainerMetaData</property>
+    <property name="provides">ContextRoot</property>
+ </bean>
+
+ <bean name="WSEndpointAPIDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointAPIDeploymentAspect">
+    <property name="provides">ContainerMetaData, RuntimeLoader, URLPattern, VFSRoot</property>
+ </bean>
+
+ <bean name="WSEndpointAddressDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointAddressDeploymentAspect">
+    <property name="requires">URLPattern</property>
+    <property name="provides">EndpointAddress</property>
+ </bean>
+
+ <bean name="WSEndpointHandlerDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointHandlerDeploymentAspect">
+    <property name="requires">ContainerMetaData</property>
+    <property name="provides">ContainerEndpointHandler</property>
+ </bean>
+
+ <bean name="WSEndpointLifecycleDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointLifecycleDeploymentAspect">
+    <property name="requires">LAST_DEPLOYMENT_ASPECT</property>
+ </bean>
+
+ <bean name="WSEndpointMetricsDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointMetricsDeploymentAspect">
+    <property name="provides">EndpointMetrics</property>
+ </bean>
+
+ <bean name="WSEndpointNameDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointNameDeploymentAspect">
+    <property name="requires">URLPattern</property>
+    <property name="provides">EndpointName</property>
+ </bean>
+
+ <bean name="WSEndpointRegistryDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointRegistryDeploymentAspect">
+    <property name="requires">EndpointName</property>
+    <property name="provides">RegisteredEndpoint</property>
+    <depends>WSEndpointRegistry</depends>
+ </bean>
+
+ <bean name="WSModifyWebMetaDataDeploymentAspect" class="org.jboss.wsf.container.jboss42.ModifyWebMetaDataDeploymentAspect">
+    <property name="requires">ContextProperties, ContainerMetaData, StackDescriptor</property>
+    <property name="webXMLRewriter"><inject bean="WSWebXMLRewriter"/></property>
+ </bean>
+
+ <bean name="WSRuntimeLoaderDeploymentAspect" class="org.jboss.wsf.container.jboss42.RuntimeLoaderDeploymentAspect">
+    <property name="requires">ContainerMetaData</property>
+    <property name="provides">RuntimeLoader</property>
+ </bean>
+
+ <bean name="WSURLPatternDeploymentAspect" class="org.jboss.wsf.framework.deployment.BackwardCompatibleURLPatternDeploymentAspect">
+    <property name="requires">ContextRoot, ContainerMetaData</property>
+    <property name="provides">URLPattern</property>
+ </bean>
+
+ <bean name="WSWebAppDeploymentAspect" class="org.jboss.wsf.container.jboss42.WebAppDeploymentAspect">
+    <property name="requires">WebMetaData, ContextProperties</property>
+    <property name="webXMLRewriter"><inject bean="WSWebXMLRewriter"/></property>
+ </bean>
+
+ <bean name="WSWebAppGeneratorDeploymentAspect" class="org.jboss.wsf.framework.deployment.WebAppGeneratorDeploymentAspect">
+    <property name="requires">URLPattern</property>
+    <property name="provides">WebMetaData</property>
+    <property name="securityHandlerEJB21"><inject bean="WSSecurityHandlerEJB21"/></property>
+    <property name="securityHandlerEJB3"><inject bean="WSSecurityHandlerEJB3"/></property>
+ </bean>
+
+ <!-- Deployment aspect helper beans -->
+ <bean name="WSApplicationMetaDataAdapterEJB21" class="org.jboss.wsf.container.jboss42.EJBArchiveMetaDataAdapterEJB21"/>
+ <bean name="WSApplicationMetaDataAdapterEJB3" class="org.jboss.wsf.container.jboss42.EJBArchiveMetaDataAdapterEJB3"/>
+ <bean name="WSContainerMetaDataAdapter" class="org.jboss.wsf.container.jboss42.ContainerMetaDataAdapter">
+    <property name="applicationMetaDataAdapterEJB21"><inject bean="WSApplicationMetaDataAdapterEJB21"/></property>
+    <property name="applicationMetaDataAdapterEJB3"><inject bean="WSApplicationMetaDataAdapterEJB3"/></property>
+    <property name="webMetaDataAdapter"><inject bean="WSWebMetaDataAdapter"/></property>
+ </bean>
+ <bean name="WSSecurityHandlerEJB21" class="org.jboss.wsf.container.jboss42.SecurityHandlerEJB21"/>
+ <bean name="WSSecurityHandlerEJB3" class="org.jboss.wsf.container.jboss42.SecurityHandlerEJB3"/>
+ <bean name="WSWebAppDesciptorModifier" class="org.jboss.wsf.container.jboss42.DefaultWebAppDesciptorModifierImpl"/>
+ <bean name="WSWebMetaDataAdapter" class="org.jboss.wsf.container.jboss42.JSEArchiveMetaDataAdapter"/>
+ <bean name="WSWebXMLRewriter" class="org.jboss.wsf.container.jboss42.WebXMLRewriterImpl">
+    <property name="desciptorModifier"><inject bean="WSWebAppDesciptorModifier"/></property>
+ </bean>
+
+ <!-- Deployment aspect installers -->
+ <!-- Phase 1 -->
+ <bean name="WSDeploymentAspectInstallerJSE" class="org.jboss.wsf.framework.deployment.DeploymentAspectInstaller">
+    <property name="manager"><inject bean="WSDeploymentAspectManagerJSE"/></property>
+    <property name="sortAspectsOnCreate">false</property>
+    <property name="aspects">
+       <set class="java.util.HashSet" elementClass="org.jboss.wsf.spi.deployment.DeploymentAspect">
+          <inject bean="WSContainerMetaDataDeploymentAspect"/>
+          <inject bean="WSContextRootDeploymentAspect"/>
+          <inject bean="WSEndpointAddressDeploymentAspect"/>
+          <inject bean="WSEndpointHandlerDeploymentAspect"/>
+          <inject bean="WSEndpointMetricsDeploymentAspect"/>
+          <inject bean="WSEndpointNameDeploymentAspect"/>
+          <inject bean="WSEndpointRegistryDeploymentAspect"/>
+          <inject bean="WSModifyWebMetaDataDeploymentAspect"/>
+          <inject bean="WSURLPatternDeploymentAspect"/>
+
+
+          <inject bean="WSEndpointLifecycleDeploymentAspect"/>
+          <inject bean="WSRuntimeLoaderDeploymentAspect"/>
+       </set>
+    </property>
+ </bean>
+
+ <bean name="WSDeploymentAspectInstallerEJB" class="org.jboss.wsf.framework.deployment.DeploymentAspectInstaller">
+    <property name="manager"><inject bean="WSDeploymentAspectManagerEJB"/></property>
+    <property name="sortAspectsOnCreate">false</property>
+    <property name="aspects">
+       <set class="java.util.HashSet" elementClass="org.jboss.wsf.spi.deployment.DeploymentAspect">
+          <inject bean="WSContainerMetaDataDeploymentAspect"/>
+          <inject bean="WSContextRootDeploymentAspect"/>
+          <inject bean="WSEndpointAddressDeploymentAspect"/>
+          <inject bean="WSEndpointHandlerDeploymentAspect"/>
+          <inject bean="WSEndpointLifecycleDeploymentAspect"/>
+          <inject bean="WSEndpointMetricsDeploymentAspect"/>
+          <inject bean="WSEndpointNameDeploymentAspect"/>
+          <inject bean="WSEndpointRegistryDeploymentAspect"/>
+          <inject bean="WSRuntimeLoaderDeploymentAspect"/>
+          <inject bean="WSURLPatternDeploymentAspect"/>
+          <inject bean="WSWebAppDeploymentAspect"/>
+          <inject bean="WSWebAppGeneratorDeploymentAspect"/>
+       </set>
+    </property>
+ </bean>
+
+ <bean name="WSDeploymentAspectInstallerEndpointAPI" class="org.jboss.wsf.framework.deployment.DeploymentAspectInstaller">
+    <property name="manager"><inject bean="WSDeploymentAspectManagerEndpointAPI"/></property>
+    <property name="sortAspectsOnCreate">false</property>
+    <property name="aspects">
+       <set class="java.util.HashSet" elementClass="org.jboss.wsf.spi.deployment.DeploymentAspect">
+          <inject bean="WSEndpointAPIDeploymentAspect"/>
+          <inject bean="WSEndpointAddressDeploymentAspect"/>
+          <inject bean="WSEndpointHandlerDeploymentAspect"/>
+          <inject bean="WSEndpointLifecycleDeploymentAspect"/>
+          <inject bean="WSEndpointMetricsDeploymentAspect"/>
+          <inject bean="WSEndpointNameDeploymentAspect"/>
+          <inject bean="WSEndpointRegistryDeploymentAspect"/>
+          <inject bean="WSWebAppDeploymentAspect"/>
+          <inject bean="WSWebAppGeneratorDeploymentAspect"/>
+       </set>
+    </property>
+ </bean>


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42-config.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.deployment.DeploymentModelFactory
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.deployment.DeploymentModelFactory	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.deployment.DeploymentModelFactory	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1 @@
+org.jboss.wsf.framework.deployment.ArchiveDeploymentModelFactory
\ No newline at end of file

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1 @@
+org.jboss.wsf.container.jboss42.InvocationHandlerFactoryImpl
\ No newline at end of file

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1 @@
+org.jboss.wsf.container.jboss42.SecurityAdapterFactoryImpl
\ No newline at end of file

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1 @@
+org.jboss.wsf.container.jboss42.WebServiceContextFactoryImpl
\ No newline at end of file

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.management.ServerConfigFactory
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.management.ServerConfigFactory	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.jar/META-INF/services/org.jboss.wsf.spi.management.ServerConfigFactory	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1 @@
+org.jboss.wsf.framework.management.ServerConfigFactoryImpl
\ No newline at end of file

Added: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/META-INF/jboss-service.xml
===================================================================
--- container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/META-INF/jboss-service.xml	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/META-INF/jboss-service.xml	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- $Id$ -->
+
+<server>
+
+   <!--
+     A deployer service for JSE endpoints.
+   -->
+   <mbean name="jboss.ws:service=DeployerInterceptorJSE" code="org.jboss.wsf.container.jboss42.DeployerInterceptorJSE">
+      <depends-list optional-attribute-name="Interceptables">
+         <depends-list-element>jboss.web:service=WebServer</depends-list-element>
+      </depends-list>
+   </mbean>
+
+   <!--
+     A deployer service for EJB2.1 endpoints.
+   -->
+   <mbean name="jboss.ws:service=DeployerInterceptorEJB21" code="org.jboss.wsf.container.jboss42.DeployerInterceptorEJB21">
+      <depends-list optional-attribute-name="Interceptables">
+         <depends-list-element>jboss.ejb:service=EJBDeployer</depends-list-element>
+      </depends-list>
+   </mbean>
+
+   <!--
+     A deployer service for EJB3 endpoints.
+   -->
+   <mbean name="jboss.ws:service=DeployerInterceptorEJB3" code="org.jboss.wsf.container.jboss42.DeployerInterceptorEJB3">
+      <depends-list optional-attribute-name="Interceptables">
+         <depends-list-element>jboss.ejb3:service=EJB3Deployer</depends-list-element>
+      </depends-list>
+   </mbean>
+
+</server>


Property changes on: container/jboss42/branches/jbossws-jboss423/src/main/resources/jbossws-jboss42.sar/META-INF/jboss-service.xml
___________________________________________________________________
Name: svn:keywords
   + Id Revision
Name: svn:eol-style
   + LF

Added: container/jboss42/branches/jbossws-jboss423/version.properties
===================================================================
--- container/jboss42/branches/jbossws-jboss423/version.properties	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/version.properties	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1,23 @@
+
+# $Id: version.properties 3956 2007-07-19 18:03:54Z thomas.diesler at jboss.com $
+
+specification.title=JBossWS
+specification.vendor=JBoss (http://www.jboss.org)
+specification.version=jbossws-2.0
+
+version.id=4.2.3.DEV
+repository.id=4.2.3.DEV
+
+implementation.title=JBoss Web Services - Integration JBoss42
+implementation.url=http://www.jboss.org/products/jbossws
+implementation.vendor=JBoss Inc.
+implementation.vendor.id=http://www.jboss.org
+
+# Thirdparty library versions
+jbossws-common=snapshot
+jbossws-spi=3.0.0-SNAPSHOT
+jbossws-framework=3.0.2-SNAPSHOT
+
+dom4j=1.6.1
+sun-jaxrpc=1.1
+sun-jaxws=2.1.1

Added: container/jboss42/branches/jbossws-jboss423/version.properties.md5
===================================================================
--- container/jboss42/branches/jbossws-jboss423/version.properties.md5	                        (rev 0)
+++ container/jboss42/branches/jbossws-jboss423/version.properties.md5	2008-04-16 09:20:04 UTC (rev 6447)
@@ -0,0 +1 @@
+f675c54cb4bbee14c0cb84af492517f5




More information about the jbossws-commits mailing list