[jboss-cvs] JBossAS SVN: r74544 - in branches/ropalka: thirdparty and 16 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Fri Jun 13 12:56:37 EDT 2008
Author: richard.opalka at jboss.com
Date: 2008-06-13 12:56:37 -0400 (Fri, 13 Jun 2008)
New Revision: 74544
Added:
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/BareWSFRuntime.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookEJB.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractWebServiceDeployer.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHook.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHookPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceMainDeployer.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/RuntimeLoaderDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataAdapter.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/JSEArchiveMetaDataAdapter.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/ModifyWebMetaDataDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/RewriteResults.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandler.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/AbstractInvocationHandler.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerFactoryImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXRPC.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXWS.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdapterFactoryImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdaptorImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/ServiceEndpointInterceptor.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/WebServiceContextFactoryImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/BareTransportManagerFactory.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EJBHttpTransportManager.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EndpointAPIHttpTransportManager.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/NoopHttpTransportManager.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WSFRuntimeDelegateHttpServer.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppGenerator.java
branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/
branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/META-INF/
branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/META-INF/jbossws-container-beans.xml
branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.WSFRuntimeLocator
branches/ropalka/webservices/src/scripts/
branches/ropalka/webservices/src/scripts/assembly-container.xml
branches/ropalka/webservices/src/scripts/assembly-resources.xml
Removed:
branches/ropalka/webservices/src/assembly/
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHook.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookEJB.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractInvocationHandler.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractWebServiceDeployer.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ArchiveDeployerHook.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataAdapter.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHook.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHookPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeploymentAspectHttpServer.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DynamicEndpointDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerFactoryImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXRPC.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXWS.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPreJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPreJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JSEArchiveMetaDataAdapter.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ModifyWebMetaDataDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RewriteResults.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RuntimeLoaderDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdapterFactoryImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdaptorImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandler.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB21.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB3.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ServiceEndpointInterceptor.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeployingHttpServer.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppGeneratorDeploymentAspect.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifier.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifierImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceContextFactoryImpl.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerEJB.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPostJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPreJSE.java
branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceMainDeployer.java
Modified:
branches/ropalka/build/build-distr.xml
branches/ropalka/thirdparty/pom.xml
branches/ropalka/webservices/build.xml
branches/ropalka/webservices/pom.xml
branches/ropalka/webservices/src/etc/component-info.xml
branches/ropalka/webservices/src/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-beans.xml
branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory
branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory
branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory
Log:
sync container/jboss501 qa branch with AS trunk webservices module
Modified: branches/ropalka/build/build-distr.xml
===================================================================
--- branches/ropalka/build/build-distr.xml 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/build/build-distr.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1578,10 +1578,18 @@
<mkdir dir="${install.all.deployers}/jbossws.deployer"/>
<unzip dest="${install.all.deployers}/jbossws.deployer" src="${_module.output}/lib/jbossws-jboss50-deployer.zip"/>
+ <!-- Copy jbossws container beans to deploy directory -->
+ <copy todir="${install.all}/deploy" file="${_module.output}/resources/jbossws-jboss50-container.jar/META-INF/jbossws-container-beans.xml"/>
+
+ <delete dir="${_module.output}/jbossws-native-resources"/>
+ <mkdir dir="${_module.output}/jbossws-native-resources"/>
+ <unzip dest="${_module.output}/jbossws-native-resources" src="${org.jboss.ws.native.lib}/jbossws-native-resources.jar"/>
+
<!-- Delegate to the jbossws deploy macros for stack specific deployments -->
- <ant antfile="${jboss.jbossws.resources}/jbossws-deploy-macros.xml" target="deploy-jbossws-native50" inheritall="false">
+ <ant antfile="${_module.output}/jbossws-native-resources/resources/jbossws-deploy-macros.xml" target="deploy-jbossws-native50" inheritall="false">
<property name="installserver" value="${install.all}"/>
- <property name="thirdpartydir" value="${project.thirdparty}"/>
+ <property name="artifactsdir" value="/home/opalka/svn/jbossws/stack/native/branches/jbossws-native-3.0.2/target/deploy-artifacts"/><!-- TODO: fix -->
+ <property name="jbossid" value="jboss501"/>
</ant>
</target>
Modified: branches/ropalka/thirdparty/pom.xml
===================================================================
--- branches/ropalka/thirdparty/pom.xml 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/thirdparty/pom.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -561,9 +561,6 @@
<dependency>
<groupId>org.jboss.ws</groupId>
<artifactId>jbossws-common</artifactId>
- <mapping>
- <componentId>jboss.jbossws-common</componentId>
- </mapping>
</dependency>
<dependency>
<groupId>org.jboss.ws.native</groupId>
Modified: branches/ropalka/webservices/build.xml
===================================================================
--- branches/ropalka/webservices/build.xml 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/build.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -80,8 +80,6 @@
<path refid="jboss.jboss.vfs.classpath"/>
<path refid="jboss.jbosssx.classpath"/>
<path refid="jboss.jbossws.classpath"/>
- <path refid="jboss.jbossws.common.classpath"/>
- <path refid="jboss.jbossws.framework.classpath"/>
<path refid="org.jboss.ws.classpath"/>
<path refid="jboss.jbossxb.classpath"/>
<path refid="jboss.metadata.classpath"/>
@@ -154,12 +152,9 @@
<fileset dir="${build.lib}">
<include name="jbossws-jboss50.jar"/>
</fileset>
- <fileset dir="${jboss.jbossws.common.lib}">
+ <fileset dir="${org.jboss.ws.lib}">
<include name="jbossws-common.jar"/>
</fileset>
- <fileset dir="${jboss.jbossws.framework.lib}">
- <include name="jbossws-framework.jar"/>
- </fileset>
<fileset dir="${build.resources}/jbossws-jboss50.deployer">
<include name="META-INF/jbossws-deployer-beans.xml"/>
</fileset>
@@ -176,7 +171,7 @@
-->
<target name="deploy" depends="module-jars">
- <!-- Build jbossws-native50.deployer -->
+ <!-- Build jbossws.deployer -->
<property name="jbossws.deployer.dir" value="../build/output/jboss-${specification.version}/server/default/deployers/jbossws.deployer"/>
<unzip dest="${jbossws.deployer.dir}" src="${build.lib}/jbossws-jboss50-deployer.zip"/>
Modified: branches/ropalka/webservices/pom.xml
===================================================================
--- branches/ropalka/webservices/pom.xml 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/pom.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -12,32 +12,6 @@
<name>JBoss Application Server Webservices</name>
<url>http://www.jboss.com/products/jbossas</url>
<description>JBoss Application Server (webservices module)</description>
- <build>
- <sourceDirectory>src/main</sourceDirectory>
- <resources>
- <resource>
- <directory>src/resources</directory>
- </resource>
- </resources>
- <plugins>
- <plugin>
- <groupId>org.apache.maven.plugins</groupId>
- <artifactId>maven-assembly-plugin</artifactId>
- <executions>
- <execution>
- <id>assembly</id>
- <goals>
- <goal>attached</goal>
- </goals>
- <phase>package</phase>
- </execution>
- </executions>
- <configuration>
- <descriptorSourceDirectory>src/assembly</descriptorSourceDirectory>
- </configuration>
- </plugin>
- </plugins>
- </build>
<dependencies>
<!-- Compile (global dependencies) -->
<dependency>
@@ -143,4 +117,36 @@
</dependency>
</dependencies>
+ <!-- Plugins -->
+ <build>
+ <sourceDirectory>src/main</sourceDirectory>
+ <resources>
+ <resource>
+ <directory>src/resources</directory>
+ </resource>
+ <resource>
+ <directory>src/main/resources/jbossws-jboss50.jar</directory>
+ </resource>
+ </resources>
+ <plugins>
+ <plugin>
+ <artifactId>maven-assembly-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>package</phase>
+ <goals>
+ <goal>single</goal>
+ </goals>
+ <configuration>
+ <descriptors>
+ <descriptor>src/scripts/assembly-container.xml</descriptor>
+ <descriptor>src/scripts/assembly-resources.xml</descriptor>
+ </descriptors>
+ </configuration>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+
</project>
Modified: branches/ropalka/webservices/src/etc/component-info.xml
===================================================================
--- branches/ropalka/webservices/src/etc/component-info.xml 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/etc/component-info.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -6,15 +6,13 @@
licenseType="lgpl">
<artifact id="jbossws-jboss50.jar"/>
- <artifact id="jbossws-jboss50-deployer.zip"/>
+ <artifact id="jbossws-jboss50-container.jar"/>
+ <artifact id="jbossws-jboss50-resources.zip"/>
<artifact id="jbossws-jboss50-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>
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHook.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHook.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHook.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,122 +0,0 @@
-/*
- * 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.jboss50;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
-import org.jboss.wsf.spi.deployment.*;
-
-//$Id: AbstractDeployerHook.java 4239 2007-08-07 19:13:42Z heiko.braun at jboss.com $
-
-
-/**
- * An abstract web service deployer.
- *
- * @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 DeploymentAspectManager deploymentAspectManager;
- private DeploymentModelFactory deploymentModelFactory;
-
- protected String deploymentManagerName;
-
- /** MC provided property **/
- public void setDeploymentManagerName(String deploymentManagerName)
- {
- this.deploymentManagerName = deploymentManagerName;
- }
-
- public DeploymentAspectManager getDeploymentAspectManager()
- {
- if(null == deploymentAspectManager)
- {
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- deploymentAspectManager = spiProvider.getSPI(DeploymentAspectManagerFactory.class).getDeploymentAspectManager( deploymentManagerName );
- }
-
- return deploymentAspectManager;
- }
-
- public DeploymentModelFactory getDeploymentModelFactory()
- {
- if(null == deploymentModelFactory)
- {
- SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
- deploymentModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
- }
-
- return deploymentModelFactory;
- }
-
- public ArchiveDeployment newDeployment(DeploymentUnit unit)
- {
- try
- {
- DeploymentModelFactory factory = getDeploymentModelFactory();
- ArchiveDeployment dep = (ArchiveDeployment)factory.newDeployment(unit.getSimpleName(), unit.getClassLoader());
- if (unit.getParent() != null)
- {
- DeploymentUnit parentUnit = unit.getParent();
- ArchiveDeployment parentDep = (ArchiveDeployment)factory.newDeployment(parentUnit.getSimpleName(), parentUnit.getClassLoader());
- 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);
- }
- }
-
- /** Return true if this deployment should be ignored
- */
- public boolean ignoreDeployment(DeploymentUnit unit)
- {
- String name = unit.getName();
- return (name.startsWith("jboss:id=") && name.indexOf("service=jacc") > 0);
- }
-
- /** Get the deployment type this deployer can handle
- */
- public abstract Deployment.DeploymentType getDeploymentType();
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookEJB.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookEJB.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookEJB.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,34 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: AbstractDeployerHookEJB.java 3146 2007-05-18 22:55:26Z thomas.diesler at jboss.com $
-
-/**
- * An abstract deployer for EJB Endpoints
- *
- * @author Thomas.Diesler at jboss.org
- * @since 25-Apr-2007
- */
-public abstract class AbstractDeployerHookEJB extends ArchiveDeployerHook
-{
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractDeployerHookJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,66 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: AbstractDeployerHookJSE.java 3772 2007-07-01 19:29:13Z thomas.diesler at jboss.com $
-
-import java.util.List;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.wsf.spi.deployment.Endpoint;
-
-/**
- * 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(DeploymentUnit unit)
- {
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
- boolean isGenerated = Boolean.TRUE.equals(unit.getAttachment(WebMetaDataModifier.PROPERTY_GENERATED_WEBAPP));
- return webMetaData != null && isGenerated == false;
- }
-
- protected String getTargetBean(ServletMetaData servlet)
- {
- String endpointClass = servlet.getServletClass();
- List<ParamValueMetaData> initParams = servlet.getInitParam();
- if (initParams != null)
- {
- for (ParamValueMetaData param : initParams)
- {
- if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(param.getParamName()))
- {
- endpointClass = param.getParamValue();
- break;
- }
- }
- }
- return endpointClass;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractInvocationHandler.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractInvocationHandler.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractInvocationHandler.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,55 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: InvocationHandlerEJB3.java 4023 2007-07-28 07:14:06Z thomas.diesler at jboss.com $
-
-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
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractWebServiceDeployer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractWebServiceDeployer.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/AbstractWebServiceDeployer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,72 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: AbstractWebServiceDeployer.java 4276 2007-08-09 08:34:58Z thomas.diesler at jboss.com $
-
-import java.util.LinkedList;
-import java.util.List;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AbstractComponentDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-
-/**
- * This deployer that calls the registered DeployerHooks
- *
- * @author Thomas.Diesler at jboss.org
- * @since 24-Apr-2007
- */
-public abstract class AbstractWebServiceDeployer<T> extends AbstractComponentDeployer
-{
- // provide logging
- private static final Logger log = Logger.getLogger(AbstractWebServiceDeployer.class);
-
- protected List<DeployerHook> deployerHooks = new LinkedList<DeployerHook>();
-
- public void addDeployerHook(DeployerHook deployer)
- {
- log.debug("Add deployer hook: " + deployer);
- deployerHooks.add(deployer);
- }
-
- public void removeDeployerHook(DeployerHook deployer)
- {
- log.debug("Remove deployer hook: " + deployer);
- deployerHooks.remove(deployer);
- }
-
- @Override
- public void internalDeploy(DeploymentUnit unit) throws DeploymentException
- {
- for (DeployerHook deployer : deployerHooks)
- deployer.deploy(unit);
- }
-
- @Override
- public void internalUndeploy(DeploymentUnit unit)
- {
- for (DeployerHook deployer : deployerHooks)
- deployer.undeploy(unit);
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ArchiveDeployerHook.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ArchiveDeployerHook.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ArchiveDeployerHook.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,151 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: ArchiveDeployerHook.java 4278 2007-08-09 09:13:34Z thomas.diesler at jboss.com $
-
-import java.net.URL;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.virtual.VirtualFile;
-import org.jboss.wsf.common.DOMUtils;
-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.metadata.webservices.WebservicesFactory;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
-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
-{
-
- /** Depending on the type of deployment, this method should return true
- * if the deployment contains web service endpoints.
- */
- public abstract boolean isWebServiceDeployment(DeploymentUnit unit);
-
- /** Create the Deployment for a given DeploymentUnit
- */
- public abstract Deployment createDeployment(DeploymentUnit unit);
-
- /** Get the Deployment for a given DeploymentUnit
- */
- public Deployment getDeployment(DeploymentUnit unit)
- {
- Deployment dep = unit.getAttachment(Deployment.class);
- return (dep != null && dep.getType() == getDeploymentType() ? dep : null);
- }
-
- public void deploy(DeploymentUnit unit) throws DeploymentException
- {
- if (ignoreDeployment(unit))
- return;
-
- if (isWebServiceDeployment(unit))
- {
- log.debug("deploy: " + unit.getName());
- Deployment dep = getDeployment(unit);
- if (dep == null)
- {
- dep = createDeployment(unit);
- dep.addAttachment(DeploymentUnit.class, unit);
- }
-
- getDeploymentAspectManager().deploy(dep);
- unit.addAttachment(Deployment.class, dep);
- }
- }
-
- public void undeploy(DeploymentUnit unit)
- {
- if (ignoreDeployment(unit))
- return;
-
- Deployment dep = getDeployment(unit);
- if (dep != null)
- {
- log.debug("undeploy: " + unit.getName());
- getDeploymentAspectManager().undeploy(dep);
- }
- }
-
- /** Unmrashall the webservices.xml if there is one
- */
- protected WebservicesMetaData getWebservicesMetaData(DeploymentUnit unit)
- {
- WebservicesMetaData wsMetaData = unit.getAttachment(WebservicesMetaData.class);
- UnifiedVirtualFile vfWebservices = getWebservicesFile(unit);
- 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.addAttachment(WebservicesMetaData.class, wsMetaData);
- }
- }
- catch (Exception ex)
- {
- throw new WSFDeploymentException(ex);
- }
- }
- return wsMetaData;
- }
-
- private UnifiedVirtualFile getWebservicesFile(DeploymentUnit unit)
- {
- UnifiedVirtualFile wsFile = null;
- if (unit instanceof VFSDeploymentUnit)
- {
- VirtualFile vf = ((VFSDeploymentUnit)unit).getMetaDataFile("webservices.xml");
- wsFile = vf != null ? new VirtualFileAdaptor(vf) : null;
- }
- return wsFile;
- }
-}
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/BareWSFRuntime.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/BareWSFRuntime.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/BareWSFRuntime.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,145 @@
+/*
+ * 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.jboss50;
+
+import org.jboss.logging.Logger;
+import org.jboss.wsf.spi.WSFRuntime;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspectManager;
+import org.jboss.wsf.spi.invocation.InvocationHandlerFactory;
+import org.jboss.wsf.spi.invocation.RequestHandlerFactory;
+import org.jboss.wsf.spi.management.EndpointRegistry;
+import org.jboss.wsf.spi.transport.TransportManagerFactory;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class BareWSFRuntime implements WSFRuntime
+{
+ private static final Logger log = Logger.getLogger(BareWSFRuntime.class);
+
+ private String runtimeName;
+
+ private DeploymentAspectManager deploymentManager;
+
+ private EndpointRegistry endpointRegistry;
+
+ private RequestHandlerFactory requestHandlerFactory;
+
+ private InvocationHandlerFactory invocationHandlerFactory;
+
+ private TransportManagerFactory transportManagerFactory;
+
+ public BareWSFRuntime(String runtimeName)
+ {
+ this.runtimeName = runtimeName;
+ }
+
+ // ---------------------------------------------------------------------------------
+
+ public void create(Deployment deployment)
+ {
+ deploymentManager.create(deployment, this);
+ }
+
+ public void start(Deployment deployment)
+ {
+ deploymentManager.start(deployment, this);
+ }
+
+ public void stop(Deployment deployment)
+ {
+ deploymentManager.stop(deployment, this);
+ }
+
+ public void destroy(Deployment deployment)
+ {
+ deploymentManager.destroy(deployment, this);
+ }
+
+ // ---------------------------------------------------------------------------------
+
+ public void setTransportManagerFactory(TransportManagerFactory factory)
+ {
+ assert factory!=null;
+ log.debug(runtimeName + " -> TransportManagerFactory: " + factory);
+ this.transportManagerFactory = factory;
+ }
+
+ public TransportManagerFactory getTransportManagerFactory()
+ {
+ return this.transportManagerFactory;
+ }
+
+ public void setEndpointRegistry(EndpointRegistry endpointRegistry)
+ {
+ assert endpointRegistry!=null;
+ log.debug(runtimeName + " -> EndpointRegistry: " + endpointRegistry);
+ this.endpointRegistry = endpointRegistry;
+ }
+
+ public EndpointRegistry getEndpointRegistry()
+ {
+ return this.endpointRegistry;
+ }
+
+ public void setDeploymentAspectManager(DeploymentAspectManager deploymentManager)
+ {
+ assert deploymentManager!=null;
+ log.debug(runtimeName + " -> DeploymentAspectManager: " + deploymentManager);
+ this.deploymentManager = deploymentManager;
+ }
+
+ public DeploymentAspectManager getDeploymentAspectManager()
+ {
+ return this.deploymentManager;
+ }
+
+ public void setRequestHandlerFactory(RequestHandlerFactory factory)
+ {
+ assert factory!=null;
+ log.debug(runtimeName + " -> RequestHandlerFactory: "+ factory);
+ this.requestHandlerFactory = factory;
+ }
+
+ public RequestHandlerFactory getRequestHandlerFactory()
+ {
+ return this.requestHandlerFactory;
+ }
+
+ public void setInvocationHandlerFactory(InvocationHandlerFactory factory)
+ {
+ assert factory!=null;
+ log.debug(runtimeName + " -> InvocationHandlerFactory: "+ factory);
+ this.invocationHandlerFactory = factory;
+ }
+
+ public InvocationHandlerFactory getInvocationHandlerFactory()
+ {
+ return this.invocationHandlerFactory;
+ }
+
+ public String toString()
+ {
+ return this.runtimeName+ ": " + super.toString();
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/BareWSFRuntime.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataAdapter.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataAdapter.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataAdapter.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,114 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: ContainerMetaDataAdapter.java 4022 2007-07-27 13:54:43Z heiko.braun at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
-import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData;
-import org.jboss.ejb3.Ejb3Deployment;
-
-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 ejbMetaDataAdapterEJB3 = new EJBArchiveMetaDataAdapterEJB3();
- private EJBArchiveMetaDataAdapterEJB21 ejbMetaDataAdapterEJB21 = new EJBArchiveMetaDataAdapterEJB21();
- private JSEArchiveMetaDataAdapter webMetaDataAdapter = new JSEArchiveMetaDataAdapter();
-
- public void setEjbMetaDataAdapterEJB21(EJBArchiveMetaDataAdapterEJB21 adapter)
- {
- this.ejbMetaDataAdapterEJB21 = adapter;
- }
-
- public void setEjbMetaDataAdapterEJB3(EJBArchiveMetaDataAdapterEJB3 adapter)
- {
- this.ejbMetaDataAdapterEJB3 = adapter;
- }
-
- public void setWebMetaDataAdapter(JSEArchiveMetaDataAdapter adapter)
- {
- this.webMetaDataAdapter = adapter;
- }
-
- public void buildContainerMetaData(Deployment dep, DeploymentUnit unit)
- {
- dep.addAttachment(DeploymentUnit.class, unit);
-
- try
- {
- // JSE endpoints
- if (unit.getAttachment(JBossWebMetaData.class) != null)
- {
- JSEArchiveMetaData webMetaData = webMetaDataAdapter.buildMetaData(dep, unit);
- if (webMetaData != null)
- dep.addAttachment(JSEArchiveMetaData.class, webMetaData);
-
- if (dep instanceof ArchiveDeployment)
- {
- URL webURL = ((ArchiveDeployment)dep).getRootFile().toURL();
- dep.setProperty(WebMetaDataModifier.PROPERTY_WEBAPP_URL, webURL);
- }
- }
-
- // EJB3 endpoints
- else if (unit.getAttachment(Ejb3Deployment.class) != null)
- {
- EJBArchiveMetaData ejbMetaData = ejbMetaDataAdapterEJB3.buildMetaData(dep, unit);
- if (ejbMetaData != null)
- dep.addAttachment(EJBArchiveMetaData.class, ejbMetaData);
- }
-
- // EJB21 endpoints
- else if (unit.getAttachment(JBossMetaData.class) != null)
- {
- EJBArchiveMetaData ejbMetaData = ejbMetaDataAdapterEJB21.buildMetaData(dep, unit);
- if (ejbMetaData != null)
- dep.addAttachment(EJBArchiveMetaData.class, ejbMetaData);
- }
- }
- catch (RuntimeException rte)
- {
- throw rte;
- }
- catch (Exception ex)
- {
- throw new IllegalStateException(ex);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataDeploymentAspect.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ContainerMetaDataDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,54 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: UnifiedDeploymentInfoDeployer.java 3772 2007-07-01 19:29:13Z thomas.diesler at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspect;
-
-/**
- * A deployer that builds the UnifiedDeploymentInfo
- *
- * @author Thomas.Diesler at jboss.org
- * @since 25-Apr-2007
- */
-public class ContainerMetaDataDeploymentAspect extends DeploymentAspect
-{
- private ContainerMetaDataAdapter metaDataAdapter = new ContainerMetaDataAdapter();
-
- public void setMetaDataAdapter(ContainerMetaDataAdapter adapter)
- {
- this.metaDataAdapter = adapter;
- }
-
- @Override
- public void create(Deployment dep)
- {
- DeploymentUnit unit = dep.getAttachment(DeploymentUnit.class);
- if (unit == null)
- throw new IllegalStateException("Cannot obtain deployment unit");
-
- metaDataAdapter.buildContainerMetaData(dep, unit);
- }
-}
\ No newline at end of file
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHook.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHook.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHook.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,40 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: DeployerHook.java 3772 2007-07-01 19:29:13Z thomas.diesler at jboss.com $
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-
-/**
- * An interface for all web service deployer hooks
- *
- * @author Thomas.Diesler at jboss.org
- * @since 24-Apr-2007
- */
-public interface DeployerHook
-{
- void deploy(DeploymentUnit unit) throws DeploymentException;
-
- void undeploy(DeploymentUnit unit);
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHookPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHookPostJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeployerHookPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,61 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: DeployerHookPostJSE.java 4276 2007-08-09 08:34:58Z thomas.diesler at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.wsf.spi.deployment.Deployment;
-
-/**
- * @author Heiko.Braun at jboss.com
- * @author Thomas.Diesler at jboss.com
- */
-public abstract class DeployerHookPostJSE extends AbstractDeployerHookJSE
-{
- /**
- * The deployment should be created in phase 1.
- */
- public Deployment createDeployment(DeploymentUnit unit)
- {
- Deployment dep = unit.getAttachment(Deployment.class);
- if (null == dep)
- throw new IllegalStateException("spi.Deployment missing. It should be created in Phase 1");
-
- return dep;
- }
-
- /**
- * 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(DeploymentUnit unit)
- {
- if (super.isWebServiceDeployment(unit) == false)
- return false;
-
- Deployment deployment = unit.getAttachment(Deployment.class);
- return deployment != null;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeploymentAspectHttpServer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeploymentAspectHttpServer.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DeploymentAspectHttpServer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,123 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: JBossHttpServer.java 1786 2007-01-04 14:30:04Z thomas.diesler at jboss.com $
-
-import javax.xml.ws.Endpoint;
-import javax.xml.ws.WebServiceException;
-
-import org.jboss.wsf.spi.SPIProvider;
-import org.jboss.wsf.spi.SPIProviderResolver;
-import org.jboss.wsf.spi.deployment.AbstractExtensible;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspectManager;
-import org.jboss.wsf.spi.deployment.DeploymentAspectManagerFactory;
-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;
-
-/**
- * A HTTP Server that uses DeploymentAspects
- *
- * @author Thomas.Diesler at jboss.org
- * @since 07-Jul-2006
- */
-public class DeploymentAspectHttpServer extends AbstractExtensible implements HttpServer
-{
- /** 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
- DeploymentAspectManagerFactory depManagerFactory = spiProvider.getSPI(DeploymentAspectManagerFactory.class);
- DeploymentAspectManager depManager = depManagerFactory.getDeploymentAspectManager("WSDeploymentAspectManagerEndpointAPI");
- depManager.deploy(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
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DynamicEndpointDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DynamicEndpointDeploymentAspect.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/DynamicEndpointDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,120 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id$
-
-import javax.xml.ws.WebServiceException;
-
-import org.jboss.deployers.client.plugins.deployment.AbstractDeployment;
-import org.jboss.deployers.client.spi.DeployerClient;
-import org.jboss.deployers.client.spi.DeploymentFactory;
-import org.jboss.deployers.spi.attachments.MutableAttachments;
-import org.jboss.deployers.structure.spi.ClassLoaderFactory;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspect;
-import org.jboss.wsf.spi.deployment.WSFDeploymentException;
-
-/**
- * Deploy the generated webapp to JBoss
- *
- * @author Thomas.Diesler at jboss.org
- * @since 12-May-2006
- */
-public class DynamicEndpointDeploymentAspect extends DeploymentAspect
-{
- // provide logging
- private static Logger log = Logger.getLogger(DynamicEndpointDeploymentAspect.class);
-
- private DeploymentFactory factory = new DeploymentFactory();
- private WebMetaDataModifier webMetaDataModifier;
- private DeployerClient mainDeployer;
-
- public void setWebMetaDataModifier(WebMetaDataModifier webMetaDataModifier)
- {
- this.webMetaDataModifier = webMetaDataModifier;
- }
-
- public void setMainDeployer(DeployerClient mainDeployer)
- {
- this.mainDeployer = mainDeployer;
- }
-
- public void create(Deployment dep)
- {
- JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
- if (jbwmd == null)
- throw new WebServiceException("Cannot find web meta data");
-
- try
- {
- webMetaDataModifier.modifyMetaData(dep);
-
- AbstractDeployment deployment = createSimpleDeployment(dep.getSimpleName());
- MutableAttachments mutableAttachments = (MutableAttachments)deployment.getPredeterminedManagedObjects();
- mutableAttachments.addAttachment(WebMetaDataModifier.PROPERTY_GENERATED_WEBAPP, Boolean.TRUE);
- mutableAttachments.addAttachment(ClassLoaderFactory.class, new ContextClassLoaderFactory());
- mutableAttachments.addAttachment(JBossWebMetaData.class, jbwmd);
- mainDeployer.deploy(deployment);
- }
- catch (Exception ex)
- {
- WSFDeploymentException.rethrow(ex);
- }
- }
-
- public void destroy(Deployment dep)
- {
- try
- {
- AbstractDeployment deployment = createSimpleDeployment(dep.getSimpleName());
- mainDeployer.undeploy(deployment);
- }
- catch (Exception ex)
- {
- WSFDeploymentException.rethrow(ex);
- }
- }
-
- private AbstractDeployment createSimpleDeployment(String name)
- {
- AbstractDeployment unit = new AbstractDeployment(name);
- // There is one top level deployment
- factory.addContext(unit, "");
- return unit;
- }
-
- private static class ContextClassLoaderFactory implements ClassLoaderFactory
- {
- public ClassLoader createClassLoader(DeploymentUnit unit) throws Exception
- {
- return Thread.currentThread().getContextClassLoader();
- }
-
- public void removeClassLoader(DeploymentUnit unit) throws Exception
- {
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB21.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,176 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: EJBArchiveMetaDataAdapterEJB21.java 4013 2007-07-27 04:37:52Z thomas.diesler at jboss.com $
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
-import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
-import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
-import org.jboss.metadata.javaee.spec.PortComponent;
-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.EJBSecurityMetaData;
-import org.jboss.wsf.spi.metadata.j2ee.MDBMetaData;
-import org.jboss.wsf.spi.metadata.j2ee.SLSBMetaData;
-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 class EJBArchiveMetaDataAdapterEJB21
-{
- // logging support
- private static Logger log = Logger.getLogger(EJBArchiveMetaDataAdapterEJB21.class);
-
- public EJBArchiveMetaData buildMetaData(Deployment dep, DeploymentUnit unit)
- {
- JBossMetaData jbossMetaData = unit.getAttachment(JBossMetaData.class);
- dep.addAttachment(JBossMetaData.class, jbossMetaData);
-
- EJBArchiveMetaData ejbMetaData = new EJBArchiveMetaData();
- buildEnterpriseBeansMetaData(ejbMetaData, jbossMetaData);
- buildWebservicesMetaData(ejbMetaData, jbossMetaData);
- ejbMetaData.setSecurityDomain(jbossMetaData.getSecurityDomain());
-
- return ejbMetaData;
- }
-
- private void buildEnterpriseBeansMetaData(EJBArchiveMetaData ejbMetaData, JBossMetaData jbossMetaData)
- {
- List<EJBMetaData> targetBeans = new ArrayList<EJBMetaData>();
- JBossEnterpriseBeansMetaData sourceBeans = jbossMetaData.getEnterpriseBeans();
- Iterator<JBossEnterpriseBeanMetaData> it = sourceBeans.iterator();
- while (it.hasNext())
- {
- JBossEnterpriseBeanMetaData bmd = it.next();
- buildBeanMetaData(targetBeans, bmd);
- }
- ejbMetaData.setEnterpriseBeans(targetBeans);
- }
-
- private void buildWebservicesMetaData(EJBArchiveMetaData ejbMetaData, JBossMetaData jbossMetaData)
- {
- WebservicesMetaData webservices = jbossMetaData.getWebservices();
- if (webservices != null)
- {
- String contextRoot = webservices.getContextRoot();
- ejbMetaData.setWebServiceContextRoot(contextRoot);
-
- ejbMetaData.setPublishLocationAdapter(getPublishLocationAdpater(webservices));
-
- WebserviceDescriptionsMetaData wsDescriptions = webservices.getWebserviceDescriptions();
- if (wsDescriptions != null)
- {
- if (wsDescriptions.size() > 1)
- log.warn("Multiple <webservice-description> elements not supported");
-
- if (wsDescriptions.size() > 0)
- {
- WebserviceDescriptionMetaData wsd = wsDescriptions.iterator().next();
- ejbMetaData.setConfigName(wsd.getConfigName());
- ejbMetaData.setConfigFile(wsd.getConfigFile());
- }
- }
- }
- }
-
- private PublishLocationAdapter getPublishLocationAdpater(final WebservicesMetaData wsMetaData)
- {
- return new PublishLocationAdapter()
- {
- public String getWsdlPublishLocationByName(String name)
- {
- String wsdlPublishLocation = null;
- WebserviceDescriptionsMetaData wsDescriptions = wsMetaData.getWebserviceDescriptions();
- if (wsDescriptions != null && wsDescriptions.get(name) != null)
- {
- WebserviceDescriptionMetaData wsdMetaData = wsDescriptions.get(name);
- wsdlPublishLocation = wsdMetaData.getWsdlPublishLocation();
- }
- return wsdlPublishLocation;
- }
- };
- }
-
- private EJBMetaData buildBeanMetaData(List<EJBMetaData> ejbBeans, JBossEnterpriseBeanMetaData jbossBeansMetaData)
- {
- EJBMetaData targetBean = null;
- if (jbossBeansMetaData.isSession())
- {
- targetBean = new SLSBMetaData();
- JBossSessionBeanMetaData jbossSessionBean = (JBossSessionBeanMetaData)jbossBeansMetaData;
-
- targetBean.setEjbName(jbossSessionBean.getEjbName());
- targetBean.setEjbClass(jbossSessionBean.getEjbClass());
- targetBean.setServiceEndpointInterface(jbossSessionBean.getServiceEndpoint());
- targetBean.setHome(jbossSessionBean.getHome());
- targetBean.setLocalHome(jbossSessionBean.getLocalHome());
- targetBean.setJndiName(jbossSessionBean.determineJndiName());
- targetBean.setLocalJndiName(jbossBeansMetaData.determineLocalJndiName());
-
- PortComponent pcmd = jbossSessionBean.getPortComponent();
- if (pcmd != null)
- {
- targetBean.setPortComponentName(pcmd.getPortComponentName());
- targetBean.setPortComponentURI(pcmd.getPortComponentURI());
- EJBSecurityMetaData smd = new EJBSecurityMetaData();
- smd.setAuthMethod(pcmd.getAuthMethod());
- smd.setTransportGuarantee(pcmd.getTransportGuarantee());
- smd.setSecureWSDLAccess(pcmd.getSecureWSDLAccess());
- targetBean.setSecurityMetaData(smd);
- }
- }
- else if (jbossBeansMetaData.isMessageDriven())
- {
- targetBean = new MDBMetaData();
- JBossMessageDrivenBeanMetaData jbossMessageBean = (JBossMessageDrivenBeanMetaData)jbossBeansMetaData;
-
- targetBean.setEjbName(jbossMessageBean.getEjbName());
- targetBean.setEjbClass(jbossMessageBean.getEjbClass());
- //targetBean.setServiceEndpointInterface(???);
- //targetBean.setJndiName(???);
- targetBean.setLocalJndiName(jbossBeansMetaData.getLocalJndiName());
- ((MDBMetaData)targetBean).setDestinationJndiName(jbossMessageBean.getDestinationJndiName());
- }
-
- if (targetBean != null)
- ejbBeans.add(targetBean);
-
- return targetBean;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB3.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/EJBArchiveMetaDataAdapterEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,182 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: EJBArchiveMetaDataAdapterEJB3.java 4239 2007-08-07 19:13:42Z heiko.braun at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
-import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-import org.jboss.wsf.spi.metadata.j2ee.*;
-import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData.PublishLocationAdapter;
-
-import javax.ejb.ActivationConfigProperty;
-import javax.ejb.MessageDriven;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-/**
- * 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 EJBArchiveMetaData buildMetaData(Deployment dep, DeploymentUnit unit)
- {
- EJBArchiveMetaData umd = new EJBArchiveMetaData();
-
- WebServiceDeployment webServiceDeployment = dep.getAttachment(WebServiceDeployment.class);
- buildEnterpriseBeansMetaData(umd, webServiceDeployment);
-
- JBossMetaData jbMetaData = unit.getAttachment(JBossMetaData.class);
- if (jbMetaData != null)
- buildWebservicesMetaData(umd, jbMetaData);
-
- return umd;
- }
-
- private void buildWebservicesMetaData(EJBArchiveMetaData ejbMetaData, JBossMetaData jbMetaData)
- {
- WebservicesMetaData wsMetaData = jbMetaData.getWebservices();
- if (wsMetaData != null)
- {
- String contextRoot = wsMetaData.getContextRoot();
- ejbMetaData.setWebServiceContextRoot(contextRoot);
-
- ejbMetaData.setPublishLocationAdapter(getPublishLocationAdpater(wsMetaData));
-
- WebserviceDescriptionsMetaData wsDescriptions = wsMetaData.getWebserviceDescriptions();
- if (wsDescriptions != null)
- {
- if (wsDescriptions.size() > 1)
- log.warn("Multiple <webservice-description> elements not supported");
-
- if (wsDescriptions.size() > 0)
- {
- WebserviceDescriptionMetaData wsd = wsDescriptions.iterator().next();
- ejbMetaData.setConfigName(wsd.getConfigName());
- ejbMetaData.setConfigFile(wsd.getConfigFile());
- }
- }
- }
- }
-
- private void buildEnterpriseBeansMetaData(EJBArchiveMetaData jarMetaData, WebServiceDeployment ejb3Deployment)
- {
- List<EJBMetaData> ejbMetaDataList = new ArrayList<EJBMetaData>();
- Iterator<WebServiceDeclaration> it = ejb3Deployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
-
- // TODO: Add PortComponent parsing to EJBDescriptorHandler
- PortComponentSpec pcMetaData = container.getAnnotation(PortComponentSpec.class);
- MessageDriven mdbMetaData = container.getAnnotation(MessageDriven.class);
-
- EJBMetaData ejbMetaData = null;
-
- if(mdbMetaData!=null)
- {
- ejbMetaData = new MDBMetaData();
-
- ActivationConfigProperty[] props = mdbMetaData.activationConfig();
- if (props != null)
- {
- String destination = getActivationProperty("destination", props);
- if (destination != null)
- {
- ((MDBMetaData)ejbMetaData).setDestinationJndiName(destination);
- }
- }
- }
- else
- {
- ejbMetaData = new SLSBMetaData();
- }
-
- if (ejbMetaData != null)
- {
- ejbMetaData.setEjbName(container.getComponentName());
- ejbMetaData.setEjbClass(container.getComponentClassName());
-
- if (pcMetaData != null)
- {
- ejbMetaData.setPortComponentName(pcMetaData.portComponentName());
- ejbMetaData.setPortComponentURI(pcMetaData.portComponentURI());
- EJBSecurityMetaData smd = new EJBSecurityMetaData();
- smd.setAuthMethod(pcMetaData.authMethod());
- smd.setTransportGuarantee(pcMetaData.transportGuarantee());
- smd.setSecureWSDLAccess(pcMetaData.secureWSDLAccess());
- ejbMetaData.setSecurityMetaData(smd);
- }
-
- ejbMetaDataList.add(ejbMetaData);
- }
- }
-
- jarMetaData.setEnterpriseBeans(ejbMetaDataList);
- }
-
- private String getActivationProperty(String name, ActivationConfigProperty[] props)
- {
- String result = null;
- for(ActivationConfigProperty p : props)
- {
- if(p.propertyName().equals(name))
- {
- result = p.propertyValue();
- break;
- }
- }
-
- return result;
- }
-
- private PublishLocationAdapter getPublishLocationAdpater(final WebservicesMetaData wsMetaData)
- {
- return new PublishLocationAdapter() {
- public String getWsdlPublishLocationByName(String name)
- {
- String wsdlPublishLocation = null;
- WebserviceDescriptionsMetaData wsDescriptions = wsMetaData.getWebserviceDescriptions();
- if (wsDescriptions != null && wsDescriptions.get(name) != null)
- {
- WebserviceDescriptionMetaData wsdMetaData = wsDescriptions.get(name);
- wsdlPublishLocation = wsdMetaData.getWsdlPublishLocation();
- }
- return wsdlPublishLocation;
- }
- };
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB21.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,198 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: InvocationHandlerEJB21.java 4023 2007-07-28 07:14:06Z thomas.diesler at jboss.com $
-
-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.security.SecurityContext;
-import org.jboss.security.SecurityContextAssociation;
-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.
- *
- * @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;
-
- 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 MBeanServer
- server = MBeanServerLocator.locateJBoss();
-
- // get the bean's JNDI name
- jndiName = beanMetaData.getContainerObjectNameJndiName();
- if (jndiName == null)
- throw new WebServiceException("Cannot obtain JNDI name for: " + ejbName);
- }
-
- public void invoke(Endpoint ep, Invocation inv) throws Exception
- {
- log.debug("Invoke: " + inv.getJavaMethod().getName());
-
- if (objectName == null)
- {
- objectName = ObjectNameFactory.create("jboss.j2ee:jndiName=" + jndiName + ",service=EJB");
- if (server.isRegistered(objectName) == false)
- throw new WebServiceException("Cannot find service endpoint target: " + objectName);
-
- // Inject the Service endpoint interceptor
- injectServiceEndpointInterceptor(objectName, ep.getShortName());
- }
-
- // 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();
- SecurityContext sc = SecurityContextAssociation.getSecurityContext();
- Principal principal = securityAdaptor.getPrincipal();
- Object credential = securityAdaptor.getCredential();
-
- if (principal == null && sc != null)
- principal = sc.getUtil().getUserPrincipal();
-
- if (credential == null && sc != null)
- credential = sc.getUtil().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;
- }
-
- private void injectServiceEndpointInterceptor(ObjectName objectName, String ejbName)
- {
- // 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);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB3.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,110 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: InvocationHandlerEJB3.java 4099 2007-08-02 13:36:49Z thomas.diesler at jboss.com $
-
-import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.kernel.spi.dependency.KernelController;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.invocation.Invocation;
-import org.jboss.wsf.spi.invocation.integration.InvocationContextCallback;
-import org.jboss.wsf.spi.invocation.integration.ServiceEndpointContainer;
-import org.jboss.wsf.spi.util.KernelLocator;
-
-import javax.xml.ws.WebServiceException;
-import java.lang.reflect.Method;
-
-/**
- * Handles invocations on EJB3 endpoints.
- *
- * @author Thomas.Diesler at jboss.org
- * @author Heiko.Braun at jboss.com
- *
- * @since 25-Apr-2007
- */
-public class InvocationHandlerEJB3 extends AbstractInvocationHandler
-{
-
- public static final String CONTAINER_NAME = "org.jboss.wsf.spi.invocation.ContainerName";
-
- private String containerName;
- private KernelController houston;
- private ServiceEndpointContainer invocationTarget;
-
- InvocationHandlerEJB3()
- {
- houston = KernelLocator.getKernel().getController();
- }
-
- public Invocation createInvocation()
- {
- return new Invocation();
- }
-
- public void init(Endpoint ep)
- {
- containerName = (String)ep.getProperty(InvocationHandlerEJB3.CONTAINER_NAME);
- assert containerName!=null : "Target container name not set";
-
- ControllerContext context = houston.getInstalledContext(containerName);
- if (context == null)
- throw new WebServiceException("Cannot find service endpoint target: " + containerName);
-
- assert (context.getTarget() instanceof ServiceEndpointContainer) : "Invocation target mismatch";
- this.invocationTarget = (ServiceEndpointContainer) context.getTarget();
- }
-
- public void invoke(Endpoint ep, Invocation wsInv) throws Exception
- {
- try
- {
- Class beanClass = invocationTarget.getServiceImplementationClass();
- Method method = getImplMethod(beanClass, wsInv.getJavaMethod());
- Object[] args = wsInv.getArgs();
- InvocationContextCallback invProps = new EJB3InvocationContextCallback(wsInv);
-
- Object retObj = invocationTarget.invokeEndpoint(method, args, invProps);
-
- wsInv.setReturnValue(retObj);
- }
- catch (Throwable th)
- {
- handleInvocationException(th);
- }
- }
-
- static class EJB3InvocationContextCallback implements InvocationContextCallback
- {
- private Invocation wsInv;
-
- public EJB3InvocationContextCallback(Invocation wsInv)
- {
- this.wsInv = wsInv;
- }
-
- public <T> T get(Class<T> propertyType)
- {
- return wsInv.getInvocationContext().getAttachment(propertyType);
- }
- }
-}
\ No newline at end of file
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerFactoryImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerFactoryImpl.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerFactoryImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,65 +0,0 @@
-/*
- * 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.jboss50;
-
-import org.jboss.wsf.spi.invocation.*;
-
-/**
- * The default invocation model factory fro AS 5.0.
- *
- * @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;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXRPC.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXRPC.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXRPC.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,72 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: DefaultInvocationHandlerJAXRPC.java 3959 2007-07-20 14:44:19Z heiko.braun at jboss.com $
-
-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);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXWS.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXWS.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJAXWS.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,34 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: DefaultInvocationHandlerJAXWS.java 4023 2007-07-28 07:14:06Z thomas.diesler at jboss.com $
-
-/**
- * Handles invocations on JSE endpoints.
- *
- * @author Thomas.Diesler at jboss.org
- * @since 25-Apr-2007
- */
-public class InvocationHandlerJAXWS extends InvocationHandlerJSE
-{
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,128 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: DefaultInvocationHandlerJAXWS.java 4023 2007-07-28 07:14:06Z thomas.diesler at jboss.com $
-
-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;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB21.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,88 +0,0 @@
-/*
- * 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.jboss50;
-
-// $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("Canot 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);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB3.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/InvocationHandlerMDB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,88 +0,0 @@
-/*
- * 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.jboss50;
-
-// $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("Canot 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);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookEJB21.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,112 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: JAXRPCDeployerHookEJB21.java 4239 2007-08-07 19:13:42Z heiko.braun at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-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;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-
-/**
- * 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(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setRuntimeClassLoader(unit.getClassLoader());
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- JBossMetaData jbmd = unit.getAttachment(JBossMetaData.class);
- if (jbmd == null)
- throw new IllegalStateException("Deployment unit does not contain application meta data");
-
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- if (wsMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain webservices meta data");
-
- WebServiceDeployment webServiceDeployment = unit.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment == null)
- throw new IllegalStateException("Deployment unit does not contain webServiceDeployment");
-
- // Copy the attachments
- dep.addAttachment(WebservicesMetaData.class, wsMetaData);
- dep.addAttachment(JBossMetaData.class, jbmd);
- dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
-
- 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");
-
- JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(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(DeploymentUnit unit)
- {
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- return wsMetaData != null && unit.getAllMetaData(JBossMetaData.class).size() > 0;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPostJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,52 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: JAXRPCDeployerHookPostJSE.java 4244 2007-08-08 09:19:04Z thomas.diesler at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.wsf.spi.deployment.Deployment;
-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 JAXRPCDeployerHookPostJSE extends DeployerHookPostJSE
-{
- /** Get the deployment type this deployer can handle
- */
- public Deployment.DeploymentType getDeploymentType()
- {
- return Deployment.DeploymentType.JAXRPC_JSE;
- }
-
-
- @Override
- public boolean isWebServiceDeployment(DeploymentUnit unit)
- {
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- return (wsMetaData!=null && super.isWebServiceDeployment(unit));
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPreJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPreJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXRPCDeployerHookPreJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,123 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: JAXRPCDeployerHookPreJSE.java 4276 2007-08-09 08:34:58Z thomas.diesler at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-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
-{
- /** 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(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setRuntimeClassLoader(null);
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
- if (webMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain web meta data");
-
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- if (wsMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain webservices meta data");
-
- // Copy the attachments
- dep.addAttachment(WebservicesMetaData.class, wsMetaData);
- dep.addAttachment(JBossWebMetaData.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");
-
- ServletMetaData servlet = getServletForName(webMetaData, servletLink);
- String targetBean = getTargetBean(servlet);
-
- // Create the endpoint
- Endpoint ep = newEndpoint(targetBean);
- ep.setShortName(servletLink);
- service.addEndpoint(ep);
- }
- }
-
- return dep;
- }
-
- private ServletMetaData getServletForName(JBossWebMetaData wmd, String servletLink)
- {
- for (JBossServletMetaData servlet : wmd.getServlets())
- {
- if (servletLink.equals(servlet.getName()))
- {
- return servlet;
- }
- }
- throw new IllegalStateException("Cannot find servlet for link: " + servletLink);
- }
-
- @Override
- public boolean isWebServiceDeployment(DeploymentUnit unit)
- {
- if (super.isWebServiceDeployment(unit) == false)
- return false;
-
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
- return wsMetaData != null;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookEJB3.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,128 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: JAXWSDeployerHookEJB3.java 4239 2007-08-07 19:13:42Z heiko.braun at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Service;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceProvider;
-import java.util.Iterator;
-
-/**
- * A deployer JAXWS EJB3 Endpoints
- *
- * @author Thomas.Diesler at jboss.org
- * @since 25-Apr-2007
- */
-public class JAXWSDeployerHookEJB3 extends AbstractDeployerHookEJB
-{
- /** Get the deployment type this deployer can handle
- */
- public DeploymentType getDeploymentType()
- {
- return DeploymentType.JAXWS_EJB3;
- }
-
- @Override
- public Deployment createDeployment(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setRuntimeClassLoader(unit.getClassLoader());
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- WebServiceDeployment webServiceDeployment = unit.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment == null)
- throw new IllegalStateException("Deployment unit does not contain webServiceDeployment");
-
- // Copy the attachments
- dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
-
- Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
- if (isWebServiceBean(container))
- {
- String ejbName = container.getComponentName();
- String epBean = container.getComponentClassName();
-
- // Create the endpoint
- Endpoint ep = newEndpoint(epBean);
- ep.setShortName(ejbName);
- String containName = container.getContainerName();
- if(null==containName)
- throw new IllegalArgumentException("Target container name not set");
- ep.setProperty(InvocationHandlerEJB3.CONTAINER_NAME, containName);
- service.addEndpoint(ep);
- }
- }
-
- return dep;
- }
-
- @Override
- public boolean isWebServiceDeployment(DeploymentUnit unit)
- {
- WebServiceDeployment webServiceDeployment = unit.getAttachment(WebServiceDeployment.class);
- if (null == webServiceDeployment )
- return false;
-
- boolean isWebServiceDeployment = false;
-
- Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
- if (isWebServiceBean(container))
- {
- isWebServiceDeployment = true;
- break;
- }
- }
-
- return isWebServiceDeployment;
- }
-
- private boolean isWebServiceBean(WebServiceDeclaration container)
- {
- boolean isWebServiceBean = false;
- boolean isWebService = container.getAnnotation(WebService.class) != null;
- boolean isWebServiceProvider = container.getAnnotation(WebServiceProvider.class) != null;
- isWebServiceBean = isWebService || isWebServiceProvider;
-
- return isWebServiceBean;
- }
-}
\ No newline at end of file
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPostJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,54 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: JAXWSDeployerHookPostJSE.java 4244 2007-08-08 09:19:04Z thomas.diesler at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
-
-/**
- * @author Heiko.Braun at jboss.com
- * @version $Revision: 4244 $
- */
-public class JAXWSDeployerHookPostJSE extends DeployerHookPostJSE
-{
- /** Get the deployment type this deployer can handle
- */
- public Deployment.DeploymentType getDeploymentType()
- {
- return Deployment.DeploymentType.JAXWS_JSE;
- }
-
- /**
- * Reject JAX-RPC deployments.
- *
- * @param unit
- * @return
- */
- public boolean isWebServiceDeployment(DeploymentUnit unit)
- {
- WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);// JAX-RPC artefact
- return (wsMetaData == null && super.isWebServiceDeployment(unit));
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPreJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPreJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JAXWSDeployerHookPreJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,136 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: JAXWSDeployerHookJSE.java 4239 2007-08-07 19:13:42Z heiko.braun at jboss.com $
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.metadata.serviceref.VirtualFileAdaptor;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-import org.jboss.wsf.spi.deployment.Endpoint;
-import org.jboss.wsf.spi.deployment.Service;
-
-import javax.jws.WebService;
-import javax.xml.ws.WebServiceProvider;
-import java.util.ArrayList;
-import java.util.List;
-
-/**
- * A deployer JAXWS JSE Endpoints
- *
- * @author Thomas.Diesler at jboss.org
- * @since 25-Apr-2007
- */
-public class JAXWSDeployerHookPreJSE extends AbstractDeployerHookJSE
-{
- /** Get the deployment type this deployer can handle
- */
- public DeploymentType getDeploymentType()
- {
- return DeploymentType.JAXWS_JSE;
- }
-
- @Override
- public Deployment createDeployment(DeploymentUnit unit)
- {
- ArchiveDeployment dep = newDeployment(unit);
- dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
- dep.setType(getDeploymentType());
-
- Service service = dep.getService();
-
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
- if (webMetaData == null)
- throw new IllegalStateException("Deployment unit does not contain web meta data");
-
- // Copy the attachments
- dep.addAttachment(JBossWebMetaData.class, webMetaData);
-
- List<ServletMetaData> servlets = getRelevantServlets(webMetaData, unit.getClassLoader());
- for (ServletMetaData servlet : servlets)
- {
- String servletName = servlet.getName();
- String targetBean = getTargetBean(servlet);
-
- // Create the endpoint
- Endpoint ep = newEndpoint(targetBean);
- ep.setShortName(servletName);
- service.addEndpoint(ep);
- }
-
- return dep;
- }
-
- @Override
- public boolean isWebServiceDeployment(DeploymentUnit unit)
- {
- if (super.isWebServiceDeployment(unit) == false)
- return false;
-
- boolean isWebServiceDeployment = false;
- try
- {
- JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
- List<ServletMetaData> servlets = getRelevantServlets(webMetaData, unit.getClassLoader());
- isWebServiceDeployment = servlets.size() > 0;
- }
- catch (Exception ex)
- {
- log.error("Cannot process web deployment", ex);
- }
-
- return isWebServiceDeployment;
- }
-
- private List<ServletMetaData> getRelevantServlets(JBossWebMetaData webMetaData, ClassLoader loader)
- {
- List<ServletMetaData> servlets = new ArrayList<ServletMetaData>();
- for (ServletMetaData servlet : webMetaData.getServlets())
- {
- String servletClassName = getTargetBean(servlet);
-
- // Skip JSPs
- if (servletClassName == null || servletClassName.length() == 0)
- continue;
-
- try
- {
- Class<?> servletClass = loader.loadClass(servletClassName.trim());
- boolean isWebService = servletClass.isAnnotationPresent(WebService.class);
- boolean isWebServiceProvider = servletClass.isAnnotationPresent(WebServiceProvider.class);
- if (isWebService || isWebServiceProvider)
- servlets.add(servlet);
- }
- catch (ClassNotFoundException ex)
- {
- log.warn("Cannot load servlet class: " + servletClassName);
- continue;
- }
- }
- return servlets;
- }
-}
\ No newline at end of file
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JSEArchiveMetaDataAdapter.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JSEArchiveMetaDataAdapter.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/JSEArchiveMetaDataAdapter.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,206 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: JSEArchiveMetaDataAdapter.java 4013 2007-07-27 04:37:52Z thomas.diesler at jboss.com $
-
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
-import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
-import org.jboss.metadata.ear.jboss.JBossAppMetaData;
-import org.jboss.metadata.ear.spec.ModuleMetaData;
-import org.jboss.metadata.ear.spec.WebModuleMetaData;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.jboss.JBossServletsMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.SecurityConstraintMetaData;
-import org.jboss.metadata.web.spec.ServletMappingMetaData;
-import org.jboss.metadata.web.spec.ServletMetaData;
-import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
-import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
-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
-{
- // logging support
- private static Logger log = Logger.getLogger(JSEArchiveMetaDataAdapter.class);
-
- public JSEArchiveMetaData buildMetaData(Deployment dep, DeploymentUnit unit)
- {
- String contextRoot = null;
-
- JBossWebMetaData jbossWebMetaData = unit.getAttachment(JBossWebMetaData.class);
- dep.addAttachment(JBossWebMetaData.class, jbossWebMetaData);
-
- if (unit.getParent() != null)
- {
- JBossAppMetaData appmd = unit.getParent().getAttachment(JBossAppMetaData.class);
- if (appmd != null)
- {
- ModuleMetaData module = appmd.getModule(dep.getSimpleName());
- if (module != null)
- {
- WebModuleMetaData web = (WebModuleMetaData) module.getValue();
- contextRoot = web.getContextRoot();
- }
- }
- }
-
- if (contextRoot == null)
- contextRoot = jbossWebMetaData.getContextRoot();
-
- JSEArchiveMetaData umd = new JSEArchiveMetaData();
- umd.setContextRoot(contextRoot);
- umd.setServletMappings(getServletMappings(jbossWebMetaData));
- umd.setServletClassNames(getServletClassMap(jbossWebMetaData));
- umd.setSecurityDomain(jbossWebMetaData.getSecurityDomain());
- umd.setPublishLocationAdapter(getPublishLocationAdpater(jbossWebMetaData));
- umd.setSecurityMetaData(getSecurityMetaData(jbossWebMetaData.getSecurityContraints()));
-
- setConfigNameAndFile(umd, jbossWebMetaData);
-
- return umd;
- }
-
- private void setConfigNameAndFile(JSEArchiveMetaData umd, JBossWebMetaData jbossWebMetaData)
- {
- String configName = null;
- String configFile = null;
-
- WebserviceDescriptionsMetaData wsDescriptions = jbossWebMetaData.getWebserviceDescriptions();
- if (wsDescriptions != null && wsDescriptions.size() > 1)
- log.warn("Multiple <webservice-description> elements not supported");
-
- if (wsDescriptions != null && wsDescriptions.size() > 0)
- {
- WebserviceDescriptionMetaData wsd = wsDescriptions.iterator().next();
- configName = wsd.getConfigName();
- configFile = wsd.getConfigFile();
- }
-
- List<ParamValueMetaData> contextParams = jbossWebMetaData.getContextParams();
- if (contextParams != null)
- {
- for (ParamValueMetaData ctxParam : contextParams)
- {
- if (ctxParam.getParamName().equals("jbossws-config-name"))
- configName = ctxParam.getParamValue();
- if (ctxParam.getParamName().equals("jbossws-config-file"))
- configFile = ctxParam.getParamValue();
- }
- }
-
- umd.setConfigName(configName);
- umd.setConfigFile(configFile);
- }
-
- private PublishLocationAdapter getPublishLocationAdpater(final JBossWebMetaData wmd)
- {
- return new PublishLocationAdapter()
- {
- public String getWsdlPublishLocationByName(String name)
- {
- WebserviceDescriptionsMetaData wsdmd = wmd.getWebserviceDescriptions();
- WebserviceDescriptionMetaData wsmd = wsdmd.get(name);
- String location = null;
- if (wsmd != null)
- location = wsmd.getWsdlPublishLocation();
- return location;
- }
- };
- }
-
- protected List<JSESecurityMetaData> getSecurityMetaData(final List<SecurityConstraintMetaData> securityConstraints)
- {
- ArrayList<JSESecurityMetaData> unifiedsecurityMetaData = new ArrayList<JSESecurityMetaData>();
- if (securityConstraints != null)
- {
- for (SecurityConstraintMetaData securityMetaData : securityConstraints)
- {
- JSESecurityMetaData current = new JSESecurityMetaData();
- unifiedsecurityMetaData.add(current);
-
- current.setTransportGuarantee(securityMetaData.getTransportGuarantee().name());
-
- WebResourceCollectionsMetaData resources = securityMetaData.getResourceCollections();
- for (WebResourceCollectionMetaData webResource : resources)
- {
- JSEResourceCollection currentResource = current.addWebResource(webResource.getName());
- for (String currentPattern : webResource.getUrlPatterns())
- {
- currentResource.addPattern(currentPattern);
- }
- }
- }
- }
- return unifiedsecurityMetaData;
- }
-
- private Map<String, String> getServletMappings(JBossWebMetaData wmd)
- {
- Map<String, String> mappings = new HashMap<String, String>();
- List<ServletMappingMetaData> smappings = wmd.getServletMappings();
- if (smappings != null)
- {
- for(ServletMappingMetaData mapping : smappings)
- {
- // FIXME - Add support for multiple mappings
- mappings.put(mapping.getServletName(), mapping.getUrlPatterns().get(0));
- }
- }
- return mappings;
- }
-
- private Map<String, String> getServletClassMap(JBossWebMetaData wmd)
- {
- Map<String, String> mappings = new HashMap<String, String>();
- JBossServletsMetaData servlets = wmd.getServlets();
- if (servlets != null)
- {
- for (ServletMetaData servlet : servlets)
- {
- // Skip JSPs
- if (servlet.getServletClass() == null || servlet.getServletClass().length() == 0)
- continue;
-
- mappings.put(servlet.getName(), servlet.getServletClass());
- }
- }
- return mappings;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ModifyWebMetaDataDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ModifyWebMetaDataDeploymentAspect.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ModifyWebMetaDataDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,57 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: ModifyWebMetaDataDeployer.java 3150 2007-05-20 00:29:48Z thomas.diesler at jboss.com $
-
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspect;
-import org.jboss.wsf.spi.deployment.WSFDeploymentException;
-
-/**
- * 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 WebMetaDataModifier webMetaDataModifier;
-
- public void setWebMetaDataModifier(WebMetaDataModifier webMetaDataModifier)
- {
- this.webMetaDataModifier = webMetaDataModifier;
- }
-
- @Override
- public void create(Deployment dep)
- {
- try
- {
- webMetaDataModifier.modifyMetaData(dep);
- }
- catch (Exception ex)
- {
- WSFDeploymentException.rethrow(ex);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RewriteResults.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RewriteResults.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RewriteResults.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,38 +0,0 @@
-/*
- * 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.jboss50;
-
-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>();
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RuntimeLoaderDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RuntimeLoaderDeploymentAspect.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/RuntimeLoaderDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,65 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: RuntimeLoaderDeploymentAspect.java 4244 2007-08-08 09:19:04Z thomas.diesler at jboss.com $
-
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspect;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-
-/**
- * Determines the correct runtime loader for per deployment type
- * and makes it available through the {@link Deployment}.
- *
- * @author Heiko.Braun at jboss.com
- */
-public class RuntimeLoaderDeploymentAspect extends DeploymentAspect
-{
-
- public void create(Deployment dep)
- {
- // EJB3 endpoints
- if (dep.getAttachment(WebServiceDeployment.class) != null)
- {
- dep.setRuntimeClassLoader(dep.getInitialClassLoader());
- }
- // EJB21 endpoints
- else if (dep.getAttachment(JBossMetaData.class) != null)
- {
- dep.setRuntimeClassLoader(dep.getInitialClassLoader());
- }
- // JSE endpoints
- else if (dep.getAttachment(JBossWebMetaData.class) != null)
- {
- JBossWebMetaData webMetaData = dep.getAttachment(JBossWebMetaData.class);
- ClassLoader classLoader = webMetaData.getContextLoader();
- dep.setRuntimeClassLoader(classLoader);
- }
- else
- {
- throw new IllegalArgumentException("Unable to determine runtime loader");
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdapterFactoryImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdapterFactoryImpl.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdapterFactoryImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,37 +0,0 @@
-/*
- * 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.jboss50;
-
-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();
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdaptorImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdaptorImpl.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityAdaptorImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,62 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: SecurityAdaptorImpl.java 3978 2007-07-24 15:09:52Z heiko.braun at jboss.com $
-
-import org.jboss.security.SecurityAssociation;
-import org.jboss.wsf.spi.invocation.SecurityAdaptor;
-
-import java.security.Principal;
-
-/**
- * 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);
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandler.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandler.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandler.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,42 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id$
-
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-
-/**
- * Handle web app security meta data
- *
- * @author Thomas.Diesler at jboss.org
- * @since 12-May-2006
- */
-public interface SecurityHandler
-{
- /** Add the security domain to jboss-web.xml */
- void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep);
-
- /** Add the security roles to web.xml */
- void addSecurityRoles(JBossWebMetaData webApp, Deployment dep);
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB21.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,68 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: SecurityHandlerEJB21.java 4013 2007-07-27 04:37:52Z thomas.diesler at jboss.com $
-
-import org.jboss.metadata.common.ejb.IAssemblyDescriptorMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
-
-/**
- * Handle web app security meta data for EJB21
- *
- * @author Thomas.Diesler at jboss.org
- * @since 12-May-2006
- */
-public class SecurityHandlerEJB21 implements SecurityHandler
-{
- public void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep)
- {
- EJBArchiveMetaData ejbMetaData = dep.getAttachment(EJBArchiveMetaData.class);
- if (ejbMetaData == null)
- throw new IllegalStateException("Cannot obtain application meta data");
-
- String securityDomain = ejbMetaData.getSecurityDomain();
- if (securityDomain != null)
- {
- if (securityDomain.startsWith("java:/jaas/") == false)
- securityDomain = "java:/jaas/" + securityDomain;
-
- jbossWeb.setSecurityDomain(securityDomain);
- }
- }
-
- public void addSecurityRoles(JBossWebMetaData webApp, Deployment dep)
- {
- JBossMetaData jbmd = dep.getAttachment(JBossMetaData.class);
- IAssemblyDescriptorMetaData assemblyDescriptor = jbmd.getAssemblyDescriptor();
- if (assemblyDescriptor != null)
- {
- SecurityRolesMetaData securityRoles = assemblyDescriptor.getSecurityRoles();
- if (securityRoles != null)
- webApp.setSecurityRoles(securityRoles);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB3.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/SecurityHandlerEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,99 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id$
-
-import org.jboss.ejb3.annotation.SecurityDomain;
-import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
-import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-
-import javax.annotation.security.RolesAllowed;
-import java.util.Iterator;
-
-/**
- * Handle web app security meta data for EJB3
- *
- * @author Thomas.Diesler at jboss.org
- * @since 12-May-2006
- */
-public class SecurityHandlerEJB3 implements SecurityHandler
-{
- public void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep)
- {
- String securityDomain = null;
-
- WebServiceDeployment webServiceDeployment = dep.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment != null)
- {
- Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
- SecurityDomain anSecurityDomain = container.getAnnotation(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.setSecurityDomain(securityDomain);
- }
- }
-
- public void addSecurityRoles(JBossWebMetaData webApp, Deployment dep)
- {
- WebServiceDeployment webServiceDeployment = dep.getAttachment(WebServiceDeployment.class);
- if (webServiceDeployment != null)
- {
- Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
- while (it.hasNext())
- {
- WebServiceDeclaration container = it.next();
- RolesAllowed anRolesAllowed = container.getAnnotation(RolesAllowed.class);
- if (anRolesAllowed != null)
- {
- SecurityRolesMetaData securityRoles = webApp.getSecurityRoles();
- for (String roleName : anRolesAllowed.value())
- {
- SecurityRoleMetaData role = new SecurityRoleMetaData();
- role.setRoleName(roleName);
- securityRoles.add(role);
- }
- }
- }
- }
- }
-}
\ No newline at end of file
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ServiceEndpointInterceptor.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ServiceEndpointInterceptor.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/ServiceEndpointInterceptor.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,126 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id: ServiceEndpointInterceptor.java 3959 2007-07-20 14:44:19Z heiko.braun at jboss.com $
-
-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;
-
-import javax.xml.rpc.handler.soap.SOAPMessageContext;
-
-/**
- * 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);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeployingHttpServer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeployingHttpServer.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeployingHttpServer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,247 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: JBossHttpServer.java 1786 2007-01-04 14:30:04Z thomas.diesler at jboss.com $
-
-import java.io.File;
-import java.io.FileWriter;
-import java.io.IOException;
-import java.net.URL;
-import java.util.HashMap;
-import java.util.Map;
-
-import javax.xml.ws.Endpoint;
-import javax.xml.ws.WebServiceException;
-
-import org.jboss.deployers.client.spi.DeployerClient;
-import org.jboss.deployers.client.spi.Deployment;
-import org.jboss.deployers.vfs.spi.client.VFSDeploymentFactory;
-import org.jboss.virtual.VFS;
-import org.jboss.virtual.VirtualFile;
-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 DeployerClient mainDeployer;
- private Map<String, Deployment> deploymentMap = new HashMap<String, Deployment>();
-
- public void setMainDeployer(DeployerClient mainDeployer)
- {
- this.mainDeployer = mainDeployer;
- }
-
- /** 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();
- Deployment deployment = createDeploymentContext(tmpURL);
-
- mainDeployer.deploy(deployment);
- deploymentMap.put(tmpURL.toExternalForm(), deployment);
- }
- 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();
- Deployment deployment = deploymentMap.get(tmpURL.toExternalForm());
- if (deployment != null)
- {
- mainDeployer.undeploy(deployment);
- deploymentMap.remove(tmpURL.toExternalForm());
- }
-
- 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;
- }
-
- private Deployment createDeploymentContext(URL warURL) throws Exception
- {
- VirtualFile file = VFS.getRoot(warURL);
- return VFSDeploymentFactory.getInstance().createVFSDeployment(file);
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeploymentAspect.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,75 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id$
-
-import javax.xml.ws.WebServiceException;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.DeploymentAspect;
-import org.jboss.wsf.spi.deployment.WSFDeploymentException;
-
-/**
- * Deploy the generated webapp to JBoss
- *
- * @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 WebMetaDataModifier webMetaDataModifier;
-
- public void setWebMetaDataModifier(WebMetaDataModifier webMetaDataModifier)
- {
- this.webMetaDataModifier = webMetaDataModifier;
- }
-
- public void create(Deployment dep)
- {
- JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
- if (jbwmd == null)
- throw new WebServiceException("Cannot find web meta data");
-
- try
- {
- webMetaDataModifier.modifyMetaData(dep);
-
- DeploymentUnit unit = dep.getAttachment(DeploymentUnit.class);
- if (unit == null)
- throw new IllegalStateException("Cannot obtain deployment unit");
-
- unit.addAttachment(JBossWebMetaData.class, jbwmd);
- unit.addAttachment(WebMetaDataModifier.PROPERTY_GENERATED_WEBAPP, Boolean.TRUE);
- }
- catch (Exception ex)
- {
- WSFDeploymentException.rethrow(ex);
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppGeneratorDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppGeneratorDeploymentAspect.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebAppGeneratorDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,273 +0,0 @@
-/*
- * 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.jboss50;
-
-// $Id$
-
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
-import org.jboss.metadata.web.jboss.JBossServletsMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.AuthConstraintMetaData;
-import org.jboss.metadata.web.spec.LoginConfigMetaData;
-import org.jboss.metadata.web.spec.SecurityConstraintMetaData;
-import org.jboss.metadata.web.spec.ServletMappingMetaData;
-import org.jboss.metadata.web.spec.TransportGuaranteeType;
-import org.jboss.metadata.web.spec.UserDataConstraintMetaData;
-import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
-import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
-import org.jboss.wsf.spi.annotation.WebContext;
-import org.jboss.wsf.spi.deployment.ArchiveDeployment;
-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.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.EJBSecurityMetaData;
-
-/**
- * A deployment aspect that generates a webapp for an EJB endpoint
- *
- * @author Thomas.Diesler at jboss.org
- * @since 13-Oct-2007
- */
-public class WebAppGeneratorDeploymentAspect extends DeploymentAspect
-{
- private SecurityHandler securityHandlerEJB21;
- private SecurityHandler securityHandlerEJB3;
-
- public void setSecurityHandlerEJB21(SecurityHandler handler)
- {
- this.securityHandlerEJB21 = handler;
- }
-
- public void setSecurityHandlerEJB3(SecurityHandler handler)
- {
- this.securityHandlerEJB3 = handler;
- }
-
- @Override
- public void create(Deployment dep)
- {
- String typeStr = dep.getType().toString();
- if (typeStr.endsWith("EJB21"))
- {
- JBossWebMetaData jbwmd = generatWebDeployment((ArchiveDeployment)dep, securityHandlerEJB21);
- dep.addAttachment(JBossWebMetaData.class, jbwmd);
- }
- else if (typeStr.endsWith("EJB3"))
- {
- JBossWebMetaData jbwmd = generatWebDeployment((ArchiveDeployment)dep, securityHandlerEJB3);
- dep.addAttachment(JBossWebMetaData.class, jbwmd);
- }
- else
- {
- JBossWebMetaData jbwmd = generatWebDeployment((ArchiveDeployment)dep, null);
- dep.addAttachment(JBossWebMetaData.class, jbwmd);
- }
- }
-
- protected JBossWebMetaData generatWebDeployment(ArchiveDeployment dep, SecurityHandler securityHandler)
- {
- JBossWebMetaData jbwmd = new JBossWebMetaData();
- createWebAppDescriptor(dep, jbwmd, securityHandler);
- createJBossWebAppDescriptor(dep, jbwmd, securityHandler);
- return jbwmd;
- }
-
- protected void createWebAppDescriptor(Deployment dep, JBossWebMetaData jbwmd, SecurityHandler securityHandler)
- {
- /*
- <servlet>
- <servlet-name>
- <servlet-class>
- </servlet>
- */
- JBossServletsMetaData servlets = jbwmd.getServlets();
- for (Endpoint ep : dep.getService().getEndpoints())
- {
- JBossServletMetaData servlet = new JBossServletMetaData();
- servlet.setServletName(ep.getShortName());
- servlet.setServletClass(ep.getTargetBeanName());
- servlets.add(servlet);
- }
-
- /*
- <servlet-mapping>
- <servlet-name>
- <url-pattern>
- </servlet-mapping>
- */
- for (Endpoint ep : dep.getService().getEndpoints())
- {
- List<ServletMappingMetaData> servletMappings = jbwmd.getServletMappings();
- if (servletMappings == null)
- {
- servletMappings = new ArrayList<ServletMappingMetaData>();
- jbwmd.setServletMappings(servletMappings);
- }
- ServletMappingMetaData servletMapping = new ServletMappingMetaData();
- servletMapping.setServletName(ep.getShortName());
- servletMapping.setUrlPatterns(Arrays.asList(new String[] { ep.getURLPattern() }));
- servletMappings.add(servletMapping);
- }
-
- String authMethod = null;
-
- // Add web-app/security-constraint for each port component
- for (Endpoint ep : dep.getService().getEndpoints())
- {
- String ejbName = ep.getShortName();
-
- Boolean secureWSDLAccess = null;
- String transportGuarantee = null;
- String beanAuthMethod = null;
-
- WebContext anWebContext = (WebContext)ep.getTargetBeanClass().getAnnotation(WebContext.class);
- if (anWebContext != null)
- {
- if (anWebContext.authMethod().length() > 0)
- beanAuthMethod = anWebContext.authMethod();
- if (anWebContext.transportGuarantee().length() > 0)
- transportGuarantee = anWebContext.transportGuarantee();
- if (anWebContext.secureWSDLAccess())
- secureWSDLAccess = anWebContext.secureWSDLAccess();
- }
-
- EJBArchiveMetaData appMetaData = dep.getAttachment(EJBArchiveMetaData.class);
- if (appMetaData != null && appMetaData.getBeanByEjbName(ejbName) != null)
- {
- EJBMetaData bmd = appMetaData.getBeanByEjbName(ejbName);
- EJBSecurityMetaData smd = bmd.getSecurityMetaData();
- if (smd != null)
- {
- beanAuthMethod = smd.getAuthMethod();
- transportGuarantee = smd.getTransportGuarantee();
- secureWSDLAccess = smd.getSecureWSDLAccess();
- }
- }
-
- if (beanAuthMethod != null || transportGuarantee != null)
- {
- /*
- <security-constraint>
- <web-resource-collection>
- <web-resource-name>TestUnAuthPort</web-resource-name>
- <url-pattern>/HSTestRoot/TestUnAuth/*</url-pattern>
- </web-resource-collection>
- <auth-constraint>
- <role-name>*</role-name>
- </auth-constraint>
- <user-data-constraint>
- <transport-guarantee>NONE</transport-guarantee>
- </user-data-constraint>
- </security-constraint>
- */
- List<SecurityConstraintMetaData> securityContraints = jbwmd.getSecurityContraints();
- if (securityContraints == null)
- {
- securityContraints = new ArrayList<SecurityConstraintMetaData>();
- jbwmd.setSecurityContraints(securityContraints);
- }
- SecurityConstraintMetaData securityConstraint = new SecurityConstraintMetaData();
- securityContraints.add(securityConstraint);
-
- WebResourceCollectionsMetaData resourceCollections = securityConstraint.getResourceCollections();
- if (resourceCollections == null)
- {
- resourceCollections = new WebResourceCollectionsMetaData();
- securityConstraint.setResourceCollections(resourceCollections);
- }
- WebResourceCollectionMetaData resourceCollection = new WebResourceCollectionMetaData();
- resourceCollections.add(resourceCollection);
-
- resourceCollection.setWebResourceName(ejbName);
- resourceCollection.setUrlPatterns(Arrays.asList(new String[] { ep.getURLPattern() }));
- ArrayList<String> httpMethods = new ArrayList<String>();
- resourceCollection.setHttpMethods(httpMethods);
- if (Boolean.TRUE.equals(secureWSDLAccess))
- {
- httpMethods.add("GET");
- }
- httpMethods.add("POST");
-
- // Optional auth-constraint
- if (beanAuthMethod != null)
- {
- // Only the first auth-method gives the war login-config/auth-method
- if (authMethod == null)
- authMethod = beanAuthMethod;
-
- AuthConstraintMetaData authConstraint = new AuthConstraintMetaData();
- authConstraint.setRoleNames(Arrays.asList(new String[] { "*" }));
- securityConstraint.setAuthConstraint(authConstraint);
- }
- // Optional user-data-constraint
- if (transportGuarantee != null)
- {
- UserDataConstraintMetaData userDataConstraint = new UserDataConstraintMetaData();
- userDataConstraint.setTransportGuarantee(TransportGuaranteeType.valueOf(transportGuarantee));
- securityConstraint.setUserDataConstraint(userDataConstraint);
- }
- }
- }
-
- // Optional login-config/auth-method
- if (authMethod != null && securityHandler != null)
- {
- LoginConfigMetaData loginConfig = jbwmd.getLoginConfig();
- if (loginConfig == null)
- {
- loginConfig = new LoginConfigMetaData();
- jbwmd.setLoginConfig(loginConfig);
- }
- loginConfig.setAuthMethod(authMethod);
- loginConfig.setRealmName("EJBServiceEndpointServlet Realm");
-
- securityHandler.addSecurityRoles(jbwmd, dep);
- }
- }
-
- protected void createJBossWebAppDescriptor(Deployment dep, JBossWebMetaData jbwmd, SecurityHandler securityHandler)
- {
- /* Create a jboss-web
- <jboss-web>
- <security-domain>java:/jaas/cts</security-domain>
- <context-root>/ws/ejbN/</context-root>
- <virtual-host>some.domain.com</virtual-host>
- </jboss-web>
- */
- if (securityHandler != null)
- securityHandler.addSecurityDomain(jbwmd, dep);
-
- // Get the context root for this deployment
- String contextRoot = dep.getService().getContextRoot();
- if (contextRoot == null)
- throw new WSFDeploymentException("Cannot obtain context root");
-
- jbwmd.setContextRoot(contextRoot);
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifier.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifier.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifier.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,41 +0,0 @@
-/*
- * 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.jboss50;
-
-import org.jboss.wsf.spi.deployment.Deployment;
-
-/**
- * Modifies the web app according to the stack requirements.
- *
- * @author Thomas.Diesler at jboss.org
- * @since 19-May-2007
- */
-public interface WebMetaDataModifier
-{
- static final String PROPERTY_GENERATED_WEBAPP = "org.jboss.ws.generated.webapp";
- static final String PROPERTY_WEBAPP_CONTEXT_PARAMETERS = "org.jboss.ws.webapp.ContextParameterMap";
- static final String PROPERTY_WEBAPP_SERVLET_CLASS = "org.jboss.ws.webapp.ServletClass";
- static final String PROPERTY_WEBAPP_SERVLET_CONTEXT_LISTENER = "org.jboss.ws.webapp.ServletContextListener";
- static final String PROPERTY_WEBAPP_URL = "org.jboss.ws.webapp.url";
-
- RewriteResults modifyMetaData(Deployment dep) throws ClassNotFoundException;
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifierImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifierImpl.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebMetaDataModifierImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,205 +0,0 @@
-/*
- * 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.jboss50;
-
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-import java.util.Map;
-
-import javax.xml.ws.WebServiceException;
-
-import org.jboss.logging.Logger;
-import org.jboss.metadata.javaee.spec.ParamValueMetaData;
-import org.jboss.metadata.web.jboss.JBossServletMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.metadata.web.spec.ListenerMetaData;
-import org.jboss.wsf.spi.deployment.Deployment;
-import org.jboss.wsf.spi.deployment.Endpoint;
-
-/**
- * The rewriter for web.xml
- *
- * @author Thomas.Diesler at jboss.org
- * @since 19-May-2007
- */
-public class WebMetaDataModifierImpl implements WebMetaDataModifier
-{
- // logging support
- private static Logger log = Logger.getLogger(WebMetaDataModifierImpl.class);
-
- public RewriteResults modifyMetaData(Deployment dep)
- {
- JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
- if (jbwmd == null)
- throw new WebServiceException("Cannot find web meta data");
-
- try
- {
- RewriteResults results = modifyMetaData(dep, jbwmd);
- return results;
- }
- catch (RuntimeException rte)
- {
- throw rte;
- }
- catch (Exception e)
- {
- throw new WebServiceException(e);
- }
- }
-
- private RewriteResults modifyMetaData(Deployment dep, JBossWebMetaData jbwmd) throws ClassNotFoundException
- {
- RewriteResults results = new RewriteResults();
-
- String servletClass = (String)dep.getProperty(PROPERTY_WEBAPP_SERVLET_CLASS);
- if (servletClass == null)
- throw new IllegalStateException("Cannot obtain context property: " + PROPERTY_WEBAPP_SERVLET_CLASS);
-
- Map<String, String> depCtxParams = (Map<String, String>)dep.getProperty(PROPERTY_WEBAPP_CONTEXT_PARAMETERS);
- if (depCtxParams != null)
- {
- List<ParamValueMetaData> contextParams = jbwmd.getContextParams();
- if (contextParams == null)
- {
- contextParams = new ArrayList<ParamValueMetaData>();
- jbwmd.setContextParams(contextParams);
- }
-
- for (Map.Entry<String, String> entry : depCtxParams.entrySet())
- {
- ParamValueMetaData param = new ParamValueMetaData();
- param.setParamName(entry.getKey());
- param.setParamValue(entry.getValue());
- contextParams.add(param);
- }
- }
-
- String listenerClass = (String)dep.getProperty(PROPERTY_WEBAPP_SERVLET_CONTEXT_LISTENER);
- if (listenerClass != null)
- {
- List<ListenerMetaData> listeners = jbwmd.getListeners();
- if (listeners == null)
- {
- listeners = new ArrayList<ListenerMetaData>();
- jbwmd.setListeners(listeners);
- }
- ListenerMetaData listener = new ListenerMetaData();
- listener.setListenerClass(listenerClass);
- }
-
- for (Iterator it = jbwmd.getServlets().iterator(); it.hasNext();)
- {
- JBossServletMetaData servlet = (JBossServletMetaData)it.next();
- List<ParamValueMetaData> initParams = servlet.getInitParam();
- if (initParams == null)
- {
- initParams = new ArrayList<ParamValueMetaData>();
- servlet.setInitParam(initParams);
- }
-
- String linkName = servlet.getServletName();
-
- // find the servlet-class
- String orgServletClassName = servlet.getServletClass();
-
- // JSP
- if (orgServletClassName == null)
- continue;
-
- // 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 (ParamValueMetaData initParam : initParams)
- {
- String paramName = initParam.getParamName();
- String paramValue = initParam.getParamValue();
- 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;
- }
-
- servlet.setServletClass(servletClass);
-
- // add additional init params
- if (orgServletClassName.equals(servletClass) == false)
- {
- targetBeanName = orgServletClassName;
- ParamValueMetaData initParam = new ParamValueMetaData();
- initParam.setParamName(Endpoint.SEPID_DOMAIN_ENDPOINT);
- initParam.setParamValue(targetBeanName);
- initParams.add(initParam);
- }
- }
-
- 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(JBossServletMetaData servlet)
- {
- for (ParamValueMetaData initParam : servlet.getInitParam())
- {
- String paramName = initParam.getParamName();
- if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
- return true;
- }
- return false;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceContextFactoryImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceContextFactoryImpl.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceContextFactoryImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,45 +0,0 @@
-/*
- * 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.jboss50;
-
-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;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerEJB.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerEJB.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerEJB.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,168 +0,0 @@
-/*
- * 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.jboss50;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
-import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
-import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
-import org.jboss.ejb3.Ejb3Deployment;
-
-import java.lang.annotation.Annotation;
-import java.util.ArrayList;
-import java.util.Iterator;
-import java.util.List;
-
-//$Id: WebServiceDeployerEJB.java 3146 2007-05-18 22:55:26Z thomas.diesler at jboss.com $
-
-/**
- * This web service deployer for EJB
- *
- * @author Thomas.Diesler at jboss.org
- * @since 24-Apr-2007
- */
-public class WebServiceDeployerEJB extends AbstractWebServiceDeployer
-{
- private static final Logger log = Logger.getLogger(WebServiceDeployerEJB.class);
-
- public WebServiceDeployerEJB()
- {
- addInput(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
-
- addInput(Ejb3Deployment.class);
-
- // Input for the TomcatDeployer
- addOutput(JBossWebMetaData.class);
-
- addOutput(WebServiceDeployment.class);
-
- }
-
- @Override
- public void internalDeploy(DeploymentUnit unit) throws DeploymentException
- {
- JBossMetaData beans = (JBossMetaData)unit.getAttachment(
- MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME
- );
-
- if(beans!=null)
- {
- WebServiceDeploymentAdapter wsDeployment = new WebServiceDeploymentAdapter();
- Iterator<JBossEnterpriseBeanMetaData> iterator = beans.getEnterpriseBeans().iterator();
- while(iterator.hasNext())
- {
- JBossEnterpriseBeanMetaData ejb = iterator.next();
- if(ejb.getEjbClass()!=null)
- wsDeployment.getEndpoints().add( new WebServiceDeclarationAdapter(ejb, unit.getClassLoader()) );
- else
- log.warn("Ingore ejb deployment with null classname: " + ejb);
- }
-
- unit.addAttachment(WebServiceDeployment.class, wsDeployment);
-
- super.internalDeploy(unit);
- }
- }
-
- @Override
- public void internalUndeploy(DeploymentUnit unit)
- {
- super.internalUndeploy(unit);
- }
-
- /**
- * Adopts EJB3 bean meta data to a {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration}
- */
- private class WebServiceDeclarationAdapter implements WebServiceDeclaration
- {
-
- private JBossEnterpriseBeanMetaData ejbMetaData;
- private ClassLoader loader;
-
- public WebServiceDeclarationAdapter(JBossEnterpriseBeanMetaData ejbMetaData, ClassLoader loader)
- {
- this.ejbMetaData = ejbMetaData;
- this.loader = loader;
- }
-
- public String getContainerName()
- {
- return ejbMetaData.determineContainerName();
- }
-
- public String getComponentName()
- {
- return ejbMetaData.getName();
- }
-
- public String getComponentClassName()
- {
- return ejbMetaData.getEjbClass();
- }
-
- public <T extends Annotation> T getAnnotation(Class<T> annotation)
- {
- Class bean = getComponentClass();
- T result = null;
- if(bean.isAnnotationPresent(annotation))
- {
- result = (T)bean.getAnnotation(annotation);
- }
-
- return result;
- }
-
- private Class getComponentClass()
- {
- try
- {
- return loader.loadClass(getComponentClassName());
- } catch (ClassNotFoundException e)
- {
- throw new RuntimeException("Failed to load component class "+ getComponentClassName()+". Loader:" + this.loader);
- }
- }
- }
-
- /**
- * Adopts an EJB deployment to a {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeployment}
- */
- private class WebServiceDeploymentAdapter implements WebServiceDeployment
- {
- private List<WebServiceDeclaration> endpoints = new ArrayList<WebServiceDeclaration>();
-
- public List<WebServiceDeclaration> getServiceEndpoints()
- {
- return endpoints;
- }
-
- public List<WebServiceDeclaration> getEndpoints()
- {
- return endpoints;
- }
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPostJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,38 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: $
-
-import org.jboss.web.deployers.WarDeployment;
-
-/**
- * @author Heiko.Braun at jboss.com
- */
-public class WebServiceDeployerPostJSE extends AbstractWebServiceDeployer
-{
- public WebServiceDeployerPostJSE()
- {
- // Output from the TomcatDeployer
- addInput(WarDeployment.class);
- }
-}
\ No newline at end of file
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPreJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPreJSE.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceDeployerPreJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,53 +0,0 @@
-/*
- * 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.jboss50;
-
-import org.jboss.metadata.web.jboss.JBossWebMetaData;
-
-//$Id: WebServiceDeployerJSE.java 3146 2007-05-18 22:55:26Z thomas.diesler at jboss.com $
-
-/**
- * This web service deployer for JSE
- *
- * @author Thomas.Diesler at jboss.org
- * @since 24-Apr-2007
- */
-public class WebServiceDeployerPreJSE extends AbstractWebServiceDeployer
-{
- private int relOrderWar;
-
- public WebServiceDeployerPreJSE()
- {
- addInput(JBossWebMetaData.class);
- }
-
- public void setRelOrderWar(int relOrderWar)
- {
- this.relOrderWar = relOrderWar;
- }
-
- @Override
- public int getRelativeOrder()
- {
- return relOrderWar - 1;
- }
-}
Deleted: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceMainDeployer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceMainDeployer.java 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/WebServiceMainDeployer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,52 +0,0 @@
-/*
- * 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.jboss50;
-
-//$Id: WebServiceMainDeployer.java 3146 2007-05-18 22:55:26Z thomas.diesler at jboss.com $
-
-/**
- * The main web service deployer
- *
- * @author Thomas.Diesler at jboss.org
- * @since 24-Apr-2007
- */
-public class WebServiceMainDeployer extends AbstractWebServiceDeployer
-{
- private int relOrderJSE;
- private int relOrderEJB;
-
- public void setRelOrderEJB(int relOrderEJB)
- {
- this.relOrderEJB = relOrderEJB;
- }
-
- public void setRelOrderJSE(int relOrderJSE)
- {
- this.relOrderJSE = relOrderJSE;
- }
-
- @Override
- public int getRelativeOrder()
- {
- return Math.max(relOrderEJB, relOrderJSE) + 1;
- }
-}
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployer;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+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.*;
+import org.jboss.wsf.container.jboss50.deployer.DeployerHook;
+
+//$Id$
+
+
+/**
+ * An abstract web service deployer.
+ *
+ * @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());
+
+ protected String runtimeName;
+ private WSFRuntime wsfRuntime;
+
+ private DeploymentModelFactory deploymentModelFactory;
+
+ public WSFRuntime getWsfRuntime()
+ {
+ if(null == wsfRuntime)
+ {
+ SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+ wsfRuntime = spiProvider.getSPI(WSFRuntimeLocator.class).locateRuntime(runtimeName);
+ }
+
+ return wsfRuntime;
+ }
+
+ public void setWsfRuntime(WSFRuntime wsfRuntime)
+ {
+ this.wsfRuntime = wsfRuntime;
+ }
+
+ public void setRuntimeName(String runtimeName)
+ {
+ this.runtimeName = runtimeName;
+ }
+
+ public DeploymentModelFactory getDeploymentModelFactory()
+ {
+ if(null == deploymentModelFactory)
+ {
+ SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+ deploymentModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
+ }
+
+ return deploymentModelFactory;
+ }
+
+ public ArchiveDeployment newDeployment(DeploymentUnit unit)
+ {
+ try
+ {
+ DeploymentModelFactory factory = getDeploymentModelFactory();
+ ArchiveDeployment dep = (ArchiveDeployment)factory.newDeployment(unit.getSimpleName(), unit.getClassLoader());
+ if (unit.getParent() != null)
+ {
+ DeploymentUnit parentUnit = unit.getParent();
+ ArchiveDeployment parentDep = (ArchiveDeployment)factory.newDeployment(parentUnit.getSimpleName(), parentUnit.getClassLoader());
+ 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);
+ }
+ }
+
+ /** Return true if this deployment should be ignored
+ */
+ public boolean ignoreDeployment(DeploymentUnit unit)
+ {
+ String name = unit.getName();
+ return (name.startsWith("jboss:id=") && name.indexOf("service=jacc") > 0);
+ }
+
+ /** Get the deployment type this deployer can handle
+ */
+ public abstract Deployment.DeploymentType getDeploymentType();
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHook.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookEJB.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookEJB.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookEJB.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,53 @@
+/*
+ * 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.jboss50.deployer;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.wsf.spi.deployment.Deployment;
+import static org.jboss.wsf.spi.deployment.Deployment.DeploymentState;
+
+//$Id$
+
+/**
+ * An abstract deployer for EJB Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public abstract class AbstractDeployerHookEJB extends ArchiveDeployerHook
+{
+ public void deploy(DeploymentUnit unit) throws DeploymentException
+ {
+ if(!ignoreDeployment(unit) && isWebServiceDeployment(unit))
+ {
+ super.deploy(unit); // Calls create
+
+ Deployment dep = unit.getAttachment(Deployment.class);
+ if(null==dep || DeploymentState.CREATED != dep.getState())
+ throw new DeploymentException("Create step failed");
+
+ // execute the 'start' step
+ getWsfRuntime().start(dep);
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookEJB.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,67 @@
+/*
+ * 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.jboss50.deployer;
+
+//$Id$
+
+import java.util.List;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.transport.HttpSpec;
+
+/**
+ * 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(DeploymentUnit unit)
+ {
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+ boolean isGenerated = Boolean.TRUE.equals(unit.getAttachment(HttpSpec.PROPERTY_GENERATED_WEBAPP));
+ return webMetaData != null && isGenerated == false;
+ }
+
+ protected String getTargetBean(ServletMetaData servlet)
+ {
+ String endpointClass = servlet.getServletClass();
+ List<ParamValueMetaData> initParams = servlet.getInitParam();
+ if (initParams != null)
+ {
+ for (ParamValueMetaData param : initParams)
+ {
+ if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(param.getParamName()))
+ {
+ endpointClass = param.getParamValue();
+ break;
+ }
+ }
+ }
+ return endpointClass;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractDeployerHookJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractWebServiceDeployer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractWebServiceDeployer.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractWebServiceDeployer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,70 @@
+/*
+ * 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.jboss50.deployer;
+
+// $Id$
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractComponentDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+
+import java.util.LinkedList;
+import java.util.List;
+
+/**
+ * This deployer that calls the registered DeployerHooks
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 24-Apr-2007
+ */
+public abstract class AbstractWebServiceDeployer<T> extends AbstractComponentDeployer
+{
+ // provide logging
+ private static final Logger log = Logger.getLogger(AbstractWebServiceDeployer.class);
+
+ protected List<DeployerHook> deployerHooks = new LinkedList<DeployerHook>();
+
+ public void addDeployerHook(DeployerHook deployer)
+ {
+ log.debug("Add deployer hook: " + deployer);
+ deployerHooks.add(deployer);
+ }
+
+ public void removeDeployerHook(DeployerHook deployer)
+ {
+ log.debug("Remove deployer hook: " + deployer);
+ deployerHooks.remove(deployer);
+ }
+
+ @Override
+ public void internalDeploy(DeploymentUnit unit) throws DeploymentException
+ {
+ for (DeployerHook deployer : deployerHooks) deployer.deploy(unit);
+ }
+
+ @Override
+ public void internalUndeploy(DeploymentUnit unit)
+ {
+ for (DeployerHook deployer : deployerHooks) deployer.undeploy(unit);
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/AbstractWebServiceDeployer.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,170 @@
+/*
+ * 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.jboss50.deployer;
+
+//$Id$
+
+import java.net.URL;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+import org.jboss.virtual.VirtualFile;
+import org.jboss.wsf.common.DOMUtils;
+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.metadata.webservices.WebservicesFactory;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+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.
+ * <pre>
+ * deploy(unit)
+ * if(isWebServiceDeployment)
+ * dep = createDeployment(unit)
+ * create(dep)
+ * start(dep)
+ *
+ * undeploy(unit)
+ * dep = getDeployment(unit)
+ * stop(dep)
+ * destroy(dep)
+ * </pre>
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
+ *
+ * @since 25-Apr-2007
+ */
+public abstract class ArchiveDeployerHook extends AbstractDeployerHook
+{
+
+ /**
+ * Executes the 'create' step only. <br/>
+ * Subclasses need to take care that the 'start' step is executed as well.
+ */
+ public void deploy(DeploymentUnit unit) throws DeploymentException
+ {
+ if (!ignoreDeployment(unit) && isWebServiceDeployment(unit))
+ {
+ log.debug("deploy: " + unit.getName());
+
+ Deployment dep = getDeployment(unit);
+ if (dep == null)
+ {
+ dep = createDeployment(unit);
+ dep.addAttachment(DeploymentUnit.class, unit);
+ }
+
+ if(Deployment.DeploymentState.UNDEFINED == dep.getState())
+ {
+ getWsfRuntime().create(dep);
+ unit.addAttachment(Deployment.class, dep);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Cannot process Deployment in state " + dep.getState() + ": " + dep);
+ }
+ }
+ }
+
+ /**
+ * Executes the stop() and destroy() lifecycles
+ * @param unit
+ */
+ public void undeploy(DeploymentUnit unit)
+ {
+ if (ignoreDeployment(unit))
+ return;
+
+ Deployment dep = getDeployment(unit);
+ if (dep != null)
+ {
+ log.debug("undeploy: " + unit.getName());
+ getWsfRuntime().stop(dep);
+ getWsfRuntime().destroy(dep);
+ }
+ }
+
+ /** Depending on the type of deployment, this method should return true
+ * if the deployment contains web service endpoints.
+ */
+ public abstract boolean isWebServiceDeployment(DeploymentUnit unit);
+
+ /** Create the Deployment for a given DeploymentUnit
+ */
+ public abstract Deployment createDeployment(DeploymentUnit unit);
+
+ /** Get the Deployment for a given DeploymentUnit
+ */
+ public Deployment getDeployment(DeploymentUnit unit)
+ {
+ Deployment dep = unit.getAttachment(Deployment.class);
+ return (dep != null && dep.getType() == getDeploymentType() ? dep : null);
+ }
+
+ /** Unmrashall the webservices.xml if there is one
+ */
+ protected WebservicesMetaData getWebservicesMetaData(DeploymentUnit unit)
+ {
+ WebservicesMetaData wsMetaData = unit.getAttachment(WebservicesMetaData.class);
+ UnifiedVirtualFile vfWebservices = getWebservicesFile(unit);
+ 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.addAttachment(WebservicesMetaData.class, wsMetaData);
+ }
+ }
+ catch (Exception ex)
+ {
+ throw new WSFDeploymentException(ex);
+ }
+ }
+ return wsMetaData;
+ }
+
+ private UnifiedVirtualFile getWebservicesFile(DeploymentUnit unit)
+ {
+ UnifiedVirtualFile wsFile = null;
+ if (unit instanceof VFSDeploymentUnit)
+ {
+ VirtualFile vf = ((VFSDeploymentUnit)unit).getMetaDataFile("webservices.xml");
+ wsFile = vf != null ? new VirtualFileAdaptor(vf) : null;
+ }
+ return wsFile;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/ArchiveDeployerHook.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHook.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHook.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHook.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployer;
+
+//$Id$
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+
+/**
+ * An interface for all web service deployer hooks
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 24-Apr-2007
+ */
+public interface DeployerHook
+{
+ void deploy(DeploymentUnit unit) throws DeploymentException;
+
+ void undeploy(DeploymentUnit unit);
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHook.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHookPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHookPostJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHookPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,61 @@
+/*
+ * 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.jboss50.deployer;
+
+// $Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.wsf.spi.deployment.Deployment;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @author Thomas.Diesler at jboss.com
+ */
+public abstract class DeployerHookPostJSE extends AbstractDeployerHookJSE
+{
+ /**
+ * The deployment should be created in phase 1.
+ */
+ public Deployment createDeployment(DeploymentUnit unit)
+ {
+ Deployment dep = unit.getAttachment(Deployment.class);
+ if (null == dep)
+ throw new IllegalStateException("spi.Deployment missing. It should be created in Phase 1");
+
+ return dep;
+ }
+
+ /**
+ * 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(DeploymentUnit unit)
+ {
+ if (super.isWebServiceDeployment(unit) == false)
+ return false;
+
+ Deployment deployment = unit.getAttachment(Deployment.class);
+ return deployment != null;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/DeployerHookPostJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,112 @@
+/*
+ * 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.jboss50.deployer;
+
+//$Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+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.integration.WebServiceDeployment;
+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(DeploymentUnit unit)
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setRuntimeClassLoader(unit.getClassLoader());
+ dep.setType(getDeploymentType());
+
+ Service service = dep.getService();
+
+ JBossMetaData jbmd = unit.getAttachment(JBossMetaData.class);
+ if (jbmd == null)
+ throw new IllegalStateException("Deployment unit does not contain application meta data");
+
+ WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
+ if (wsMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain webservices meta data");
+
+ WebServiceDeployment webServiceDeployment = unit.getAttachment(WebServiceDeployment.class);
+ if (webServiceDeployment == null)
+ throw new IllegalStateException("Deployment unit does not contain webServiceDeployment");
+
+ // Copy the attachments
+ dep.addAttachment(WebservicesMetaData.class, wsMetaData);
+ dep.addAttachment(JBossMetaData.class, jbmd);
+ dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
+
+ 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");
+
+ JBossEnterpriseBeanMetaData beanMetaData = jbmd.getEnterpriseBean(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(DeploymentUnit unit)
+ {
+ WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
+ return wsMetaData != null && unit.getAllMetaData(JBossMetaData.class).size() > 0;
+ }
+}
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookEJB21.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPostJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,75 @@
+/*
+ * 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.jboss50.deployer;
+
+// $Id$
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+import static org.jboss.wsf.spi.deployment.Deployment.DeploymentState;
+
+/**
+ * A deployer JAXRPC JSE Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXRPCDeployerHookPostJSE extends DeployerHookPostJSE
+{
+
+ /**
+ * Expects the 'create' step to be executed in
+ * {@link org.jboss.wsf.container.jboss50.deployer.JAXRPCDeployerHookPreJSE}
+ * and executes the 'start' step.
+ *
+ */
+ public void deploy(DeploymentUnit unit) throws DeploymentException
+ {
+ if (!ignoreDeployment(unit) && isWebServiceDeployment(unit))
+ {
+ Deployment dep = getDeployment(unit);
+ if(null==dep || DeploymentState.CREATED != dep.getState())
+ throw new DeploymentException("Create step is missing");
+
+ // execute the 'start' step
+ getWsfRuntime().start(dep);
+ }
+ }
+
+ /**
+ * Get the deployment type this deployer can handle
+ */
+ public Deployment.DeploymentType getDeploymentType()
+ {
+ return Deployment.DeploymentType.JAXRPC_JSE;
+ }
+
+ @Override
+ public boolean isWebServiceDeployment(DeploymentUnit unit)
+ {
+ WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
+ return (wsMetaData!=null && super.isWebServiceDeployment(unit));
+ }
+
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPostJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployer;
+
+//$Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+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(DeploymentUnit unit)
+ {
+ // the JAXRPCDeployerHookPostJSE deals with undeployments
+ }
+
+ /** 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(DeploymentUnit unit)
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setRuntimeClassLoader(null);
+ dep.setType(getDeploymentType());
+
+ Service service = dep.getService();
+
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+ if (webMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain web meta data");
+
+ WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
+ if (wsMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain webservices meta data");
+
+ // Copy the attachments
+ dep.addAttachment(WebservicesMetaData.class, wsMetaData);
+ dep.addAttachment(JBossWebMetaData.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");
+
+ ServletMetaData servlet = getServletForName(webMetaData, servletLink);
+ String targetBean = getTargetBean(servlet);
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(targetBean);
+ ep.setShortName(servletLink);
+ service.addEndpoint(ep);
+ }
+ }
+
+ return dep;
+ }
+
+ private ServletMetaData getServletForName(JBossWebMetaData wmd, String servletLink)
+ {
+ for (JBossServletMetaData servlet : wmd.getServlets())
+ {
+ if (servletLink.equals(servlet.getName()))
+ {
+ return servlet;
+ }
+ }
+ throw new IllegalStateException("Cannot find servlet for link: " + servletLink);
+ }
+
+ @Override
+ public boolean isWebServiceDeployment(DeploymentUnit unit)
+ {
+ if (super.isWebServiceDeployment(unit) == false)
+ return false;
+
+ WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);
+ return wsMetaData != null;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXRPCDeployerHookPreJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,131 @@
+/*
+ * 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.jboss50.deployer;
+
+//$Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+import org.jboss.wsf.container.jboss50.invocation.InvocationHandlerEJB3;
+
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceProvider;
+import java.util.Iterator;
+
+/**
+ * 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(DeploymentUnit unit)
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setRuntimeClassLoader(unit.getClassLoader());
+ dep.setType(getDeploymentType());
+
+ Service service = dep.getService();
+
+ WebServiceDeployment webServiceDeployment = unit.getAttachment(WebServiceDeployment.class);
+ if (webServiceDeployment == null)
+ throw new IllegalStateException("Deployment unit does not contain webServiceDeployment");
+
+ // Copy the attachments
+ dep.addAttachment(WebServiceDeployment.class, webServiceDeployment);
+
+ Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ if (isWebServiceBean(container))
+ {
+ String ejbName = container.getComponentName();
+ String epBean = container.getComponentClassName();
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(epBean);
+ ep.setShortName(ejbName);
+
+ String containName = container.getContainerName();
+ if(null==containName)
+ throw new IllegalArgumentException("Target container name not set");
+ ep.setProperty(InvocationHandlerEJB3.CONTAINER_NAME, containName);
+
+ service.addEndpoint(ep);
+ }
+ }
+
+ return dep;
+ }
+
+ @Override
+ public boolean isWebServiceDeployment(DeploymentUnit unit)
+ {
+ WebServiceDeployment webServiceDeployment = unit.getAttachment(WebServiceDeployment.class);
+ if (null == webServiceDeployment )
+ return false;
+
+ boolean isWebServiceDeployment = false;
+
+ Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ if (isWebServiceBean(container))
+ {
+ isWebServiceDeployment = true;
+ break;
+ }
+ }
+
+ return isWebServiceDeployment;
+ }
+
+ private boolean isWebServiceBean(WebServiceDeclaration container)
+ {
+ boolean isWebServiceBean = false;
+ boolean isWebService = container.getAnnotation(WebService.class) != null;
+ boolean isWebServiceProvider = container.getAnnotation(WebServiceProvider.class) != null;
+ isWebServiceBean = isWebService || isWebServiceProvider;
+
+ return isWebServiceBean;
+ }
+}
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookEJB3.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPostJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,77 @@
+/*
+ * 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.jboss50.deployer;
+
+// $Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.webservices.WebservicesMetaData;
+import static org.jboss.wsf.spi.deployment.Deployment.DeploymentState;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ * @version $Revision$
+ */
+public class JAXWSDeployerHookPostJSE extends DeployerHookPostJSE
+{
+
+ /**
+ * Expects the 'create' step to be executed in
+ * {@link org.jboss.wsf.container.jboss50.deployer.JAXWSDeployerHookPreJSE} and
+ * executes the 'start' step.
+ *
+ */
+ public void deploy(DeploymentUnit unit) throws DeploymentException
+ {
+ if (!ignoreDeployment(unit) && isWebServiceDeployment(unit))
+ {
+ Deployment dep = getDeployment(unit);
+ if (null == dep || DeploymentState.CREATED != dep.getState())
+ throw new DeploymentException("Create step failed");
+
+ // execute the 'start' step
+ getWsfRuntime().start(dep);
+ }
+ }
+
+ /**
+ * Get the deployment type this deployer can handle
+ */
+ public Deployment.DeploymentType getDeploymentType()
+ {
+ return Deployment.DeploymentType.JAXWS_JSE;
+ }
+
+ /**
+ * Reject JAX-RPC deployments.
+ *
+ * @param unit
+ * @return
+ */
+ public boolean isWebServiceDeployment(DeploymentUnit unit)
+ {
+ WebservicesMetaData wsMetaData = getWebservicesMetaData(unit);// JAX-RPC artefact
+ return (wsMetaData == null && super.isWebServiceDeployment(unit));
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPostJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,143 @@
+/*
+ * 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.jboss50.deployer;
+
+//$Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Deployment.DeploymentType;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.deployment.Service;
+
+import javax.jws.WebService;
+import javax.xml.ws.WebServiceProvider;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * A deployer JAXWS JSE Endpoints
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class JAXWSDeployerHookPreJSE extends AbstractDeployerHookJSE
+{
+
+
+ public void undeploy(DeploymentUnit unit)
+ {
+ // the JAXWSDeployerHookPostJSE deals with undeployment
+ }
+
+ /** Get the deployment type this deployer can handle
+ */
+ public DeploymentType getDeploymentType()
+ {
+ return DeploymentType.JAXWS_JSE;
+ }
+
+ @Override
+ public Deployment createDeployment(DeploymentUnit unit)
+ {
+ ArchiveDeployment dep = newDeployment(unit);
+ dep.setRootFile(new VirtualFileAdaptor(((VFSDeploymentUnit)unit).getRoot()));
+ dep.setType(getDeploymentType());
+
+ Service service = dep.getService();
+
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+ if (webMetaData == null)
+ throw new IllegalStateException("Deployment unit does not contain web meta data");
+
+ // Copy the attachments
+ dep.addAttachment(JBossWebMetaData.class, webMetaData);
+
+ List<ServletMetaData> servlets = getRelevantServlets(webMetaData, unit.getClassLoader());
+ for (ServletMetaData servlet : servlets)
+ {
+ String servletName = servlet.getName();
+ String targetBean = getTargetBean(servlet);
+
+ // Create the endpoint
+ Endpoint ep = newEndpoint(targetBean);
+ ep.setShortName(servletName);
+ service.addEndpoint(ep);
+ }
+
+ return dep;
+ }
+
+ @Override
+ public boolean isWebServiceDeployment(DeploymentUnit unit)
+ {
+ if (super.isWebServiceDeployment(unit) == false)
+ return false;
+
+ boolean isWebServiceDeployment = false;
+ try
+ {
+ JBossWebMetaData webMetaData = unit.getAttachment(JBossWebMetaData.class);
+ List<ServletMetaData> servlets = getRelevantServlets(webMetaData, unit.getClassLoader());
+ isWebServiceDeployment = servlets.size() > 0;
+ }
+ catch (Exception ex)
+ {
+ log.error("Cannot process web deployment", ex);
+ }
+
+ return isWebServiceDeployment;
+ }
+
+ private List<ServletMetaData> getRelevantServlets(JBossWebMetaData webMetaData, ClassLoader loader)
+ {
+ List<ServletMetaData> servlets = new ArrayList<ServletMetaData>();
+ for (ServletMetaData servlet : webMetaData.getServlets())
+ {
+ String servletClassName = getTargetBean(servlet);
+
+ // Skip JSPs
+ if (servletClassName == null || servletClassName.length() == 0)
+ continue;
+
+ try
+ {
+ Class<?> servletClass = loader.loadClass(servletClassName.trim());
+ boolean isWebService = servletClass.isAnnotationPresent(WebService.class);
+ boolean isWebServiceProvider = servletClass.isAnnotationPresent(WebServiceProvider.class);
+ if (isWebService || isWebServiceProvider)
+ servlets.add(servlet);
+ }
+ catch (ClassNotFoundException ex)
+ {
+ log.warn("Cannot load servlet class: " + servletClassName);
+ continue;
+ }
+ }
+ return servlets;
+ }
+}
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/JAXWSDeployerHookPreJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,172 @@
+/*
+ * 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.jboss50.deployer;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb.deployers.EjbDeployment;
+import org.jboss.ejb.deployers.MergedJBossMetaDataDeployer;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+import org.jboss.logging.Logger;
+
+import java.lang.annotation.Annotation;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+//$Id$
+
+/**
+ * This web service deployer for EJB. Adopts EJB deployments to
+ * {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration} an passes it to a chain of
+ * {@link org.jboss.wsf.container.jboss50.deployer.DeployerHook}'s.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
+ *
+ * @since 24-Apr-2007
+ */
+public class WebServiceDeployerEJB extends AbstractWebServiceDeployer
+{
+ private static final Logger log = Logger.getLogger(WebServiceDeployerEJB.class);
+
+ public WebServiceDeployerEJB()
+ {
+ addInput(MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME);
+
+ addInput(EjbDeployment.class);
+
+ // Input for the TomcatDeployer
+ addOutput(JBossWebMetaData.class);
+
+ addOutput(WebServiceDeployment.class);
+
+ }
+
+ @Override
+ public void internalDeploy(DeploymentUnit unit) throws DeploymentException
+ {
+ JBossMetaData beans = (JBossMetaData)unit.getAttachment(
+ MergedJBossMetaDataDeployer.EJB_MERGED_ATTACHMENT_NAME
+ );
+
+ if(beans!=null)
+ {
+ WebServiceDeploymentAdapter wsDeployment = new WebServiceDeploymentAdapter();
+ Iterator<JBossEnterpriseBeanMetaData> iterator = beans.getEnterpriseBeans().iterator();
+ while(iterator.hasNext())
+ {
+ JBossEnterpriseBeanMetaData ejb = iterator.next();
+ if(ejb.getEjbClass()!=null)
+ wsDeployment.getEndpoints().add( new WebServiceDeclarationAdapter(ejb, unit.getClassLoader()) );
+ else
+ log.warn("Ingore ejb deployment with null classname: " + ejb);
+ }
+
+ unit.addAttachment(WebServiceDeployment.class, wsDeployment);
+
+ super.internalDeploy(unit);
+ }
+ }
+
+ @Override
+ public void internalUndeploy(DeploymentUnit unit)
+ {
+ super.internalUndeploy(unit);
+ }
+
+ /**
+ * Adopts EJB3 bean meta data to a {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration}
+ */
+ private class WebServiceDeclarationAdapter implements WebServiceDeclaration
+ {
+
+ private JBossEnterpriseBeanMetaData ejbMetaData;
+ private ClassLoader loader;
+
+ public WebServiceDeclarationAdapter(JBossEnterpriseBeanMetaData ejbMetaData, ClassLoader loader)
+ {
+ this.ejbMetaData = ejbMetaData;
+ this.loader = loader;
+ }
+
+ public String getContainerName()
+ {
+ return ejbMetaData.determineContainerName();
+ }
+
+ public String getComponentName()
+ {
+ return ejbMetaData.getName();
+ }
+
+ public String getComponentClassName()
+ {
+ return ejbMetaData.getEjbClass();
+ }
+
+ public <T extends Annotation> T getAnnotation(Class<T> annotation)
+ {
+ Class bean = getComponentClass();
+ T result = null;
+ if(bean.isAnnotationPresent(annotation))
+ {
+ result = (T)bean.getAnnotation(annotation);
+ }
+
+ return result;
+ }
+
+ private Class getComponentClass()
+ {
+ try
+ {
+ return loader.loadClass(getComponentClassName());
+ } catch (ClassNotFoundException e)
+ {
+ throw new RuntimeException("Failed to load component class "+ getComponentClassName()+". Loader:" + this.loader);
+ }
+ }
+ }
+
+ /**
+ * Adopts an EJB deployment to a {@link org.jboss.wsf.spi.deployment.integration.WebServiceDeployment}
+ */
+ private class WebServiceDeploymentAdapter implements WebServiceDeployment
+ {
+ private List<WebServiceDeclaration> endpoints = new ArrayList<WebServiceDeclaration>();
+
+ public List<WebServiceDeclaration> getServiceEndpoints()
+ {
+ return endpoints;
+ }
+
+ public List<WebServiceDeclaration> getEndpoints()
+ {
+ return endpoints;
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerEJB.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployer;
+
+//$Id$
+
+import org.jboss.web.deployers.WarDeployment;
+
+/**
+ * @author Heiko.Braun at jboss.com
+ */
+public class WebServiceDeployerPostJSE extends AbstractWebServiceDeployer
+{
+ public WebServiceDeployerPostJSE()
+ {
+ // Output from the TomcatDeployer
+ addInput(WarDeployment.class);
+ }
+}
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPostJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,53 @@
+/*
+ * 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.jboss50.deployer;
+
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+
+//$Id$
+
+/**
+ * This web service deployer for JSE
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 24-Apr-2007
+ */
+public class WebServiceDeployerPreJSE extends AbstractWebServiceDeployer
+{
+ private int relOrderWar;
+
+ public WebServiceDeployerPreJSE()
+ {
+ addInput(JBossWebMetaData.class);
+ }
+
+ public void setRelOrderWar(int relOrderWar)
+ {
+ this.relOrderWar = relOrderWar;
+ }
+
+ @Override
+ public int getRelativeOrder()
+ {
+ return relOrderWar - 1;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceDeployerPreJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceMainDeployer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceMainDeployer.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceMainDeployer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,52 @@
+/*
+ * 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.jboss50.deployer;
+
+//$Id$
+
+/**
+ * The main web service deployer
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 24-Apr-2007
+ */
+public class WebServiceMainDeployer extends AbstractWebServiceDeployer
+{
+ private int relOrderJSE;
+ private int relOrderEJB;
+
+ public void setRelOrderEJB(int relOrderEJB)
+ {
+ this.relOrderEJB = relOrderEJB;
+ }
+
+ public void setRelOrderJSE(int relOrderJSE)
+ {
+ this.relOrderJSE = relOrderJSE;
+ }
+
+ @Override
+ public int getRelativeOrder()
+ {
+ return Math.max(relOrderEJB, relOrderJSE) + 1;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployer/WebServiceMainDeployer.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/RuntimeLoaderDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/RuntimeLoaderDeploymentAspect.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/RuntimeLoaderDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployment;
+
+// $Id$
+
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.WSFRuntime;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.DeploymentAspect;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+
+/**
+ * Determines the correct runtime loader for per deployment type
+ * and makes it available through the {@link Deployment}.
+ *
+ * @author Heiko.Braun at jboss.com
+ */
+public class RuntimeLoaderDeploymentAspect extends DeploymentAspect
+{
+ public void start(Deployment dep, WSFRuntime runtime)
+ {
+ // EJB3 endpoints
+ if (dep.getAttachment(WebServiceDeployment.class) != null)
+ {
+ dep.setRuntimeClassLoader(dep.getInitialClassLoader());
+ }
+ // EJB21 endpoints
+ else if (dep.getAttachment(JBossMetaData.class) != null)
+ {
+ dep.setRuntimeClassLoader(dep.getInitialClassLoader());
+ }
+ // JSE endpoints
+ else if (dep.getAttachment(JBossWebMetaData.class) != null)
+ {
+ JBossWebMetaData webMetaData = dep.getAttachment(JBossWebMetaData.class);
+ ClassLoader classLoader = webMetaData.getContextLoader();
+ dep.setRuntimeClassLoader(classLoader);
+ }
+ else
+ {
+ throw new IllegalArgumentException("Unable to determine runtime loader");
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/RuntimeLoaderDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataAdapter.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataAdapter.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataAdapter.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,114 @@
+/*
+ * 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.jboss50.deployment.metadata;
+
+//$Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.Ejb3Deployment;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.deployment.ArchiveDeployment;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.JSEArchiveMetaData;
+import org.jboss.wsf.spi.transport.HttpSpec;
+
+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 ejbMetaDataAdapterEJB3 = new EJBArchiveMetaDataAdapterEJB3();
+ private EJBArchiveMetaDataAdapterEJB21 ejbMetaDataAdapterEJB21 = new EJBArchiveMetaDataAdapterEJB21();
+ private JSEArchiveMetaDataAdapter webMetaDataAdapter = new JSEArchiveMetaDataAdapter();
+
+ public void setEjbMetaDataAdapterEJB21(EJBArchiveMetaDataAdapterEJB21 adapter)
+ {
+ this.ejbMetaDataAdapterEJB21 = adapter;
+ }
+
+ public void setEjbMetaDataAdapterEJB3(EJBArchiveMetaDataAdapterEJB3 adapter)
+ {
+ this.ejbMetaDataAdapterEJB3 = adapter;
+ }
+
+ public void setWebMetaDataAdapter(JSEArchiveMetaDataAdapter adapter)
+ {
+ this.webMetaDataAdapter = adapter;
+ }
+
+ public void buildContainerMetaData(Deployment dep, DeploymentUnit unit)
+ {
+ dep.addAttachment(DeploymentUnit.class, unit);
+
+ try
+ {
+ // JSE endpoints
+ if (unit.getAttachment(JBossWebMetaData.class) != null)
+ {
+ JSEArchiveMetaData webMetaData = webMetaDataAdapter.buildMetaData(dep, unit);
+ if (webMetaData != null)
+ dep.addAttachment(JSEArchiveMetaData.class, webMetaData);
+
+ if (dep instanceof ArchiveDeployment)
+ {
+ URL webURL = ((ArchiveDeployment)dep).getRootFile().toURL();
+ dep.setProperty(HttpSpec.PROPERTY_WEBAPP_URL, webURL);
+ }
+ }
+
+ // EJB3 endpoints
+ else if (unit.getAttachment(Ejb3Deployment.class) != null)
+ {
+ EJBArchiveMetaData ejbMetaData = ejbMetaDataAdapterEJB3.buildMetaData(dep, unit);
+ if (ejbMetaData != null)
+ dep.addAttachment(EJBArchiveMetaData.class, ejbMetaData);
+ }
+
+ // EJB21 endpoints
+ else if (unit.getAttachment(JBossMetaData.class) != null)
+ {
+ EJBArchiveMetaData ejbMetaData = ejbMetaDataAdapterEJB21.buildMetaData(dep, unit);
+ if (ejbMetaData != null)
+ dep.addAttachment(EJBArchiveMetaData.class, ejbMetaData);
+ }
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ catch (Exception ex)
+ {
+ throw new IllegalStateException(ex);
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataAdapter.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataDeploymentAspect.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployment.metadata;
+
+//$Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+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 = new ContainerMetaDataAdapter();
+
+ public void setMetaDataAdapter(ContainerMetaDataAdapter adapter)
+ {
+ this.metaDataAdapter = adapter;
+ }
+
+ @Override
+ public void create(Deployment dep, WSFRuntime runtime)
+ {
+ DeploymentUnit unit = dep.getAttachment(DeploymentUnit.class);
+ if (unit == null)
+ throw new IllegalStateException("Cannot obtain deployment unit");
+
+ metaDataAdapter.buildContainerMetaData(dep, unit);
+ }
+}
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/ContainerMetaDataDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB21.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,176 @@
+/*
+ * 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.jboss50.deployment.metadata;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
+import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMessageDrivenBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
+import org.jboss.metadata.javaee.spec.PortComponent;
+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.EJBSecurityMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.MDBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.SLSBMetaData;
+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 class EJBArchiveMetaDataAdapterEJB21
+{
+ // logging support
+ private static Logger log = Logger.getLogger(EJBArchiveMetaDataAdapterEJB21.class);
+
+ public EJBArchiveMetaData buildMetaData(Deployment dep, DeploymentUnit unit)
+ {
+ JBossMetaData jbossMetaData = unit.getAttachment(JBossMetaData.class);
+ dep.addAttachment(JBossMetaData.class, jbossMetaData);
+
+ EJBArchiveMetaData ejbMetaData = new EJBArchiveMetaData();
+ buildEnterpriseBeansMetaData(ejbMetaData, jbossMetaData);
+ buildWebservicesMetaData(ejbMetaData, jbossMetaData);
+ ejbMetaData.setSecurityDomain(jbossMetaData.getSecurityDomain());
+
+ return ejbMetaData;
+ }
+
+ private void buildEnterpriseBeansMetaData(EJBArchiveMetaData ejbMetaData, JBossMetaData jbossMetaData)
+ {
+ List<EJBMetaData> targetBeans = new ArrayList<EJBMetaData>();
+ JBossEnterpriseBeansMetaData sourceBeans = jbossMetaData.getEnterpriseBeans();
+ Iterator<JBossEnterpriseBeanMetaData> it = sourceBeans.iterator();
+ while (it.hasNext())
+ {
+ JBossEnterpriseBeanMetaData bmd = it.next();
+ buildBeanMetaData(targetBeans, bmd);
+ }
+ ejbMetaData.setEnterpriseBeans(targetBeans);
+ }
+
+ private void buildWebservicesMetaData(EJBArchiveMetaData ejbMetaData, JBossMetaData jbossMetaData)
+ {
+ WebservicesMetaData webservices = jbossMetaData.getWebservices();
+ if (webservices != null)
+ {
+ String contextRoot = webservices.getContextRoot();
+ ejbMetaData.setWebServiceContextRoot(contextRoot);
+
+ ejbMetaData.setPublishLocationAdapter(getPublishLocationAdpater(webservices));
+
+ WebserviceDescriptionsMetaData wsDescriptions = webservices.getWebserviceDescriptions();
+ if (wsDescriptions != null)
+ {
+ if (wsDescriptions.size() > 1)
+ log.warn("Multiple <webservice-description> elements not supported");
+
+ if (wsDescriptions.size() > 0)
+ {
+ WebserviceDescriptionMetaData wsd = wsDescriptions.iterator().next();
+ ejbMetaData.setConfigName(wsd.getConfigName());
+ ejbMetaData.setConfigFile(wsd.getConfigFile());
+ }
+ }
+ }
+ }
+
+ private PublishLocationAdapter getPublishLocationAdpater(final WebservicesMetaData wsMetaData)
+ {
+ return new PublishLocationAdapter()
+ {
+ public String getWsdlPublishLocationByName(String name)
+ {
+ String wsdlPublishLocation = null;
+ WebserviceDescriptionsMetaData wsDescriptions = wsMetaData.getWebserviceDescriptions();
+ if (wsDescriptions != null && wsDescriptions.get(name) != null)
+ {
+ WebserviceDescriptionMetaData wsdMetaData = wsDescriptions.get(name);
+ wsdlPublishLocation = wsdMetaData.getWsdlPublishLocation();
+ }
+ return wsdlPublishLocation;
+ }
+ };
+ }
+
+ private EJBMetaData buildBeanMetaData(List<EJBMetaData> ejbBeans, JBossEnterpriseBeanMetaData jbossBeansMetaData)
+ {
+ EJBMetaData targetBean = null;
+ if (jbossBeansMetaData.isSession())
+ {
+ targetBean = new SLSBMetaData();
+ JBossSessionBeanMetaData jbossSessionBean = (JBossSessionBeanMetaData)jbossBeansMetaData;
+
+ targetBean.setEjbName(jbossSessionBean.getEjbName());
+ targetBean.setEjbClass(jbossSessionBean.getEjbClass());
+ targetBean.setServiceEndpointInterface(jbossSessionBean.getServiceEndpoint());
+ targetBean.setHome(jbossSessionBean.getHome());
+ targetBean.setLocalHome(jbossSessionBean.getLocalHome());
+ targetBean.setJndiName(jbossSessionBean.determineJndiName());
+ targetBean.setLocalJndiName(jbossBeansMetaData.determineLocalJndiName());
+
+ PortComponent pcmd = jbossSessionBean.getPortComponent();
+ if (pcmd != null)
+ {
+ targetBean.setPortComponentName(pcmd.getPortComponentName());
+ targetBean.setPortComponentURI(pcmd.getPortComponentURI());
+ EJBSecurityMetaData smd = new EJBSecurityMetaData();
+ smd.setAuthMethod(pcmd.getAuthMethod());
+ smd.setTransportGuarantee(pcmd.getTransportGuarantee());
+ smd.setSecureWSDLAccess(pcmd.getSecureWSDLAccess());
+ targetBean.setSecurityMetaData(smd);
+ }
+ }
+ else if (jbossBeansMetaData.isMessageDriven())
+ {
+ targetBean = new MDBMetaData();
+ JBossMessageDrivenBeanMetaData jbossMessageBean = (JBossMessageDrivenBeanMetaData)jbossBeansMetaData;
+
+ targetBean.setEjbName(jbossMessageBean.getEjbName());
+ targetBean.setEjbClass(jbossMessageBean.getEjbClass());
+ //targetBean.setServiceEndpointInterface(???);
+ //targetBean.setJndiName(???);
+ targetBean.setLocalJndiName(jbossBeansMetaData.getLocalJndiName());
+ ((MDBMetaData)targetBean).setDestinationJndiName(jbossMessageBean.getDestinationJndiName());
+ }
+
+ if (targetBean != null)
+ ejbBeans.add(targetBean);
+
+ return targetBean;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB21.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB3.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,183 @@
+/*
+ * 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.jboss50.deployment.metadata;
+
+// $Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
+import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.WebservicesMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+import org.jboss.wsf.spi.metadata.j2ee.*;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData.PublishLocationAdapter;
+
+import javax.ejb.ActivationConfigProperty;
+import javax.ejb.MessageDriven;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+
+/**
+ * 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 EJBArchiveMetaData buildMetaData(Deployment dep, DeploymentUnit unit)
+ {
+ EJBArchiveMetaData umd = new EJBArchiveMetaData();
+
+ WebServiceDeployment webServiceDeployment = dep.getAttachment(WebServiceDeployment.class);
+ buildEnterpriseBeansMetaData(umd, webServiceDeployment);
+
+ JBossMetaData jbMetaData = unit.getAttachment(JBossMetaData.class);
+ if (jbMetaData != null)
+ buildWebservicesMetaData(umd, jbMetaData);
+
+ return umd;
+ }
+
+ private void buildWebservicesMetaData(EJBArchiveMetaData ejbMetaData, JBossMetaData jbMetaData)
+ {
+ WebservicesMetaData wsMetaData = jbMetaData.getWebservices();
+ if (wsMetaData != null)
+ {
+ String contextRoot = wsMetaData.getContextRoot();
+ ejbMetaData.setWebServiceContextRoot(contextRoot);
+
+ ejbMetaData.setPublishLocationAdapter(getPublishLocationAdpater(wsMetaData));
+
+ WebserviceDescriptionsMetaData wsDescriptions = wsMetaData.getWebserviceDescriptions();
+ if (wsDescriptions != null)
+ {
+ if (wsDescriptions.size() > 1)
+ log.warn("Multiple <webservice-description> elements not supported");
+
+ if (wsDescriptions.size() > 0)
+ {
+ WebserviceDescriptionMetaData wsd = wsDescriptions.iterator().next();
+ ejbMetaData.setConfigName(wsd.getConfigName());
+ ejbMetaData.setConfigFile(wsd.getConfigFile());
+ }
+ }
+ }
+ }
+
+ private void buildEnterpriseBeansMetaData(EJBArchiveMetaData jarMetaData, WebServiceDeployment ejb3Deployment)
+ {
+ List<EJBMetaData> ejbMetaDataList = new ArrayList<EJBMetaData>();
+ Iterator<WebServiceDeclaration> it = ejb3Deployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+
+ // TODO: Add PortComponent parsing to EJBDescriptorHandler
+ PortComponentSpec pcMetaData = container.getAnnotation(PortComponentSpec.class);
+ MessageDriven mdbMetaData = container.getAnnotation(MessageDriven.class);
+
+ EJBMetaData ejbMetaData = null;
+
+ if(mdbMetaData!=null)
+ {
+ ejbMetaData = new MDBMetaData();
+
+ ActivationConfigProperty[] props = mdbMetaData.activationConfig();
+ if (props != null)
+ {
+ String destination = getActivationProperty("destination", props);
+ if (destination != null)
+ {
+ ((MDBMetaData)ejbMetaData).setDestinationJndiName(destination);
+ }
+ }
+ }
+ else
+ {
+ ejbMetaData = new SLSBMetaData();
+ }
+
+ if (ejbMetaData != null)
+ {
+ ejbMetaData.setEjbName(container.getComponentName());
+ ejbMetaData.setEjbClass(container.getComponentClassName());
+
+ if (pcMetaData != null)
+ {
+ ejbMetaData.setPortComponentName(pcMetaData.portComponentName());
+ ejbMetaData.setPortComponentURI(pcMetaData.portComponentURI());
+ EJBSecurityMetaData smd = new EJBSecurityMetaData();
+ smd.setAuthMethod(pcMetaData.authMethod());
+ smd.setTransportGuarantee(pcMetaData.transportGuarantee());
+ smd.setSecureWSDLAccess(pcMetaData.secureWSDLAccess());
+ ejbMetaData.setSecurityMetaData(smd);
+ }
+
+ ejbMetaDataList.add(ejbMetaData);
+ }
+ }
+
+ jarMetaData.setEnterpriseBeans(ejbMetaDataList);
+ }
+
+ private String getActivationProperty(String name, ActivationConfigProperty[] props)
+ {
+ String result = null;
+ for(ActivationConfigProperty p : props)
+ {
+ if(p.propertyName().equals(name))
+ {
+ result = p.propertyValue();
+ break;
+ }
+ }
+
+ return result;
+ }
+
+ private PublishLocationAdapter getPublishLocationAdpater(final WebservicesMetaData wsMetaData)
+ {
+ return new PublishLocationAdapter() {
+ public String getWsdlPublishLocationByName(String name)
+ {
+ String wsdlPublishLocation = null;
+ WebserviceDescriptionsMetaData wsDescriptions = wsMetaData.getWebserviceDescriptions();
+ if (wsDescriptions != null && wsDescriptions.get(name) != null)
+ {
+ WebserviceDescriptionMetaData wsdMetaData = wsDescriptions.get(name);
+ wsdlPublishLocation = wsdMetaData.getWsdlPublishLocation();
+ }
+ return wsdlPublishLocation;
+ }
+ };
+ }
+
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/EJBArchiveMetaDataAdapterEJB3.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/JSEArchiveMetaDataAdapter.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/JSEArchiveMetaDataAdapter.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/JSEArchiveMetaDataAdapter.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,206 @@
+/*
+ * 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.jboss50.deployment.metadata;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.common.jboss.WebserviceDescriptionMetaData;
+import org.jboss.metadata.common.jboss.WebserviceDescriptionsMetaData;
+import org.jboss.metadata.ear.jboss.JBossAppMetaData;
+import org.jboss.metadata.ear.spec.ModuleMetaData;
+import org.jboss.metadata.ear.spec.WebModuleMetaData;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.jboss.JBossServletsMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.SecurityConstraintMetaData;
+import org.jboss.metadata.web.spec.ServletMappingMetaData;
+import org.jboss.metadata.web.spec.ServletMetaData;
+import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
+import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
+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
+{
+ // logging support
+ private static Logger log = Logger.getLogger(JSEArchiveMetaDataAdapter.class);
+
+ public JSEArchiveMetaData buildMetaData(Deployment dep, DeploymentUnit unit)
+ {
+ String contextRoot = null;
+
+ JBossWebMetaData jbossWebMetaData = unit.getAttachment(JBossWebMetaData.class);
+ dep.addAttachment(JBossWebMetaData.class, jbossWebMetaData);
+
+ if (unit.getParent() != null)
+ {
+ JBossAppMetaData appmd = unit.getParent().getAttachment(JBossAppMetaData.class);
+ if (appmd != null)
+ {
+ ModuleMetaData module = appmd.getModule(dep.getSimpleName());
+ if (module != null)
+ {
+ WebModuleMetaData web = (WebModuleMetaData) module.getValue();
+ contextRoot = web.getContextRoot();
+ }
+ }
+ }
+
+ if (contextRoot == null)
+ contextRoot = jbossWebMetaData.getContextRoot();
+
+ JSEArchiveMetaData umd = new JSEArchiveMetaData();
+ umd.setContextRoot(contextRoot);
+ umd.setServletMappings(getServletMappings(jbossWebMetaData));
+ umd.setServletClassNames(getServletClassMap(jbossWebMetaData));
+ umd.setSecurityDomain(jbossWebMetaData.getSecurityDomain());
+ umd.setPublishLocationAdapter(getPublishLocationAdpater(jbossWebMetaData));
+ umd.setSecurityMetaData(getSecurityMetaData(jbossWebMetaData.getSecurityContraints()));
+
+ setConfigNameAndFile(umd, jbossWebMetaData);
+
+ return umd;
+ }
+
+ private void setConfigNameAndFile(JSEArchiveMetaData umd, JBossWebMetaData jbossWebMetaData)
+ {
+ String configName = null;
+ String configFile = null;
+
+ WebserviceDescriptionsMetaData wsDescriptions = jbossWebMetaData.getWebserviceDescriptions();
+ if (wsDescriptions != null && wsDescriptions.size() > 1)
+ log.warn("Multiple <webservice-description> elements not supported");
+
+ if (wsDescriptions != null && wsDescriptions.size() > 0)
+ {
+ WebserviceDescriptionMetaData wsd = wsDescriptions.iterator().next();
+ configName = wsd.getConfigName();
+ configFile = wsd.getConfigFile();
+ }
+
+ List<ParamValueMetaData> contextParams = jbossWebMetaData.getContextParams();
+ if (contextParams != null)
+ {
+ for (ParamValueMetaData ctxParam : contextParams)
+ {
+ if (ctxParam.getParamName().equals("jbossws-config-name"))
+ configName = ctxParam.getParamValue();
+ if (ctxParam.getParamName().equals("jbossws-config-file"))
+ configFile = ctxParam.getParamValue();
+ }
+ }
+
+ umd.setConfigName(configName);
+ umd.setConfigFile(configFile);
+ }
+
+ private PublishLocationAdapter getPublishLocationAdpater(final JBossWebMetaData wmd)
+ {
+ return new PublishLocationAdapter()
+ {
+ public String getWsdlPublishLocationByName(String name)
+ {
+ WebserviceDescriptionsMetaData wsdmd = wmd.getWebserviceDescriptions();
+ WebserviceDescriptionMetaData wsmd = wsdmd.get(name);
+ String location = null;
+ if (wsmd != null)
+ location = wsmd.getWsdlPublishLocation();
+ return location;
+ }
+ };
+ }
+
+ protected List<JSESecurityMetaData> getSecurityMetaData(final List<SecurityConstraintMetaData> securityConstraints)
+ {
+ ArrayList<JSESecurityMetaData> unifiedsecurityMetaData = new ArrayList<JSESecurityMetaData>();
+ if (securityConstraints != null)
+ {
+ for (SecurityConstraintMetaData securityMetaData : securityConstraints)
+ {
+ JSESecurityMetaData current = new JSESecurityMetaData();
+ unifiedsecurityMetaData.add(current);
+
+ current.setTransportGuarantee(securityMetaData.getTransportGuarantee().name());
+
+ WebResourceCollectionsMetaData resources = securityMetaData.getResourceCollections();
+ for (WebResourceCollectionMetaData webResource : resources)
+ {
+ JSEResourceCollection currentResource = current.addWebResource(webResource.getName());
+ for (String currentPattern : webResource.getUrlPatterns())
+ {
+ currentResource.addPattern(currentPattern);
+ }
+ }
+ }
+ }
+ return unifiedsecurityMetaData;
+ }
+
+ private Map<String, String> getServletMappings(JBossWebMetaData wmd)
+ {
+ Map<String, String> mappings = new HashMap<String, String>();
+ List<ServletMappingMetaData> smappings = wmd.getServletMappings();
+ if (smappings != null)
+ {
+ for(ServletMappingMetaData mapping : smappings)
+ {
+ // FIXME - Add support for multiple mappings
+ mappings.put(mapping.getServletName(), mapping.getUrlPatterns().get(0));
+ }
+ }
+ return mappings;
+ }
+
+ private Map<String, String> getServletClassMap(JBossWebMetaData wmd)
+ {
+ Map<String, String> mappings = new HashMap<String, String>();
+ JBossServletsMetaData servlets = wmd.getServlets();
+ if (servlets != null)
+ {
+ for (ServletMetaData servlet : servlets)
+ {
+ // Skip JSPs
+ if (servlet.getServletClass() == null || servlet.getServletClass().length() == 0)
+ continue;
+
+ mappings.put(servlet.getName(), servlet.getServletClass());
+ }
+ }
+ return mappings;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/metadata/JSEArchiveMetaDataAdapter.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/ModifyWebMetaDataDeploymentAspect.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/ModifyWebMetaDataDeploymentAspect.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/ModifyWebMetaDataDeploymentAspect.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,58 @@
+/*
+ * 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.jboss50.deployment.tomcat;
+
+//$Id$
+
+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;
+
+/**
+ * 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 WebMetaDataModifier webMetaDataModifier;
+
+ public void setWebMetaDataModifier(WebMetaDataModifier webMetaDataModifier)
+ {
+ this.webMetaDataModifier = webMetaDataModifier;
+ }
+
+ @Override
+ public void create(Deployment dep, WSFRuntime runtime)
+ {
+ try
+ {
+ webMetaDataModifier.modifyMetaData(dep);
+ }
+ catch (Exception ex)
+ {
+ WSFDeploymentException.rethrow(ex);
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/ModifyWebMetaDataDeploymentAspect.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/RewriteResults.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/RewriteResults.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/RewriteResults.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployment.tomcat;
+
+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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/RewriteResults.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandler.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandler.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandler.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,42 @@
+/*
+ * 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.jboss50.deployment.tomcat;
+
+//$Id$
+
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+
+/**
+ * Handle web app security meta data
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 12-May-2006
+ */
+public interface SecurityHandler
+{
+ /** Add the security domain to jboss-web.xml */
+ void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep);
+
+ /** Add the security roles to web.xml */
+ void addSecurityRoles(JBossWebMetaData webApp, Deployment dep);
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandler.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB21.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,68 @@
+/*
+ * 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.jboss50.deployment.tomcat;
+
+//$Id$
+
+import org.jboss.metadata.common.ejb.IAssemblyDescriptorMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+
+/**
+ * Handle web app security meta data for EJB21
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 12-May-2006
+ */
+public class SecurityHandlerEJB21 implements SecurityHandler
+{
+ public void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep)
+ {
+ EJBArchiveMetaData ejbMetaData = dep.getAttachment(EJBArchiveMetaData.class);
+ if (ejbMetaData == null)
+ throw new IllegalStateException("Cannot obtain application meta data");
+
+ String securityDomain = ejbMetaData.getSecurityDomain();
+ if (securityDomain != null)
+ {
+ if (securityDomain.startsWith("java:/jaas/") == false)
+ securityDomain = "java:/jaas/" + securityDomain;
+
+ jbossWeb.setSecurityDomain(securityDomain);
+ }
+ }
+
+ public void addSecurityRoles(JBossWebMetaData webApp, Deployment dep)
+ {
+ JBossMetaData jbmd = dep.getAttachment(JBossMetaData.class);
+ IAssemblyDescriptorMetaData assemblyDescriptor = jbmd.getAssemblyDescriptor();
+ if (assemblyDescriptor != null)
+ {
+ SecurityRolesMetaData securityRoles = assemblyDescriptor.getSecurityRoles();
+ if (securityRoles != null)
+ webApp.setSecurityRoles(securityRoles);
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB21.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB3.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,99 @@
+/*
+ * 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.jboss50.deployment.tomcat;
+
+//$Id$
+
+import org.jboss.ejb3.annotation.SecurityDomain;
+import org.jboss.metadata.javaee.spec.SecurityRoleMetaData;
+import org.jboss.metadata.javaee.spec.SecurityRolesMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeclaration;
+import org.jboss.wsf.spi.deployment.integration.WebServiceDeployment;
+
+import javax.annotation.security.RolesAllowed;
+import java.util.Iterator;
+
+/**
+ * Handle web app security meta data for EJB3
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 12-May-2006
+ */
+public class SecurityHandlerEJB3 implements SecurityHandler
+{
+ public void addSecurityDomain(JBossWebMetaData jbossWeb, Deployment dep)
+ {
+ String securityDomain = null;
+
+ WebServiceDeployment webServiceDeployment = dep.getAttachment(WebServiceDeployment.class);
+ if (webServiceDeployment != null)
+ {
+ Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ SecurityDomain anSecurityDomain = container.getAnnotation(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.setSecurityDomain(securityDomain);
+ }
+ }
+
+ public void addSecurityRoles(JBossWebMetaData webApp, Deployment dep)
+ {
+ WebServiceDeployment webServiceDeployment = dep.getAttachment(WebServiceDeployment.class);
+ if (webServiceDeployment != null)
+ {
+ Iterator<WebServiceDeclaration> it = webServiceDeployment.getServiceEndpoints().iterator();
+ while (it.hasNext())
+ {
+ WebServiceDeclaration container = it.next();
+ RolesAllowed anRolesAllowed = container.getAnnotation(RolesAllowed.class);
+ if (anRolesAllowed != null)
+ {
+ SecurityRolesMetaData securityRoles = webApp.getSecurityRoles();
+ for (String roleName : anRolesAllowed.value())
+ {
+ SecurityRoleMetaData role = new SecurityRoleMetaData();
+ role.setRoleName(roleName);
+ securityRoles.add(role);
+ }
+ }
+ }
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/SecurityHandlerEJB3.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.deployment.tomcat;
+
+import org.jboss.wsf.spi.deployment.Deployment;
+
+/**
+ * Modifies the web app according to the stack requirements.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 19-May-2007
+ */
+public interface WebMetaDataModifier
+{
+ RewriteResults modifyMetaData(Deployment dep) throws ClassNotFoundException;
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifier.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,205 @@
+/*
+ * 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.jboss50.deployment.tomcat;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.javaee.spec.ParamValueMetaData;
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.ListenerMetaData;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.transport.HttpSpec;
+
+import javax.xml.ws.WebServiceException;
+import java.util.ArrayList;
+import java.util.Iterator;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * The rewriter for web.xml
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 19-May-2007
+ */
+public class WebMetaDataModifierImpl implements WebMetaDataModifier
+{
+ // logging support
+ private static Logger log = Logger.getLogger(WebMetaDataModifierImpl.class);
+
+ public RewriteResults modifyMetaData(Deployment dep)
+ {
+ JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
+ if (jbwmd == null)
+ throw new WebServiceException("Cannot find web meta data");
+
+ try
+ {
+ RewriteResults results = modifyMetaData(dep, jbwmd);
+ return results;
+ }
+ catch (RuntimeException rte)
+ {
+ throw rte;
+ }
+ catch (Exception e)
+ {
+ throw new WebServiceException(e);
+ }
+ }
+
+ private RewriteResults modifyMetaData(Deployment dep, JBossWebMetaData jbwmd) throws ClassNotFoundException
+ {
+ RewriteResults results = new RewriteResults();
+
+ String servletClass = (String)dep.getProperty(HttpSpec.PROPERTY_WEBAPP_SERVLET_CLASS);
+ if (servletClass == null)
+ throw new IllegalStateException("Cannot obtain context property: " + HttpSpec.PROPERTY_WEBAPP_SERVLET_CLASS);
+
+ Map<String, String> depCtxParams = (Map<String, String>)dep.getProperty(HttpSpec.PROPERTY_WEBAPP_CONTEXT_PARAMETERS);
+ if (depCtxParams != null)
+ {
+ List<ParamValueMetaData> contextParams = jbwmd.getContextParams();
+ if (contextParams == null)
+ {
+ contextParams = new ArrayList<ParamValueMetaData>();
+ jbwmd.setContextParams(contextParams);
+ }
+
+ for (Map.Entry<String, String> entry : depCtxParams.entrySet())
+ {
+ ParamValueMetaData param = new ParamValueMetaData();
+ param.setParamName(entry.getKey());
+ param.setParamValue(entry.getValue());
+ contextParams.add(param);
+ }
+ }
+
+ String listenerClass = (String)dep.getProperty(HttpSpec.PROPERTY_WEBAPP_SERVLET_CONTEXT_LISTENER);
+ if (listenerClass != null)
+ {
+ List<ListenerMetaData> listeners = jbwmd.getListeners();
+ if (listeners == null)
+ {
+ listeners = new ArrayList<ListenerMetaData>();
+ jbwmd.setListeners(listeners);
+ }
+ ListenerMetaData listener = new ListenerMetaData();
+ listener.setListenerClass(listenerClass);
+ }
+
+ for (Iterator it = jbwmd.getServlets().iterator(); it.hasNext();)
+ {
+ JBossServletMetaData servlet = (JBossServletMetaData)it.next();
+ List<ParamValueMetaData> initParams = servlet.getInitParam();
+ if (initParams == null)
+ {
+ initParams = new ArrayList<ParamValueMetaData>();
+ servlet.setInitParam(initParams);
+ }
+
+ String linkName = servlet.getServletName();
+
+ // find the servlet-class
+ String orgServletClassName = servlet.getServletClass();
+
+ // JSP
+ if (orgServletClassName == null)
+ continue;
+
+ // 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 (ParamValueMetaData initParam : initParams)
+ {
+ String paramName = initParam.getParamName();
+ String paramValue = initParam.getParamValue();
+ 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;
+ }
+
+ servlet.setServletClass(servletClass);
+
+ // add additional init params
+ if (orgServletClassName.equals(servletClass) == false)
+ {
+ targetBeanName = orgServletClassName;
+ ParamValueMetaData initParam = new ParamValueMetaData();
+ initParam.setParamName(Endpoint.SEPID_DOMAIN_ENDPOINT);
+ initParam.setParamValue(targetBeanName);
+ initParams.add(initParam);
+ }
+ }
+
+ 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(JBossServletMetaData servlet)
+ {
+ for (ParamValueMetaData initParam : servlet.getInitParam())
+ {
+ String paramName = initParam.getParamName();
+ if (Endpoint.SEPID_DOMAIN_ENDPOINT.equals(paramName))
+ return true;
+ }
+ return false;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/deployment/tomcat/WebMetaDataModifierImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/AbstractInvocationHandler.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/AbstractInvocationHandler.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/AbstractInvocationHandler.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/AbstractInvocationHandler.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB21.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $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.security.SecurityContext;
+import org.jboss.security.SecurityContextAssociation;
+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;
+import org.jboss.wsf.container.jboss50.invocation.ServiceEndpointInterceptor;
+
+/**
+ * Handles invocations on EJB21 endpoints.
+ *
+ * @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;
+
+ 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 MBeanServer
+ server = MBeanServerLocator.locateJBoss();
+
+ // get the bean's JNDI name
+ jndiName = beanMetaData.getContainerObjectNameJndiName();
+ if (jndiName == null)
+ throw new WebServiceException("Cannot obtain JNDI name for: " + ejbName);
+ }
+
+ public void invoke(Endpoint ep, Invocation inv) throws Exception
+ {
+ log.debug("Invoke: " + inv.getJavaMethod().getName());
+
+ if (objectName == null)
+ {
+ objectName = ObjectNameFactory.create("jboss.j2ee:jndiName=" + jndiName + ",service=EJB");
+ if (server.isRegistered(objectName) == false)
+ throw new WebServiceException("Cannot find service endpoint target: " + objectName);
+
+ // Inject the Service endpoint interceptor
+ injectServiceEndpointInterceptor(objectName, ep.getShortName());
+ }
+
+ // 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();
+ SecurityContext sc = SecurityContextAssociation.getSecurityContext();
+ Principal principal = securityAdaptor.getPrincipal();
+ Object credential = securityAdaptor.getCredential();
+
+ if (principal == null && sc != null)
+ principal = sc.getUtil().getUserPrincipal();
+
+ if (credential == null && sc != null)
+ credential = sc.getUtil().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;
+ }
+
+ private void injectServiceEndpointInterceptor(ObjectName objectName, String ejbName)
+ {
+ // 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);
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB21.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,110 @@
+/*
+ * 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.jboss50.invocation;
+
+// $Id$
+
+import org.jboss.dependency.spi.ControllerContext;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.invocation.Invocation;
+import org.jboss.wsf.spi.invocation.integration.InvocationContextCallback;
+import org.jboss.wsf.spi.invocation.integration.ServiceEndpointContainer;
+import org.jboss.wsf.spi.util.KernelLocator;
+
+import javax.xml.ws.WebServiceException;
+import java.lang.reflect.Method;
+
+/**
+ * Handles invocations on EJB3 endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
+ *
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerEJB3 extends AbstractInvocationHandler
+{
+
+ public static final String CONTAINER_NAME = "org.jboss.wsf.spi.invocation.ContainerName";
+
+ private String containerName;
+ private KernelController houston;
+ private ServiceEndpointContainer invocationTarget;
+
+ InvocationHandlerEJB3()
+ {
+ houston = KernelLocator.getKernel().getController();
+ }
+
+ public Invocation createInvocation()
+ {
+ return new Invocation();
+ }
+
+ public void init(Endpoint ep)
+ {
+ containerName = (String)ep.getProperty(InvocationHandlerEJB3.CONTAINER_NAME);
+ assert containerName!=null : "Target container name not set";
+
+ ControllerContext context = houston.getInstalledContext(containerName);
+ if (context == null)
+ throw new WebServiceException("Cannot find service endpoint target: " + containerName);
+
+ assert (context.getTarget() instanceof ServiceEndpointContainer) : "Invocation target mismatch";
+ this.invocationTarget = (ServiceEndpointContainer) context.getTarget();
+ }
+
+ public void invoke(Endpoint ep, Invocation wsInv) throws Exception
+ {
+ try
+ {
+ Class beanClass = invocationTarget.getServiceImplementationClass();
+ Method method = getImplMethod(beanClass, wsInv.getJavaMethod());
+ Object[] args = wsInv.getArgs();
+ InvocationContextCallback invProps = new EJB3InvocationContextCallback(wsInv);
+
+ Object retObj = invocationTarget.invokeEndpoint(method, args, invProps);
+
+ wsInv.setReturnValue(retObj);
+ }
+ catch (Throwable th)
+ {
+ handleInvocationException(th);
+ }
+ }
+
+ static class EJB3InvocationContextCallback implements InvocationContextCallback
+ {
+ private Invocation wsInv;
+
+ public EJB3InvocationContextCallback(Invocation wsInv)
+ {
+ this.wsInv = wsInv;
+ }
+
+ public <T> T get(Class<T> propertyType)
+ {
+ return wsInv.getInvocationContext().getAttachment(propertyType);
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerEJB3.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerFactoryImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerFactoryImpl.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerFactoryImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,66 @@
+/*
+ * 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.jboss50.invocation;
+
+import org.jboss.wsf.spi.invocation.*;
+import org.jboss.wsf.container.jboss50.invocation.*;
+
+/**
+ * The default invocation model factory fro AS 5.0.
+ *
+ * @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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXRPC.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXRPC.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXRPC.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXRPC.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXWS.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXWS.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXWS.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $Id$
+
+/**
+ * Handles invocations on JSE endpoints.
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @since 25-Apr-2007
+ */
+public class InvocationHandlerJAXWS extends InvocationHandlerJSE
+{
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJAXWS.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJSE.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJSE.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJSE.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,128 @@
+/*
+ * 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.jboss50.invocation;
+
+// $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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerJSE.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB21.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB21.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB21.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $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("Canot 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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB21.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB3.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB3.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB3.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $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("Canot 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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/InvocationHandlerMDB3.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdapterFactoryImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdapterFactoryImpl.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdapterFactoryImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdapterFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdaptorImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdaptorImpl.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdaptorImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $Id$
+
+import org.jboss.security.SecurityAssociation;
+import org.jboss.wsf.spi.invocation.SecurityAdaptor;
+
+import java.security.Principal;
+
+/**
+ * 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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/SecurityAdaptorImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/ServiceEndpointInterceptor.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/ServiceEndpointInterceptor.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/ServiceEndpointInterceptor.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+// $Id$
+
+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;
+
+import javax.xml.rpc.handler.soap.SOAPMessageContext;
+
+/**
+ * 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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/ServiceEndpointInterceptor.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/WebServiceContextFactoryImpl.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/WebServiceContextFactoryImpl.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/WebServiceContextFactoryImpl.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -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.jboss50.invocation;
+
+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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/invocation/WebServiceContextFactoryImpl.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/BareTransportManagerFactory.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/BareTransportManagerFactory.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/BareTransportManagerFactory.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,60 @@
+/*
+ * 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.jboss50.transport;
+
+import org.jboss.wsf.spi.transport.TransportManagerFactory;
+import org.jboss.wsf.spi.transport.TransportManager;
+import org.jboss.wsf.spi.transport.Protocol;
+
+/**
+ * Used with MC
+ *
+ * @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 manager = null;
+
+ switch(protocol)
+ {
+ case HTTP:
+ manager = httpTransport;
+ break;
+ default:
+ throw new IllegalArgumentException("No TransportManager for protocol: " + protocol);
+ }
+
+ return manager;
+ }
+}
+
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/BareTransportManagerFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EJBHttpTransportManager.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EJBHttpTransportManager.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EJBHttpTransportManager.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,141 @@
+/*
+ * 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.jboss50.transport;
+
+import org.jboss.logging.Logger;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.spi.transport.HttpListenerRef;
+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.management.ServerConfig;
+import org.jboss.wsf.spi.management.ServerConfigFactory;
+import org.jboss.wsf.spi.transport.HttpSpec;
+import org.jboss.wsf.spi.transport.ListenerRef;
+import org.jboss.wsf.spi.transport.TransportManager;
+import org.jboss.wsf.spi.transport.TransportSpec;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * Creates a webapp dpeloyment and pushes it into the deployment framework
+ *
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class EJBHttpTransportManager implements TransportManager
+{
+ private static Logger log = Logger.getLogger(EJBHttpTransportManager.class);
+ private static final String PROCESSED_BY_DEPLOYMENT_FACTORY = "processed.by.deployment.factory";
+ private WebAppDeploymentFactory deploymentFactory;
+ private WebAppGenerator generator;
+ private Map<String, Deployment> deploymentRegistry = new HashMap<String, Deployment>();
+
+ public ListenerRef createListener(Endpoint endpoint, TransportSpec transportSpec)
+ {
+
+ assert deploymentFactory!=null;
+ assert generator!=null;
+
+ // Resolve the endpoint address
+ if(! (transportSpec instanceof HttpSpec))
+ throw new IllegalArgumentException("Unknown TransportSpec " + transportSpec);
+ HttpSpec httpSpec = (HttpSpec)transportSpec;
+
+ // Create JBossWebMetaData and attach it to the DeploymentUnit
+ Deployment topLevelDeployment = endpoint.getService().getDeployment();
+
+ // TODO: Somehow the ServletClass and InitParameter need to go from TransportSpec into generator
+ topLevelDeployment.setProperty(HttpSpec.PROPERTY_WEBAPP_SERVLET_CLASS, httpSpec.getServletClass());
+ topLevelDeployment.setProperty(HttpSpec.PROPERTY_WEBAPP_CONTEXT_PARAMETERS, httpSpec.getContextParameter());
+
+ // TODO: JBWS-2188
+ Boolean alreadyDeployed = (Boolean)topLevelDeployment.getProperty(PROCESSED_BY_DEPLOYMENT_FACTORY);
+ if ((alreadyDeployed == null) || (false == alreadyDeployed))
+ {
+ JBossWebMetaData jbwMetaData = generator.create(topLevelDeployment);
+ deploymentFactory.create(topLevelDeployment, jbwMetaData);
+ topLevelDeployment.setProperty(PROCESSED_BY_DEPLOYMENT_FACTORY, Boolean.TRUE);
+ }
+
+ SPIProvider provider = SPIProviderResolver.getInstance().getProvider();
+ ServerConfigFactory spi = provider.getSPI(ServerConfigFactory.class);
+ ServerConfig serverConfig = spi.getServerConfig();
+
+ String host = serverConfig.getWebServiceHost();
+ int port = serverConfig.getWebServicePort();
+ String hostAndPort = host + (port > 0 ? ":" + port : "");
+
+ ListenerRef listenerRef = null;
+ try
+ {
+ String ctx = httpSpec.getWebContext();
+ String pattern = httpSpec.getUrlPattern();
+ listenerRef = new HttpListenerRef(ctx, pattern, new URI("http://" + hostAndPort + ctx + pattern));
+ }
+ catch (URISyntaxException e)
+ {
+ throw new RuntimeException("Failed to create ListenerRef", e);
+ }
+
+ // Map listenerRef for destroy phase
+ deploymentRegistry.put( listenerRef.getUUID(), topLevelDeployment );
+
+ return listenerRef;
+ }
+
+ public void destroyListener(ListenerRef ref)
+ {
+ Deployment dep = deploymentRegistry.get(ref.getUUID());
+ if (dep != null)
+ {
+ // TODO: JBWS-2188
+ Boolean alreadyDeployed = (Boolean)dep.getProperty(PROCESSED_BY_DEPLOYMENT_FACTORY);
+ if ((alreadyDeployed != null) && (true == alreadyDeployed))
+ {
+ try
+ {
+ deploymentFactory.destroy(dep);
+ }
+ catch (Exception e)
+ {
+ log.error(e.getMessage(), e);
+ }
+ dep.removeProperty(PROCESSED_BY_DEPLOYMENT_FACTORY);
+ }
+ }
+ deploymentRegistry.remove(ref.getUUID());
+ }
+
+ public void setDeploymentFactory(WebAppDeploymentFactory deploymentFactory)
+ {
+ this.deploymentFactory = deploymentFactory;
+ }
+
+ public void setGenerator(WebAppGenerator generator)
+ {
+ this.generator = generator;
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EJBHttpTransportManager.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EndpointAPIHttpTransportManager.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EndpointAPIHttpTransportManager.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EndpointAPIHttpTransportManager.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,221 @@
+/*
+ * 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.jboss50.transport;
+
+import org.jboss.deployers.client.plugins.deployment.AbstractDeployment;
+import org.jboss.deployers.client.spi.DeployerClient;
+import org.jboss.deployers.client.spi.DeploymentFactory;
+import org.jboss.deployers.spi.attachments.MutableAttachments;
+import org.jboss.deployers.structure.spi.ClassLoaderFactory;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.container.jboss50.deployment.tomcat.WebMetaDataModifier;
+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.deployment.WSFDeploymentException;
+import org.jboss.wsf.spi.management.ServerConfig;
+import org.jboss.wsf.spi.management.ServerConfigFactory;
+import org.jboss.wsf.spi.transport.*;
+
+import javax.xml.ws.WebServiceException;
+import java.net.URI;
+import java.net.URISyntaxException;
+import java.util.HashMap;
+import java.util.Map;
+
+/**
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class EndpointAPIHttpTransportManager implements TransportManager
+{
+ private static Logger log = Logger.getLogger(EndpointAPIHttpTransportManager.class);
+ private static final String PROCESSED_BY_DEPLOYMENT_FACTORY = "processed.by.deployment.factory";
+ private WebAppDeploymentFactory deploymentFactory;
+ private WebAppGenerator generator;
+ private DeploymentFactory factory = new DeploymentFactory();
+
+ private WebMetaDataModifier webMetaDataModifier;
+ private DeployerClient mainDeployer;
+
+ private Map<String, Deployment> deploymentRegistry = new HashMap<String, Deployment>();
+
+ public ListenerRef createListener(Endpoint endpoint, TransportSpec transportSpec)
+ {
+ assert generator!=null;
+ assert webMetaDataModifier!=null;
+
+ // Resolve the endpoint address
+ if(! (transportSpec instanceof HttpSpec))
+ throw new IllegalArgumentException("Unknown TransportSpec " + transportSpec);
+ HttpSpec httpSpec = (HttpSpec)transportSpec;
+
+ // Create JBossWebMetaData and attach it to the DeploymentUnit
+ Deployment topLevelDeployment = endpoint.getService().getDeployment();
+
+ // TODO: JBWS-2188
+ Boolean alreadyDeployed = (Boolean)topLevelDeployment.getProperty(PROCESSED_BY_DEPLOYMENT_FACTORY);
+ if ((alreadyDeployed == null) || (false == alreadyDeployed))
+ {
+ JBossWebMetaData jbwMetaData = generator.create(topLevelDeployment);
+ deploymentFactory.create(topLevelDeployment, jbwMetaData);
+ topLevelDeployment.setProperty(PROCESSED_BY_DEPLOYMENT_FACTORY, Boolean.TRUE);
+ }
+
+ // Server config
+ SPIProvider provider = SPIProviderResolver.getInstance().getProvider();
+ ServerConfigFactory spi = provider.getSPI(ServerConfigFactory.class);
+ ServerConfig serverConfig = spi.getServerConfig();
+ String host = serverConfig.getWebServiceHost();
+ int port = serverConfig.getWebServicePort();
+ String hostAndPort = host + (port > 0 ? ":" + port : "");
+
+ ListenerRef listenerRef = null;
+ try
+ {
+ String ctx = httpSpec.getWebContext();
+ String pattern = httpSpec.getUrlPattern();
+ listenerRef = new HttpListenerRef(ctx, pattern, new URI("http://" + hostAndPort + ctx + pattern));
+ }
+ catch (URISyntaxException e)
+ {
+ throw new RuntimeException("Failed to create ListenerRef", e);
+ }
+
+ // Pass on to the main deployer
+ deploy(topLevelDeployment);
+
+ // Map listenerRef for destroy phase
+ deploymentRegistry.put( listenerRef.getUUID(), topLevelDeployment );
+
+ return listenerRef;
+ }
+
+ public void destroyListener(ListenerRef ref)
+ {
+ Deployment dep = deploymentRegistry.get(ref.getUUID());
+ if (dep != null)
+ {
+ // TODO: JBWS-2188
+ Boolean alreadyDeployed = (Boolean)dep.getProperty(PROCESSED_BY_DEPLOYMENT_FACTORY);
+ if ((alreadyDeployed != null) && (true == alreadyDeployed))
+ {
+ try
+ {
+ undeploy(dep);
+ }
+ catch (Exception e)
+ {
+ log.error(e.getMessage(), e);
+ }
+ try
+ {
+ deploymentFactory.destroy(dep);
+ }
+ catch (Exception e)
+ {
+ log.error(e.getMessage(), e);
+ }
+ dep.removeProperty(PROCESSED_BY_DEPLOYMENT_FACTORY);
+ }
+ }
+ deploymentRegistry.remove(ref.getUUID());
+ }
+
+ public void setDeploymentFactory(WebAppDeploymentFactory deploymentFactory)
+ {
+ this.deploymentFactory = deploymentFactory;
+ }
+
+ public void setGenerator(WebAppGenerator generator)
+ {
+ this.generator = generator;
+ }
+
+ public void setWebMetaDataModifier(WebMetaDataModifier webMetaDataModifier)
+ {
+ this.webMetaDataModifier = webMetaDataModifier;
+ }
+
+ public void setMainDeployer(DeployerClient mainDeployer)
+ {
+ this.mainDeployer = mainDeployer;
+ }
+
+ private void deploy(Deployment dep)
+ {
+ JBossWebMetaData jbwmd = dep.getAttachment(JBossWebMetaData.class);
+ if (jbwmd == null)
+ throw new WebServiceException("Cannot find web meta data");
+
+ try
+ {
+ webMetaDataModifier.modifyMetaData(dep);
+
+ AbstractDeployment deployment = createSimpleDeployment(dep.getSimpleName());
+ MutableAttachments mutableAttachments = (MutableAttachments)deployment.getPredeterminedManagedObjects();
+ mutableAttachments.addAttachment(HttpSpec.PROPERTY_GENERATED_WEBAPP, Boolean.TRUE);
+ mutableAttachments.addAttachment(ClassLoaderFactory.class, new ContextClassLoaderFactory());
+ mutableAttachments.addAttachment(JBossWebMetaData.class, jbwmd);
+ mainDeployer.deploy(deployment);
+ }
+ catch (Exception ex)
+ {
+ WSFDeploymentException.rethrow(ex);
+ }
+ }
+
+ private void undeploy(Deployment dep)
+ {
+ try
+ {
+ AbstractDeployment deployment = createSimpleDeployment(dep.getSimpleName());
+ mainDeployer.undeploy(deployment);
+ }
+ catch (Exception ex)
+ {
+ WSFDeploymentException.rethrow(ex);
+ }
+ }
+
+ private AbstractDeployment createSimpleDeployment(String name)
+ {
+ AbstractDeployment unit = new AbstractDeployment(name);
+ // There is one top level deployment
+ factory.addContext(unit, "");
+ return unit;
+ }
+
+ private static class ContextClassLoaderFactory implements ClassLoaderFactory
+ {
+ public ClassLoader createClassLoader(DeploymentUnit unit) throws Exception
+ {
+ return Thread.currentThread().getContextClassLoader();
+ }
+
+ public void removeClassLoader(DeploymentUnit unit) throws Exception
+ {
+ }
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/EndpointAPIHttpTransportManager.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/NoopHttpTransportManager.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/NoopHttpTransportManager.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/NoopHttpTransportManager.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,83 @@
+/*
+ * 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.jboss50.transport;
+
+import org.jboss.wsf.spi.transport.HttpListenerRef;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.Endpoint;
+import org.jboss.wsf.spi.management.ServerConfig;
+import org.jboss.wsf.spi.management.ServerConfigFactory;
+import org.jboss.wsf.spi.transport.HttpSpec;
+import org.jboss.wsf.spi.transport.ListenerRef;
+import org.jboss.wsf.spi.transport.TransportManager;
+import org.jboss.wsf.spi.transport.TransportSpec;
+
+import java.net.URI;
+import java.net.URISyntaxException;
+
+/**
+ * TransportManager implementation that doesn't create physical
+ * endpoints (ports, etc) but simply constructs a service endpoint address for a given
+ * deployment;
+ *
+ * @author Heiko.Braun <heiko.braun at jboss.com>
+ */
+public class NoopHttpTransportManager implements TransportManager
+{
+ public ListenerRef createListener(Endpoint endpoint, TransportSpec transportSpec)
+ {
+ if(! (transportSpec instanceof HttpSpec))
+ throw new IllegalArgumentException("Unknown TransportSpec " + transportSpec);
+
+ HttpSpec httpSpec = (HttpSpec)transportSpec;
+
+ SPIProvider provider = SPIProviderResolver.getInstance().getProvider();
+ ServerConfigFactory spi = provider.getSPI(ServerConfigFactory.class);
+ ServerConfig serverConfig = spi.getServerConfig();
+
+ String host = serverConfig.getWebServiceHost();
+ int port = serverConfig.getWebServicePort();
+ String hostAndPort = host + (port > 0 ? ":" + port : "");
+
+ try
+ {
+ String ctx = httpSpec.getWebContext();
+ String pattern = httpSpec.getUrlPattern();
+ ListenerRef ref = new HttpListenerRef(
+ ctx, pattern,
+ new URI("http://"+hostAndPort+ctx+pattern)
+ );
+
+ return ref;
+
+ } catch (URISyntaxException e)
+ {
+ throw new RuntimeException("Failed to create ListenerRef", e);
+ }
+ }
+
+ public void destroyListener(ListenerRef ref)
+ {
+ // noop
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/NoopHttpTransportManager.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WSFRuntimeDelegateHttpServer.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WSFRuntimeDelegateHttpServer.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WSFRuntimeDelegateHttpServer.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,134 @@
+/*
+ * 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.jboss50.transport;
+
+//$Id$
+
+import org.jboss.wsf.common.ResourceLoaderAdapter;
+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.ArchiveDeployment;
+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 WSFRuntimeDelegateHttpServer extends AbstractExtensible implements HttpServer
+{
+ /** 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();
+ WSFRuntimeLocator locator = spiProvider.getSPI(WSFRuntimeLocator.class);
+ WSFRuntime runtime = locator.locateRuntime("EndpointAPIRuntime");
+
+ DeploymentModelFactory depModelFactory = spiProvider.getSPI(DeploymentModelFactory.class);
+
+ // Create/Setup the deployment
+ Deployment dep = depModelFactory.newDeployment("endpoint-deployment", implClass.getClassLoader());
+ dep.setType(Deployment.DeploymentType.JAXWS_JSE);
+ dep.setRuntimeClassLoader(dep.getInitialClassLoader());
+
+ // TODO: Hack, should this become another DeploymentAspect?
+ ((ArchiveDeployment)dep).setRootFile(new ResourceLoaderAdapter());
+
+ // 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());
+ ep.setShortName(implClass.getName()+"-Endpoint");
+ ep.setURLPattern("/*");
+ service.addEndpoint(ep);
+
+ // Deploy using deployment aspects
+ 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: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WSFRuntimeDelegateHttpServer.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,87 @@
+/*
+ * 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.jboss50.transport;
+
+// $Id$
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.wsf.container.jboss50.deployment.tomcat.WebMetaDataModifier;
+import org.jboss.wsf.spi.deployment.Deployment;
+import org.jboss.wsf.spi.deployment.WSFDeploymentException;
+import org.jboss.wsf.spi.transport.HttpSpec;
+
+/**
+ * Deploy the generated webapp to JBoss by attaching it
+ * to the {@link org.jboss.deployers.structure.spi.DeploymentUnit}
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
+ *
+ * @since 12-May-2006
+ */
+public class WebAppDeploymentFactory
+{
+ private WebMetaDataModifier webMetaDataModifier;
+
+ public void setWebMetaDataModifier(WebMetaDataModifier webMetaDataModifier)
+ {
+ this.webMetaDataModifier = webMetaDataModifier;
+ }
+
+ /**
+ * Creates and attaches web meta data to a deployment unit
+ * @param dep
+ * @return a mofified deployment unit
+ */
+ public DeploymentUnit create(Deployment dep, JBossWebMetaData jbwmd )
+ {
+ if (jbwmd == null)
+ throw new IllegalArgumentException("Web meta data is cannot be null");
+
+ DeploymentUnit unit = dep.getAttachment(DeploymentUnit.class);
+ if (unit == null)
+ throw new IllegalStateException("Cannot obtain deployment unit");
+
+ try
+ {
+ webMetaDataModifier.modifyMetaData(dep);
+
+ // Attaching it to the DeploymentUnit will cause a new webapp deployment
+ unit.addAttachment(JBossWebMetaData.class, jbwmd);
+ unit.addAttachment(HttpSpec.PROPERTY_GENERATED_WEBAPP, Boolean.TRUE);
+
+ }
+ catch (Exception ex)
+ {
+ WSFDeploymentException.rethrow(ex);
+ }
+
+ return unit;
+ }
+
+ public void destroy(Deployment dep)
+ {
+ // nothing to do?
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppDeploymentFactory.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppGenerator.java
===================================================================
--- branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppGenerator.java (rev 0)
+++ branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppGenerator.java 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,279 @@
+/*
+ * 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.jboss50.transport;
+
+// $Id$
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.jboss.metadata.web.jboss.JBossServletMetaData;
+import org.jboss.metadata.web.jboss.JBossServletsMetaData;
+import org.jboss.metadata.web.jboss.JBossWebMetaData;
+import org.jboss.metadata.web.spec.AuthConstraintMetaData;
+import org.jboss.metadata.web.spec.LoginConfigMetaData;
+import org.jboss.metadata.web.spec.SecurityConstraintMetaData;
+import org.jboss.metadata.web.spec.ServletMappingMetaData;
+import org.jboss.metadata.web.spec.TransportGuaranteeType;
+import org.jboss.metadata.web.spec.UserDataConstraintMetaData;
+import org.jboss.metadata.web.spec.WebResourceCollectionMetaData;
+import org.jboss.metadata.web.spec.WebResourceCollectionsMetaData;
+import org.jboss.wsf.spi.annotation.WebContext;
+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.WSFDeploymentException;
+import org.jboss.wsf.spi.metadata.j2ee.EJBArchiveMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.EJBSecurityMetaData;
+import org.jboss.wsf.container.jboss50.deployment.tomcat.SecurityHandler;
+
+/**
+ * Generates a webapp for an EJB endpoint
+ * which will be process by {@link org.jboss.wsf.container.jboss50.transport.WebAppDeploymentFactory}
+ *
+ * @author Thomas.Diesler at jboss.org
+ * @author Heiko.Braun at jboss.com
+ *
+ * @since 13-Oct-2007
+ */
+public class WebAppGenerator
+{
+ private SecurityHandler securityHandlerEJB21;
+ private SecurityHandler securityHandlerEJB3;
+
+ public void setSecurityHandlerEJB21(SecurityHandler handler)
+ {
+ this.securityHandlerEJB21 = handler;
+ }
+
+ public void setSecurityHandlerEJB3(SecurityHandler handler)
+ {
+ this.securityHandlerEJB3 = handler;
+ }
+
+ public JBossWebMetaData create(Deployment dep)
+ {
+ JBossWebMetaData jbwmd = null;
+
+ String typeStr = dep.getType().toString();
+ if (typeStr.endsWith("EJB21"))
+ {
+ jbwmd = generatWebDeployment((ArchiveDeployment)dep, securityHandlerEJB21);
+ dep.addAttachment(JBossWebMetaData.class, jbwmd);
+ }
+ else if (typeStr.endsWith("EJB3"))
+ {
+ jbwmd = generatWebDeployment((ArchiveDeployment)dep, securityHandlerEJB3);
+ dep.addAttachment(JBossWebMetaData.class, jbwmd);
+ }
+ else
+ {
+ jbwmd = generatWebDeployment((ArchiveDeployment)dep, null);
+ dep.addAttachment(JBossWebMetaData.class, jbwmd);
+ }
+
+ return jbwmd;
+ }
+
+ protected JBossWebMetaData generatWebDeployment(ArchiveDeployment dep, SecurityHandler securityHandler)
+ {
+ JBossWebMetaData jbwmd = new JBossWebMetaData();
+ createWebAppDescriptor(dep, jbwmd, securityHandler);
+ createJBossWebAppDescriptor(dep, jbwmd, securityHandler);
+ return jbwmd;
+ }
+
+ protected void createWebAppDescriptor(Deployment dep, JBossWebMetaData jbwmd, SecurityHandler securityHandler)
+ {
+ /*
+ <servlet>
+ <servlet-name>
+ <servlet-class>
+ </servlet>
+ */
+ JBossServletsMetaData servlets = jbwmd.getServlets();
+ for (Endpoint ep : dep.getService().getEndpoints())
+ {
+ JBossServletMetaData servlet = new JBossServletMetaData();
+ servlet.setServletName(ep.getShortName());
+ servlet.setServletClass(ep.getTargetBeanName());
+ servlets.add(servlet);
+ }
+
+ /*
+ <servlet-mapping>
+ <servlet-name>
+ <url-pattern>
+ </servlet-mapping>
+ */
+ for (Endpoint ep : dep.getService().getEndpoints())
+ {
+ List<ServletMappingMetaData> servletMappings = jbwmd.getServletMappings();
+ if (servletMappings == null)
+ {
+ servletMappings = new ArrayList<ServletMappingMetaData>();
+ jbwmd.setServletMappings(servletMappings);
+ }
+ ServletMappingMetaData servletMapping = new ServletMappingMetaData();
+ servletMapping.setServletName(ep.getShortName());
+ servletMapping.setUrlPatterns(Arrays.asList(new String[] { ep.getURLPattern() }));
+ servletMappings.add(servletMapping);
+ }
+
+ String authMethod = null;
+
+ // Add web-app/security-constraint for each port component
+ for (Endpoint ep : dep.getService().getEndpoints())
+ {
+ String ejbName = ep.getShortName();
+
+ Boolean secureWSDLAccess = null;
+ String transportGuarantee = null;
+ String beanAuthMethod = null;
+
+ WebContext anWebContext = (WebContext)ep.getTargetBeanClass().getAnnotation(WebContext.class);
+ if (anWebContext != null)
+ {
+ if (anWebContext.authMethod().length() > 0)
+ beanAuthMethod = anWebContext.authMethod();
+ if (anWebContext.transportGuarantee().length() > 0)
+ transportGuarantee = anWebContext.transportGuarantee();
+ if (anWebContext.secureWSDLAccess())
+ secureWSDLAccess = anWebContext.secureWSDLAccess();
+ }
+
+ EJBArchiveMetaData appMetaData = dep.getAttachment(EJBArchiveMetaData.class);
+ if (appMetaData != null && appMetaData.getBeanByEjbName(ejbName) != null)
+ {
+ EJBMetaData bmd = appMetaData.getBeanByEjbName(ejbName);
+ EJBSecurityMetaData smd = bmd.getSecurityMetaData();
+ if (smd != null)
+ {
+ beanAuthMethod = smd.getAuthMethod();
+ transportGuarantee = smd.getTransportGuarantee();
+ secureWSDLAccess = smd.getSecureWSDLAccess();
+ }
+ }
+
+ if (beanAuthMethod != null || transportGuarantee != null)
+ {
+ /*
+ <security-constraint>
+ <web-resource-collection>
+ <web-resource-name>TestUnAuthPort</web-resource-name>
+ <url-pattern>/HSTestRoot/TestUnAuth/*</url-pattern>
+ </web-resource-collection>
+ <auth-constraint>
+ <role-name>*</role-name>
+ </auth-constraint>
+ <user-data-constraint>
+ <transport-guarantee>NONE</transport-guarantee>
+ </user-data-constraint>
+ </security-constraint>
+ */
+ List<SecurityConstraintMetaData> securityContraints = jbwmd.getSecurityContraints();
+ if (securityContraints == null)
+ {
+ securityContraints = new ArrayList<SecurityConstraintMetaData>();
+ jbwmd.setSecurityContraints(securityContraints);
+ }
+ SecurityConstraintMetaData securityConstraint = new SecurityConstraintMetaData();
+ securityContraints.add(securityConstraint);
+
+ WebResourceCollectionsMetaData resourceCollections = securityConstraint.getResourceCollections();
+ if (resourceCollections == null)
+ {
+ resourceCollections = new WebResourceCollectionsMetaData();
+ securityConstraint.setResourceCollections(resourceCollections);
+ }
+ WebResourceCollectionMetaData resourceCollection = new WebResourceCollectionMetaData();
+ resourceCollections.add(resourceCollection);
+
+ resourceCollection.setWebResourceName(ejbName);
+ resourceCollection.setUrlPatterns(Arrays.asList(new String[] { ep.getURLPattern() }));
+ ArrayList<String> httpMethods = new ArrayList<String>();
+ resourceCollection.setHttpMethods(httpMethods);
+ if (Boolean.TRUE.equals(secureWSDLAccess))
+ {
+ httpMethods.add("GET");
+ }
+ httpMethods.add("POST");
+
+ // Optional auth-constraint
+ if (beanAuthMethod != null)
+ {
+ // Only the first auth-method gives the war login-config/auth-method
+ if (authMethod == null)
+ authMethod = beanAuthMethod;
+
+ AuthConstraintMetaData authConstraint = new AuthConstraintMetaData();
+ authConstraint.setRoleNames(Arrays.asList(new String[] { "*" }));
+ securityConstraint.setAuthConstraint(authConstraint);
+ }
+ // Optional user-data-constraint
+ if (transportGuarantee != null)
+ {
+ UserDataConstraintMetaData userDataConstraint = new UserDataConstraintMetaData();
+ userDataConstraint.setTransportGuarantee(TransportGuaranteeType.valueOf(transportGuarantee));
+ securityConstraint.setUserDataConstraint(userDataConstraint);
+ }
+ }
+ }
+
+ // Optional login-config/auth-method
+ if (authMethod != null && securityHandler != null)
+ {
+ LoginConfigMetaData loginConfig = jbwmd.getLoginConfig();
+ if (loginConfig == null)
+ {
+ loginConfig = new LoginConfigMetaData();
+ jbwmd.setLoginConfig(loginConfig);
+ }
+ loginConfig.setAuthMethod(authMethod);
+ loginConfig.setRealmName("EJBServiceEndpointServlet Realm");
+
+ securityHandler.addSecurityRoles(jbwmd, dep);
+ }
+ }
+
+ protected void createJBossWebAppDescriptor(Deployment dep, JBossWebMetaData jbwmd, SecurityHandler securityHandler)
+ {
+ /* Create a jboss-web
+ <jboss-web>
+ <security-domain>java:/jaas/cts</security-domain>
+ <context-root>/ws/ejbN/</context-root>
+ <virtual-host>some.domain.com</virtual-host>
+ </jboss-web>
+ */
+ if (securityHandler != null)
+ securityHandler.addSecurityDomain(jbwmd, dep);
+
+ // Get the context root for this deployment
+ String contextRoot = dep.getService().getContextRoot();
+ if (contextRoot == null)
+ throw new WSFDeploymentException("Cannot obtain context root");
+
+ jbwmd.setContextRoot(contextRoot);
+ }
+}
Property changes on: branches/ropalka/webservices/src/main/org/jboss/wsf/container/jboss50/transport/WebAppGenerator.java
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/META-INF/jbossws-container-beans.xml
===================================================================
--- branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/META-INF/jbossws-container-beans.xml (rev 0)
+++ branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/META-INF/jbossws-container-beans.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,258 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_2_0.xsd"
+ xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- 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">
+ <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
+ </bean>
+
+ <!-- The HTTPServer used by the JAXWS Endpoint API -->
+ <bean name="WSHTTPServer" class="org.jboss.wsf.container.jboss50.transport.WSFRuntimeDelegateHttpServer"/>
+
+ <!--
+ *********************************************************************************************************************
+ Main WSFRuntimes.
+ -->
+
+ <bean name="WebserviceJSERuntime" class="org.jboss.wsf.container.jboss50.BareWSFRuntime">
+ <constructor>
+ <parameter>WebserviceJSERuntime</parameter>
+ </constructor>
+ <property name="deploymentAspectManager"><inject bean="WSDeploymentAspectManagerJSE"/></property>
+ <property name="endpointRegistry"><inject bean="WSEndpointRegistry"/></property>
+ <property name="transportManagerFactory"><inject bean="JSETransportManagerFactory"/></property>
+ <property name="invocationHandlerFactory"><inject bean="InvocationHandlerFactory"/></property>
+ <property name="requestHandlerFactory"><inject bean="StackRequestHandlerFactory"/></property>
+ </bean>
+
+ <bean name="WebserviceEJBRuntime" class="org.jboss.wsf.container.jboss50.BareWSFRuntime">
+ <constructor>
+ <parameter>WebserviceEJBRuntime</parameter>
+ </constructor>
+ <property name="deploymentAspectManager"><inject bean="WSDeploymentAspectManagerEJB"/></property>
+ <property name="endpointRegistry"><inject bean="WSEndpointRegistry"/></property>
+ <property name="transportManagerFactory"><inject bean="EJBTransportManagerFactory"/></property>
+ <property name="invocationHandlerFactory"><inject bean="InvocationHandlerFactory"/></property>
+ <property name="requestHandlerFactory"><inject bean="StackRequestHandlerFactory"/></property>
+ </bean>
+
+ <bean name="EndpointAPIRuntime" class="org.jboss.wsf.container.jboss50.BareWSFRuntime">
+ <constructor>
+ <parameter>EndpointAPIRuntime</parameter>
+ </constructor>
+ <property name="deploymentAspectManager"><inject bean="WSDeploymentAspectManagerEndpointAPI"/></property>
+ <property name="endpointRegistry"><inject bean="WSEndpointRegistry"/></property>
+ <property name="transportManagerFactory"><inject bean="EndpointAPITransportManagerFactory"/></property>
+ <property name="invocationHandlerFactory"><inject bean="InvocationHandlerFactory"/></property>
+ <property name="requestHandlerFactory"><inject bean="StackRequestHandlerFactory"/></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>
+
+ <!-- JSE transport -->
+ <bean name="JSETransportManagerFactory" class="org.jboss.wsf.container.jboss50.transport.BareTransportManagerFactory">
+ <property name="httpTransport"><inject bean="JSEHttpTransport"/></property>
+ </bean>
+
+ <!-- EJB transport -->
+ <bean name="EJBTransportManagerFactory" class="org.jboss.wsf.container.jboss50.transport.BareTransportManagerFactory">
+ <property name="httpTransport"><inject bean="EJBHttpTransport"/></property>
+ </bean>
+
+ <!-- Endpoint API transport -->
+ <bean name="EndpointAPITransportManagerFactory" class="org.jboss.wsf.container.jboss50.transport.BareTransportManagerFactory">
+ <property name="httpTransport"><inject bean="EndpointAPIHttpTransport"/></property>
+ </bean>
+
+ <bean name="JSEHttpTransport" class="org.jboss.wsf.container.jboss50.transport.NoopHttpTransportManager"/>
+
+ <bean name="EJBHttpTransport" class="org.jboss.wsf.container.jboss50.transport.EJBHttpTransportManager">
+ <property name="generator"><inject bean="WSWebAppGenerator"/></property>
+ <property name="deploymentFactory"><inject bean="WSWebAppDeploymentFactory"/></property>
+ </bean>
+
+ <bean name="EndpointAPIHttpTransport" class="org.jboss.wsf.container.jboss50.transport.EndpointAPIHttpTransportManager">
+ <property name="generator"><inject bean="WSWebAppGenerator"/></property>
+ <property name="deploymentFactory"><inject bean="WSWebAppDeploymentFactory"/></property>
+ <property name="mainDeployer"><inject bean="MainDeployer"/></property>
+ <property name="webMetaDataModifier"><inject bean="WSWebMetaDataModifier"/></property>
+ </bean>
+
+ <!-- Dynamically creates web apps in memory -->
+ <bean name="WSWebAppGenerator" class="org.jboss.wsf.container.jboss50.transport.WebAppGenerator">
+ <property name="securityHandlerEJB21"><inject bean="WSSecurityHandlerEJB21"/></property>
+ <property name="securityHandlerEJB3"><inject bean="WSSecurityHandlerEJB3"/></property>
+ </bean>
+
+ <!-- Attaches a web meta data to the deployment unit -->
+ <bean name="WSWebAppDeploymentFactory" class="org.jboss.wsf.container.jboss50.transport.WebAppDeploymentFactory">
+ <property name="webMetaDataModifier"><inject bean="WSWebMetaDataModifier"/></property>
+ </bean>
+
+ <!-- invcocation handling -->
+ <bean name="InvocationHandlerFactory" class="org.jboss.wsf.container.jboss50.invocation.InvocationHandlerFactoryImpl"/>
+
+ <!--
+ *********************************************************************************************************************
+ Each DeploymentAspectManger maintains a list of DeploymentAspects which are installed by an AspectInstaller
+ -->
+
+ <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.jboss50.deployment.metadata.ContainerMetaDataDeploymentAspect">
+ <property name="provides">ContainerMetaData,VFSRoot</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="WSHttpTransportDeploymentAspect" class="org.jboss.wsf.framework.deployment.HttpTransportDeploymentAspect">
+ <property name="requires">URLPattern,ContextProperties</property>
+ <property name="provides">EndpointAddress,WebMetaData</property>
+ </bean>
+
+ <bean name="WSEndpointAPIDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointAPIDeploymentAspect">
+ <property name="provides">ContainerMetaData,RuntimeLoader,URLPattern,VFSRoot</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.jboss50.deployment.tomcat.ModifyWebMetaDataDeploymentAspect">
+ <property name="requires">ContextProperties,StackDescriptor,WebMetaData</property>
+ <property name="webMetaDataModifier"><inject bean="WSWebMetaDataModifier"/></property>
+ </bean>
+
+ <bean name="WSRuntimeLoaderDeploymentAspect" class="org.jboss.wsf.container.jboss50.deployment.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>
+
+ <!--
+ *********************************************************************************************************************
+ Deployment aspect helper beans
+ -->
+ <bean name="WSSecurityHandlerEJB21" class="org.jboss.wsf.container.jboss50.deployment.tomcat.SecurityHandlerEJB21"/>
+ <bean name="WSSecurityHandlerEJB3" class="org.jboss.wsf.container.jboss50.deployment.tomcat.SecurityHandlerEJB3"/>
+ <bean name="WSWebMetaDataModifier" class="org.jboss.wsf.container.jboss50.deployment.tomcat.WebMetaDataModifierImpl"/>
+
+ <!--
+ *********************************************************************************************************************
+ Deployment aspect installers
+ -->
+
+ <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="WSHttpTransportDeploymentAspect"/>
+ <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="WSHttpTransportDeploymentAspect"/>
+ <inject bean="WSEndpointHandlerDeploymentAspect"/>
+ <inject bean="WSEndpointLifecycleDeploymentAspect"/>
+ <inject bean="WSEndpointMetricsDeploymentAspect"/>
+ <inject bean="WSEndpointNameDeploymentAspect"/>
+ <inject bean="WSEndpointRegistryDeploymentAspect"/>
+ <inject bean="WSModifyWebMetaDataDeploymentAspect"/>
+ <inject bean="WSURLPatternDeploymentAspect"/>
+ <inject bean="WSRuntimeLoaderDeploymentAspect"/>
+ </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="WSHttpTransportDeploymentAspect"/>
+ <inject bean="WSEndpointHandlerDeploymentAspect"/>
+ <inject bean="WSEndpointLifecycleDeploymentAspect"/>
+ <inject bean="WSEndpointMetricsDeploymentAspect"/>
+ <inject bean="WSEndpointNameDeploymentAspect"/>
+ <inject bean="WSEndpointRegistryDeploymentAspect"/>
+ </set>
+ </property>
+ </bean>
+
+</deployment>
Property changes on: branches/ropalka/webservices/src/resources/jbossws-jboss50-container.jar/META-INF/jbossws-container-beans.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Modified: branches/ropalka/webservices/src/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-beans.xml
===================================================================
--- branches/ropalka/webservices/src/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-beans.xml 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/resources/jbossws-jboss50.deployer/META-INF/jbossws-deployer-beans.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1,347 +1,162 @@
<?xml version="1.0" encoding="UTF-8"?>
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
- <!-- 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">
- <property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
- </bean>
-
- <!-- The HTTPServer used by the JAXWS Endpoint API -->
- <bean name="WSHTTPServer" class="org.jboss.wsf.container.jboss50.DeploymentAspectHttpServer"/>
-
- <!-- *********************************************************************************************************************
- Web Service deployment
-
- There are two deployers registered with the JBoss Main Deployer.
- The order of which is important
-
- 1) EJBDeployer < WebServiceDeployerEJB < WarDeployer
- 2) WebServiceDeployerPreJSE < WarDeployer
- 3) WarDeployer < WebServiceDeployerPostJSE
-
- Each WebServiceDeployer has a number of DeployerHooks registered with it
-
- - WebServiceDeployerEJB
- - WSDeployerHook_JAXRPC_EJB21
- - WSDeployerHook_JAXWS_EJB3
-
- - WebServiceDeployerPreJSE
- - WSDeployerHook_JAXRPC_JSE
- - WSDeployerHook_JAXWS_JSE
-
- Conceptually, each of these hooks implements the following pattern:
-
- DeployerHook.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 DeploymentAspectManager injected into it.
- A web service DeploymentAspectManager maintains a list of DeploymentAspects, each of which
- handles a single aspect of web service deployment.
-
- Finally, each Endpoint is registered with the EndpointRegistry.
-
- ********************************************************************************************************************* -->
-
- <!--
- A web service deployer that hooks in after the EJB deployers
- -->
- <bean name="WebServiceDeployerEJB" class="org.jboss.wsf.container.jboss50.WebServiceDeployerEJB">
- <depends>EJB2xDeployer</depends>
- <depends>Ejb3Deployer</depends>
- </bean>
-
- <!--
- A web service deployer that hooks in before the WAR deployer
- -->
- <bean name="WebServiceDeployerPreJSE" class="org.jboss.wsf.container.jboss50.WebServiceDeployerPreJSE">
- <property name="relOrderWar"><inject bean="WarDeployer" property="relativeOrder"/></property>
- <depends>WebAppParsingDeployer</depends>
- </bean>
-
- <!--
- A web service deployer that hooks in after the WAR deployer
- -->
- <bean name="WebServiceDeployerPostJSE" class="org.jboss.wsf.container.jboss50.WebServiceDeployerPostJSE">
- <depends>WarDeployer</depends>
- </bean>
-
- <!--
- Register DeployerHooks with JBoss deployers
- -->
-
- <!-- Phase 1 of JSE JAX-RPC -->
- <bean name="WSDeployerHook_JAXRPC_PRE_JSE" class="org.jboss.wsf.container.jboss50.JAXRPCDeployerHookPreJSE">
- <property name="deploymentManagerName">WSDeploymentAspectManagerPreJSE</property>
- <install bean="WebServiceDeployerPreJSE" method="addDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="WebServiceDeployerPreJSE" method="removeDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <depends>WebServiceDeployerPreJSE</depends>
- </bean>
- <!-- Phase 2 of JSE JAX-RPC -->
- <bean name="WSDeployerHook_JAXRPC_POST_JSE" class="org.jboss.wsf.container.jboss50.JAXRPCDeployerHookPostJSE">
- <property name="deploymentManagerName">WSDeploymentAspectManagerPostJSE</property>
- <install bean="WebServiceDeployerPostJSE" method="addDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="WebServiceDeployerPostJSE" method="removeDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <depends>WebServiceDeployerPostJSE</depends>
- </bean>
-
- <bean name="WSDeployerHook_JAXRPC_EJB21" class="org.jboss.wsf.container.jboss50.JAXRPCDeployerHookEJB21">
- <property name="deploymentManagerName">WSDeploymentAspectManagerEJB</property>
- <install bean="WebServiceDeployerEJB" method="addDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="WebServiceDeployerEJB" method="removeDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <depends>WebServiceDeployerEJB</depends>
- </bean>
-
- <!-- Phase 1 of JSE JAX-WS-->
- <bean name="WSDeployerHook_JAXWS_PRE_JSE" class="org.jboss.wsf.container.jboss50.JAXWSDeployerHookPreJSE">
- <property name="deploymentManagerName">WSDeploymentAspectManagerPreJSE</property>
- <install bean="WebServiceDeployerPreJSE" method="addDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="WebServiceDeployerPreJSE" method="removeDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <depends>WebServiceDeployerPreJSE</depends>
- </bean>
- <!-- Phase 2 of JSE JAX-WS -->
- <bean name="WSDeployerHook_JAXWS_POST_JSE" class="org.jboss.wsf.container.jboss50.JAXWSDeployerHookPostJSE">
- <property name="deploymentManagerName">WSDeploymentAspectManagerPostJSE</property>
- <install bean="WebServiceDeployerPostJSE" method="addDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="WebServiceDeployerPostJSE" method="removeDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <depends>WebServiceDeployerPostJSE</depends>
- </bean>
-
- <bean name="WSDeployerHook_JAXWS_EJB3" class="org.jboss.wsf.container.jboss50.JAXWSDeployerHookEJB3">
- <property name="deploymentManagerName">WSDeploymentAspectManagerEJB</property>
- <install bean="WebServiceDeployerEJB" method="addDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </install>
- <uninstall bean="WebServiceDeployerEJB" method="removeDeployerHook">
- <parameter>
- <this/>
- </parameter>
- </uninstall>
- <depends>WebServiceDeployerEJB</depends>
- </bean>
-
- <!--
- Each DeploymentAspectManger maintains a list of DeploymentAspects
- -->
- <bean name="WSDeploymentAspectManagerPreJSE" class="org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl">
- <property name="name">WSDeploymentAspectManagerPreJSE</property>
- </bean>
- <bean name="WSDeploymentAspectManagerPostJSE" class="org.jboss.wsf.framework.deployment.DeploymentAspectManagerImpl">
- <property name="parent"><inject bean="WSDeploymentAspectManagerPreJSE"/></property>
- <property name="name">WSDeploymentAspectManagerPostJSE</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.jboss50.ContainerMetaDataDeploymentAspect">
- <property name="provides">ContainerMetaData, VFSRoot</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="WSDynamicEndpointDeploymentAspect" class="org.jboss.wsf.container.jboss50.DynamicEndpointDeploymentAspect">
- <property name="requires">WebMetaData, ContextProperties</property>
- <property name="webMetaDataModifier"><inject bean="WSWebMetaDataModifier"/></property>
- <property name="mainDeployer"><inject bean="MainDeployer"/></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="WSEndpointAPIDeploymentAspect" class="org.jboss.wsf.framework.deployment.EndpointAPIDeploymentAspect">
- <property name="provides">ContainerMetaData, RuntimeLoader, URLPattern, VFSRoot</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>
- </bean>
-
- <bean name="WSModifyWebMetaDataDeploymentAspect" class="org.jboss.wsf.container.jboss50.ModifyWebMetaDataDeploymentAspect">
- <property name="requires">ContextProperties, StackDescriptor</property>
- <property name="webMetaDataModifier"><inject bean="WSWebMetaDataModifier"/></property>
- </bean>
-
- <bean name="WSRuntimeLoaderDeploymentAspect" class="org.jboss.wsf.container.jboss50.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.jboss50.WebAppDeploymentAspect">
- <property name="requires">WebMetaData, ContextProperties</property>
- <property name="webMetaDataModifier"><inject bean="WSWebMetaDataModifier"/></property>
- </bean>
-
- <bean name="WSWebAppGeneratorDeploymentAspect" class="org.jboss.wsf.container.jboss50.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="WSSecurityHandlerEJB21" class="org.jboss.wsf.container.jboss50.SecurityHandlerEJB21"/>
- <bean name="WSSecurityHandlerEJB3" class="org.jboss.wsf.container.jboss50.SecurityHandlerEJB3"/>
- <bean name="WSWebMetaDataModifier" class="org.jboss.wsf.container.jboss50.WebMetaDataModifierImpl"/>
-
- <!-- Deployment aspect installers -->
-
- <!-- Phase 1 -->
- <bean name="WSDeploymentAspectInstallerPreJSE" class="org.jboss.wsf.framework.deployment.DeploymentAspectInstaller">
- <property name="manager"><inject bean="WSDeploymentAspectManagerPreJSE"/></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"/>
- </set>
- </property>
- </bean>
-
- <!-- Phase 2 -->
- <bean name="WSDeploymentAspectInstallerPostJSE" class="org.jboss.wsf.framework.deployment.DeploymentAspectInstaller">
- <property name="manager"><inject bean="WSDeploymentAspectManagerPostJSE"/></property>
- <property name="sortAspectsOnCreate">false</property>
- <property name="aspects">
- <set class="java.util.HashSet" elementClass="org.jboss.wsf.spi.deployment.DeploymentAspect">
- <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="WSURLPatternDeploymentAspect"/>
- <inject bean="WSRuntimeLoaderDeploymentAspect"/>
- <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="WSDynamicEndpointDeploymentAspect"/>
- <inject bean="WSEndpointAPIDeploymentAspect"/>
- <inject bean="WSEndpointAddressDeploymentAspect"/>
- <inject bean="WSEndpointHandlerDeploymentAspect"/>
- <inject bean="WSEndpointLifecycleDeploymentAspect"/>
- <inject bean="WSEndpointMetricsDeploymentAspect"/>
- <inject bean="WSEndpointNameDeploymentAspect"/>
- <inject bean="WSEndpointRegistryDeploymentAspect"/>
- <inject bean="WSWebAppGeneratorDeploymentAspect"/>
- </set>
- </property>
- </bean>
-
-</deployment>
\ No newline at end of file
+<deployment xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:jboss:bean-deployer bean-deployer_2_0.xsd"
+ xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!--
+ *********************************************************************************************************************
+ Web Service deployment
+
+ There are two deployers registered with the JBoss Main Deployer.
+ The order of which is important
+
+ 1) EJBDeployer < WebServiceDeployerEJB < WarDeployer
+ 2) WebServiceDeployerPreJSE < WarDeployer
+ 3) WarDeployer < WebServiceDeployerPostJSE
+
+ Each WebServiceDeployer has a number of DeployerHooks registered with it
+
+ - WebServiceDeployerEJB
+ - WSDeployerHook_JAXRPC_EJB21
+ - WSDeployerHook_JAXWS_EJB3
+
+ - WebServiceDeployerPreJSE
+ - WSDeployerHook_JAXRPC_JSE
+ - WSDeployerHook_JAXWS_JSE
+
+ Conceptually, each of these hooks implements the following pattern:
+
+ DeployerHook.deploy(unit)
+ if(isWebServiceDeployment)
+ Deployment dep = createDeployment(unit)
+ DeploymentAspectManager.deploy(dep)
+
+ DeployerHook.undeploy(unit)
+ Deployment dep = getDeployment(unit)
+ WSFRuntime.start(dep)
+
+ Each deployer hook has a web service WSFRuntime injected into it.
+
+ ********************************************************************************************************************* -->
+
+ <!--
+ A web service deployer that hooks in after the EJB deployers
+ -->
+ <bean name="WebServiceDeployerEJB" class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerEJB">
+ <depends>EJB2xDeployer</depends>
+ <depends>Ejb3Deployer</depends>
+ </bean>
+
+ <!--
+ A web service deployer that hooks in before the WAR deployer
+ -->
+ <bean name="WebServiceDeployerPreJSE" class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPreJSE">
+ <property name="relOrderWar"><inject bean="WarDeployer" property="relativeOrder"/></property>
+ <depends>WebAppParsingDeployer</depends>
+ </bean>
+
+ <!--
+ A web service deployer that hooks in after the WAR deployer
+ -->
+ <bean name="WebServiceDeployerPostJSE" class="org.jboss.wsf.container.jboss50.deployer.WebServiceDeployerPostJSE">
+ <depends>WarDeployer</depends>
+ </bean>
+
+ <!--
+ Register DeployerHooks with JBoss deployers
+ -->
+
+ <!-- Phase 1 of JSE JAX-RPC -->
+ <bean name="WSDeployerHook_JAXRPC_PRE_JSE" class="org.jboss.wsf.container.jboss50.deployer.JAXRPCDeployerHookPreJSE">
+ <property name="runtimeName">WebserviceJSERuntime</property>
+ <install bean="WebServiceDeployerPreJSE" method="addDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </install>
+ <uninstall bean="WebServiceDeployerPreJSE" method="removeDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </uninstall>
+ <depends>WebServiceDeployerPreJSE</depends>
+ </bean>
+ <!-- Phase 2 of JSE JAX-RPC -->
+ <bean name="WSDeployerHook_JAXRPC_POST_JSE" class="org.jboss.wsf.container.jboss50.deployer.JAXRPCDeployerHookPostJSE">
+ <property name="runtimeName">WebserviceJSERuntime</property>
+ <install bean="WebServiceDeployerPostJSE" method="addDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </install>
+ <uninstall bean="WebServiceDeployerPostJSE" method="removeDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </uninstall>
+ <depends>WebServiceDeployerPostJSE</depends>
+ </bean>
+
+ <bean name="WSDeployerHook_JAXRPC_EJB21" class="org.jboss.wsf.container.jboss50.deployer.JAXRPCDeployerHookEJB21">
+ <property name="runtimeName">WebserviceEJBRuntime</property>
+ <install bean="WebServiceDeployerEJB" method="addDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </install>
+ <uninstall bean="WebServiceDeployerEJB" method="removeDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </uninstall>
+ <depends>WebServiceDeployerEJB</depends>
+ </bean>
+
+ <!-- Phase 1 of JSE JAX-WS-->
+ <bean name="WSDeployerHook_JAXWS_PRE_JSE" class="org.jboss.wsf.container.jboss50.deployer.JAXWSDeployerHookPreJSE">
+ <property name="runtimeName">WebserviceJSERuntime</property>
+ <install bean="WebServiceDeployerPreJSE" method="addDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </install>
+ <uninstall bean="WebServiceDeployerPreJSE" method="removeDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </uninstall>
+ <depends>WebServiceDeployerPreJSE</depends>
+ </bean>
+ <!-- Phase 2 of JSE JAX-WS -->
+ <bean name="WSDeployerHook_JAXWS_POST_JSE" class="org.jboss.wsf.container.jboss50.deployer.JAXWSDeployerHookPostJSE">
+ <property name="runtimeName">WebserviceJSERuntime</property>
+ <install bean="WebServiceDeployerPostJSE" method="addDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </install>
+ <uninstall bean="WebServiceDeployerPostJSE" method="removeDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </uninstall>
+ <depends>WebServiceDeployerPostJSE</depends>
+ </bean>
+
+ <bean name="WSDeployerHook_JAXWS_EJB3" class="org.jboss.wsf.container.jboss50.deployer.JAXWSDeployerHookEJB3">
+ <property name="runtimeName">WebserviceEJBRuntime</property>
+ <install bean="WebServiceDeployerEJB" method="addDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </install>
+ <uninstall bean="WebServiceDeployerEJB" method="removeDeployerHook">
+ <parameter>
+ <this/>
+ </parameter>
+ </uninstall>
+ <depends>WebServiceDeployerEJB</depends>
+ </bean>
+
+</deployment>
Added: branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.WSFRuntimeLocator
===================================================================
--- branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.WSFRuntimeLocator (rev 0)
+++ branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.WSFRuntimeLocator 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1 @@
+org.jboss.wsf.framework.DefaultWSFRuntimeLocator
\ No newline at end of file
Modified: branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory
===================================================================
--- branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.InvocationHandlerFactory 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1 +1 @@
-org.jboss.wsf.container.jboss50.InvocationHandlerFactoryImpl
\ No newline at end of file
+org.jboss.wsf.container.jboss50.invocation.InvocationHandlerFactoryImpl
\ No newline at end of file
Modified: branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory
===================================================================
--- branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.SecurityAdaptorFactory 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1 +1 @@
-org.jboss.wsf.container.jboss50.SecurityAdapterFactoryImpl
\ No newline at end of file
+org.jboss.wsf.container.jboss50.invocation.SecurityAdapterFactoryImpl
\ No newline at end of file
Modified: branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory
===================================================================
--- branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory 2008-06-13 16:54:03 UTC (rev 74543)
+++ branches/ropalka/webservices/src/resources/jbossws-jboss50.jar/META-INF/services/org.jboss.wsf.spi.invocation.WebServiceContextFactory 2008-06-13 16:56:37 UTC (rev 74544)
@@ -1 +1 @@
-org.jboss.wsf.container.jboss50.WebServiceContextFactoryImpl
\ No newline at end of file
+org.jboss.wsf.container.jboss50.invocation.WebServiceContextFactoryImpl
\ No newline at end of file
Added: branches/ropalka/webservices/src/scripts/assembly-container.xml
===================================================================
--- branches/ropalka/webservices/src/scripts/assembly-container.xml (rev 0)
+++ branches/ropalka/webservices/src/scripts/assembly-container.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,14 @@
+<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.1.0-SNAPSHOT.xsd">
+ <id>container</id>
+ <formats>
+ <format>jar</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <fileSets>
+ <fileSet>
+ <directory>src/main/resources/jbossws-jboss50-container.jar</directory>
+ <outputDirectory>/</outputDirectory>
+ </fileSet>
+ </fileSets>
+</assembly>
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/scripts/assembly-container.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
Added: branches/ropalka/webservices/src/scripts/assembly-resources.xml
===================================================================
--- branches/ropalka/webservices/src/scripts/assembly-resources.xml (rev 0)
+++ branches/ropalka/webservices/src/scripts/assembly-resources.xml 2008-06-13 16:56:37 UTC (rev 74544)
@@ -0,0 +1,18 @@
+<assembly xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/assembly-1.1.0-SNAPSHOT.xsd">
+ <id>resources</id>
+ <formats>
+ <format>zip</format>
+ </formats>
+ <includeBaseDirectory>false</includeBaseDirectory>
+ <fileSets>
+ <fileSet>
+ <directory>src/main/resources</directory>
+ <outputDirectory>/</outputDirectory>
+ <includes>
+ <include>jbossws-jboss50.deployer/**</include>
+ <include>jbossws-jboss50.jar/**</include>
+ </includes>
+ </fileSet>
+ </fileSets>
+</assembly>
\ No newline at end of file
Property changes on: branches/ropalka/webservices/src/scripts/assembly-resources.xml
___________________________________________________________________
Name: svn:keywords
+ Id Revision
Name: svn:eol-style
+ LF
More information about the jboss-cvs-commits
mailing list