[jboss-cvs] JBossAS SVN: r109340 - in trunk: component-matrix and 28 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Mon Nov 15 10:58:03 EST 2010
Author: jaikiran
Date: 2010-11-15 10:58:01 -0500 (Mon, 15 Nov 2010)
New Revision: 109340
Added:
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java
trunk/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml
trunk/server/src/etc/deployers/switchboard-jboss-beans.xml
trunk/server/src/main/java/org/jboss/as/switchboard/
trunk/server/src/main/java/org/jboss/as/switchboard/resource/
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java
trunk/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java
trunk/testsuite/src/resources/refs/resources/hornetq-jms.xml
trunk/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml
trunk/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml
trunk/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml
trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java
trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java
Removed:
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/
trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java
trunk/server/src/main/java/org/jboss/as/switchboard/resource/
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java
trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java
Modified:
trunk/build/build.xml
trunk/component-matrix/pom.xml
trunk/depchain/pom.xml
trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
trunk/server/pom.xml
trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml
trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
trunk/testsuite/build.xml
trunk/testsuite/imports/sections/jsf.xml
trunk/testsuite/imports/sections/web.xml
trunk/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java
trunk/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java
trunk/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java
trunk/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java
trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java
trunk/webservices/pom.xml
trunk/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
Log:
JBAS-8548 Merge switchboard-integration branch into AS trunk
Modified: trunk/build/build.xml
===================================================================
--- trunk/build/build.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/build/build.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -250,6 +250,11 @@
<copy tofile="${install.default}/deployers/clustering-deployer-jboss-beans.xml"
file="${project.root}/cluster/target/etc/clustering-deployer-jboss-beans-non-clustered.xml"/>
+ <!-- Use switchboard-clustered-jboss-beans.xml in all -->
+ <delete file="${install.all}/deployers/switchboard-jboss-beans.xml"/>
+ <!-- Use switchboard-jboss-beans.xml in default -->
+ <delete file="${install.default}/deployers/switchboard-clustered-jboss-beans.xml"/>
+
<!-- Build server/minimal manually -->
<mkdir dir="${install.minimal.deploy}"/>
<mkdir dir="${install.minimal.deployers}"/>
@@ -315,6 +320,7 @@
<include name="jbossweb.deployer/**"/>
<include name="metadata-deployer-jboss-beans.xml"/>
<include name="security-deployer-jboss-beans.xml"/>
+ <include name="switchboard-jboss-beans.xml"/>
<include name="jboss-threads.deployer/**"/>
<include name="jboss-logging.deployer/**"/>
<exclude name="jbossweb.deployer/META-INF/war-deployers-jboss-beans.xml"/>
@@ -933,7 +939,6 @@
</fileset>
</copy>
-
<!-- Copy the "all" configuration files -->
<mkdir dir="${install.server}/all/conf"/>
<copy todir="${install.server}/all/conf" filtering="no">
@@ -952,7 +957,8 @@
</fileset>
</copy>
</target>
-
+
+
<!-- ========= -->
<!-- Connector -->
<!-- ========= -->
@@ -2119,6 +2125,15 @@
<fileset refid="org.jboss.shrinkwrap:shrinkwrap-impl-base:jar" />
<fileset refid="org.jboss.shrinkwrap:shrinkwrap-spi:jar" />
<fileset refid="org.jboss.shrinkwrap:shrinkwrap-extension-vfs3:jar" />
+
+ <!-- SwitchBoard -->
+ <fileset refid="org.jboss.switchboard:jboss-switchboard-spi:jar"/>
+ <fileset refid="org.jboss.switchboard:jboss-switchboard-impl:jar"/>
+ <fileset refid="org.jboss.switchboard:jboss-switchboard-mc-spi:jar"/>
+ <fileset refid="org.jboss.switchboard:jboss-switchboard-mc-impl:jar"/>
+ <fileset refid="org.jboss.switchboard:jboss-switchboard-javaee:jar"/>
+ <fileset refid="org.jboss.switchboard:jboss-switchboard-jbmeta-javaee:jar"/>
+
<fileset refid="org.hibernate:hibernate-core:jar"/>
<fileset refid="org.hibernate:hibernate-commons-annotations:jar"/>
<fileset refid="org.hibernate:hibernate-entitymanager:jar"/>
@@ -2131,7 +2146,10 @@
<fileset refid="org.jboss.injection:jboss-resolver-impl:jar"/>
<fileset refid="org.jboss.injection:jboss-switchboard-metadata:jar"/>
<fileset refid="org.jboss.injection:jboss-injection-switchboard-deployer:jar"/>
-
+ <fileset refid="org.jboss.injection:jboss-injection-injector:jar"/>
+ <fileset refid="org.jboss.injection:jboss-injection-mc-impl:jar"/>
+ <fileset refid="org.jboss.injection:jboss-injection-manager:jar"/>
+
<fileset refid="org.jboss.jpa:jboss-jpa-deployers:jar"/>
<fileset refid="org.jboss.jpa:jboss-jpa-vfs3:jar"/>
<fileset refid="org.jboss.jpa:jboss-jpa-impl:jar"/>
@@ -2595,6 +2613,15 @@
<fileset refid="org.jboss.jpa:jboss-jpa-mcint:jar"/>
<mapper refid="remove-versions"/>
</copy>
+
+ <!-- Copy jboss-injection jboss-beans.xml to deployers folder -->
+ <unjar src="${org.jboss.injection:jboss-injection-mc-impl:jar}" dest="${install.all.deployers}">
+ <patternset>
+ <include name="META-INF/jboss-injection-jboss-beans.xml"/>
+ </patternset>
+ <mapper type="flatten"/>
+ </unjar>
+
<!-- End varia stuff -->
</target>
Modified: trunk/component-matrix/pom.xml
===================================================================
--- trunk/component-matrix/pom.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/component-matrix/pom.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -49,11 +49,12 @@
<version.javax.faces>2.0.3-b05</version.javax.faces>
<version.javax.validation>1.0.0.GA</version.javax.validation>
<version.jaxws-httpserver-httpspi>1.0.0.GA</version.jaxws-httpserver-httpspi>
+ <version.jboss.injection>1.0.0-alpha-2</version.jboss.injection>
<version.jboss.jaxr>2.0.1</version.jboss.jaxr>
<version.jboss.jbossts>4.13.1.Final</version.jboss.jbossts>
<version.jboss.jbossws-native>3.4.0.CR3</version.jboss.jbossws-native>
<version.jboss.jbossws-cxf>3.4.0.CR3</version.jboss.jbossws-cxf>
- <version.jboss.jbossws-common>1.4.0.CR3</version.jboss.jbossws-common>
+ <version.jboss.jbossws-common>1.4.0.CR3.SP1</version.jboss.jbossws-common>
<version.jboss.jbossws-framework>3.4.0.CR3</version.jboss.jbossws-framework>
<version.jboss.jbossws-spi>1.4.0.CR3</version.jboss.jbossws-spi>
<version.jboss.jms-integration-tests>1.0.1.GA</version.jboss.jms-integration-tests>
@@ -132,6 +133,7 @@
<version.org.jboss.shrinkwrap>1.0.0-alpha-11</version.org.jboss.shrinkwrap>
<version.org.jboss.slf4j>1.0.2.GA</version.org.jboss.slf4j>
<version.org.jboss.stdio>1.0.0.CR3</version.org.jboss.stdio>
+ <version.org.jboss.switchboard.depchain>1.0.0-alpha-8</version.org.jboss.switchboard.depchain>
<version.org.jboss.threads>2.0.0.CR7</version.org.jboss.threads>
<version.org.jboss.threads-metadata>2.0.0.CR4</version.org.jboss.threads-metadata>
<version.org.jboss.vfs>3.0.0.CR5</version.org.jboss.vfs>
@@ -1330,6 +1332,24 @@
</exclusions>
</dependency>
+ <dependency>
+ <groupId>org.jboss.switchboard.depchain</groupId>
+ <artifactId>jboss-switchboard-depchain-as6</artifactId>
+ <version>${version.org.jboss.switchboard.depchain}</version>
+ <type>pom</type>
+ <scope>import</scope>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ </exclusion>
+ </exclusions>
+ </dependency>
+
<dependency>
<groupId>org.jboss.jbossts</groupId>
<artifactId>jbossjts</artifactId>
@@ -2060,7 +2080,25 @@
<artifactId>jboss-switchboard-metadata</artifactId>
<version>${version.org.jboss.injection}</version>
</dependency>
+
+ <dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-manager</artifactId>
+ <version>${version.jboss.injection}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-injector</artifactId>
+ <version>${version.jboss.injection}</version>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-mc-impl</artifactId>
+ <version>${version.jboss.injection}</version>
+ </dependency>
+
<dependency>
<groupId>org.jboss</groupId>
<artifactId>jboss-mdr</artifactId>
Modified: trunk/depchain/pom.xml
===================================================================
--- trunk/depchain/pom.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/depchain/pom.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -853,6 +853,19 @@
</exclusions>
</dependency>
<dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-injector</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-mc-impl</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-manager</artifactId>
+ </dependency>
+
+ <dependency>
<groupId>org.jboss.spec.javax.interceptor</groupId>
<artifactId>jboss-interceptors-api_1.1_spec</artifactId>
</dependency>
@@ -1039,6 +1052,23 @@
<artifactId>jboss-stdio</artifactId>
</dependency>
<dependency>
+ <groupId>org.jboss.switchboard.depchain</groupId>
+ <artifactId>jboss-switchboard-depchain-as6</artifactId>
+ <type>pom</type>
+ <version>${version.org.jboss.switchboard.depchain}</version>
+ <exclusions>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-spi</artifactId>
+ </exclusion>
+ <exclusion>
+ <groupId>org.jboss.logging</groupId>
+ <artifactId>jboss-logging-log4j</artifactId>
+ </exclusion>
+ </exclusions>
+
+ </dependency>
+ <dependency>
<groupId>org.jboss.threads</groupId>
<artifactId>jboss-threads</artifactId>
</dependency>
Copied: trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard (from rev 109338, branches/switchboard-integration/ejb3/src/main/java/org/jboss/as/ejb3/switchboard)
Copied: trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource (from rev 109338, branches/switchboard-integration/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource)
Copied: trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider (from rev 109338, branches/switchboard-integration/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider)
Deleted: trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java
===================================================================
--- branches/switchboard-integration/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java 2010-11-15 13:33:02 UTC (rev 109338)
+++ trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -1,111 +0,0 @@
-/**
- *
- */
-package org.jboss.as.ejb3.switchboard.resource.provider;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.resolvers.MessageDestinationReferenceResolver;
-import org.jboss.logging.Logger;
-import org.jboss.switchboard.impl.resource.LinkRefResource;
-import org.jboss.switchboard.javaee.jboss.environment.JBossMessageDestinationRefType;
-import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
-import org.jboss.switchboard.spi.Resource;
-
-/**
- * A {@link MCBasedResourceProvider} for processing message-destination-ref
- * references
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
-public class MessageDestinationReferenceResourceProvider implements MCBasedResourceProvider<JBossMessageDestinationRefType>
-{
-
- /**
- * Logger
- */
- private static Logger logger = Logger.getLogger(MessageDestinationReferenceResourceProvider.class);
-
- /**
- * A {@link MessageDestinationReferenceResolver} will be used to resolve a jndi-name out of
- * the message-destination link, used in message-destination-ref
- */
- private MessageDestinationReferenceResolver messageDestinationResolver;
-
- /**
- * {@inheritDoc}
- */
- public Class<JBossMessageDestinationRefType> getEnvironmentEntryType()
- {
- return JBossMessageDestinationRefType.class;
- }
-
- /**
- * Processes a message-destination-ref and returns a {@link Resource} corresponding to that
- * reference.
- * If a {@link Resource} cannot be created out of the message-destination-ref, then this
- * method throws a {@link RuntimeException}
- */
- public Resource provide(DeploymentUnit unit, JBossMessageDestinationRefType messageDestRef)
- {
- // first check lookup name
- String lookupName = messageDestRef.getLookupName();
- if (lookupName != null && !lookupName.trim().isEmpty())
- {
- return new LinkRefResource(lookupName);
- }
-
- // now check mapped name
- String mappedName = messageDestRef.getMappedName();
- if (mappedName != null && !mappedName.trim().isEmpty())
- {
- return new LinkRefResource(mappedName);
- }
-
- // now check (JBoss specific) jndi name!
- String jndiName = messageDestRef.getJNDIName();
- if (jndiName != null && !jndiName.trim().isEmpty())
- {
- return new LinkRefResource(jndiName);
- }
-
- // Now check if a message-destination link is specified.
- // The "link" itself is a logical name to the destination, so we'll
- // use a resolver to resolve a jndi name out of it.
- // Note that a message-destination can *only* be specified in a ejb-jar deployment
- // (see Java EE6 spec, EE.5.9.2), so the message-destination link resolver
- // needs to be provided by some JBoss EJB3 container component
- String messageDestLink = messageDestRef.getMessageDestinationLink();
- if (messageDestLink != null && !messageDestLink.trim().isEmpty())
- {
- if (this.messageDestinationResolver == null)
- {
- logger.warn("Cannot resolve message-destination link: " + messageDestLink
- + " for message-destination-ref: " + messageDestRef.getName() + " due to absence of a "
- + MessageDestinationReferenceResolver.class.getName());
- }
- else
- {
- String resolvedJNDIName = this.messageDestinationResolver.resolveMessageDestinationJndiName(unit, messageDestLink);
- logger.debug("Resolved jndi-name: " + resolvedJNDIName + " for message-destination link: "
- + messageDestLink + " in message-destination-ref: " + messageDestRef.getName());
- if (resolvedJNDIName != null && !resolvedJNDIName.trim().isEmpty())
- {
- return new LinkRefResource(resolvedJNDIName);
- }
-
- }
- }
- throw new RuntimeException("Cannot provide a resource for message-destination-ref: " + messageDestRef.getName() + " in unit: " + unit);
- }
-
- /**
- * Sets the {@link MessageDestinationReferenceResolver}, which will be used to resolve the jndi-name
- * out of a message-destination link, used in the message-destination-ref
- * @param resolver
- */
- public void setMessageDestinationLinkResolver(MessageDestinationReferenceResolver resolver)
- {
- this.messageDestinationResolver = resolver;
- }
-}
Copied: trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java (from rev 109338, branches/switchboard-integration/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java)
===================================================================
--- trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java (rev 0)
+++ trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,111 @@
+/**
+ *
+ */
+package org.jboss.as.ejb3.switchboard.resource.provider;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.resolvers.MessageDestinationReferenceResolver;
+import org.jboss.logging.Logger;
+import org.jboss.switchboard.impl.resource.LinkRefResource;
+import org.jboss.switchboard.javaee.jboss.environment.JBossMessageDestinationRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+
+/**
+ * A {@link MCBasedResourceProvider} for processing message-destination-ref
+ * references
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class MessageDestinationReferenceResourceProvider implements MCBasedResourceProvider<JBossMessageDestinationRefType>
+{
+
+ /**
+ * Logger
+ */
+ private static Logger logger = Logger.getLogger(MessageDestinationReferenceResourceProvider.class);
+
+ /**
+ * A {@link MessageDestinationReferenceResolver} will be used to resolve a jndi-name out of
+ * the message-destination link, used in message-destination-ref
+ */
+ private MessageDestinationReferenceResolver messageDestinationResolver;
+
+ /**
+ * {@inheritDoc}
+ */
+ public Class<JBossMessageDestinationRefType> getEnvironmentEntryType()
+ {
+ return JBossMessageDestinationRefType.class;
+ }
+
+ /**
+ * Processes a message-destination-ref and returns a {@link Resource} corresponding to that
+ * reference.
+ * If a {@link Resource} cannot be created out of the message-destination-ref, then this
+ * method throws a {@link RuntimeException}
+ */
+ public Resource provide(DeploymentUnit unit, JBossMessageDestinationRefType messageDestRef)
+ {
+ // first check lookup name
+ String lookupName = messageDestRef.getLookupName();
+ if (lookupName != null && !lookupName.trim().isEmpty())
+ {
+ return new LinkRefResource(lookupName);
+ }
+
+ // now check mapped name
+ String mappedName = messageDestRef.getMappedName();
+ if (mappedName != null && !mappedName.trim().isEmpty())
+ {
+ return new LinkRefResource(mappedName);
+ }
+
+ // now check (JBoss specific) jndi name!
+ String jndiName = messageDestRef.getJNDIName();
+ if (jndiName != null && !jndiName.trim().isEmpty())
+ {
+ return new LinkRefResource(jndiName);
+ }
+
+ // Now check if a message-destination link is specified.
+ // The "link" itself is a logical name to the destination, so we'll
+ // use a resolver to resolve a jndi name out of it.
+ // Note that a message-destination can *only* be specified in a ejb-jar deployment
+ // (see Java EE6 spec, EE.5.9.2), so the message-destination link resolver
+ // needs to be provided by some JBoss EJB3 container component
+ String messageDestLink = messageDestRef.getMessageDestinationLink();
+ if (messageDestLink != null && !messageDestLink.trim().isEmpty())
+ {
+ if (this.messageDestinationResolver == null)
+ {
+ logger.warn("Cannot resolve message-destination link: " + messageDestLink
+ + " for message-destination-ref: " + messageDestRef.getName() + " due to absence of a "
+ + MessageDestinationReferenceResolver.class.getName());
+ }
+ else
+ {
+ String resolvedJNDIName = this.messageDestinationResolver.resolveMessageDestinationJndiName(unit, messageDestLink);
+ logger.debug("Resolved jndi-name: " + resolvedJNDIName + " for message-destination link: "
+ + messageDestLink + " in message-destination-ref: " + messageDestRef.getName());
+ if (resolvedJNDIName != null && !resolvedJNDIName.trim().isEmpty())
+ {
+ return new LinkRefResource(resolvedJNDIName);
+ }
+
+ }
+ }
+ throw new RuntimeException("Cannot provide a resource for message-destination-ref: " + messageDestRef.getName() + " in unit: " + unit);
+ }
+
+ /**
+ * Sets the {@link MessageDestinationReferenceResolver}, which will be used to resolve the jndi-name
+ * out of a message-destination link, used in the message-destination-ref
+ * @param resolver
+ */
+ public void setMessageDestinationLinkResolver(MessageDestinationReferenceResolver resolver)
+ {
+ this.messageDestinationResolver = resolver;
+ }
+}
Modified: trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
===================================================================
--- trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -312,6 +312,11 @@
<!-- Responsible for creating the piece used to create EJB3 Bean Instances -->
<bean name="org.jboss.ejb3.BeanInstantiator" class="org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator" />
+ <!-- ResourceProvider for message-destination-ref (EE.5.9 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.MessageDestinationRefResourceProvider" class="org.jboss.as.ejb3.switchboard.resource.provider.MessageDestinationReferenceResourceProvider">
+ <property name="messageDestinationLinkResolver"><inject/></property>
+ </bean>
+
<!-- Registers the default (EJB31) BeanInstantiatorDeployer -->
<!--<bean name="org.jboss.ejb3.BeanInstantiatorDeployer" class="org.jboss.ejb3.instantiator.deployer.SingletonBeanInstantiatorDeployer">-->
<!--<constructor>-->
Modified: trunk/server/pom.xml
===================================================================
--- trunk/server/pom.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/server/pom.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -318,6 +318,10 @@
<groupId>org.jboss.injection</groupId>
<artifactId>jboss-switchboard-metadata</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.jboss.injection</groupId>
+ <artifactId>jboss-injection-mc-impl</artifactId>
+ </dependency>
<dependency>
<groupId>org.picketbox</groupId>
@@ -414,8 +418,28 @@
<artifactId>jboss-annotations-api_1.1_spec</artifactId>
</dependency>
+ <dependency>
+ <groupId>org.jboss.switchboard</groupId>
+ <artifactId>jboss-switchboard-spi</artifactId>
+ </dependency>
<dependency>
+ <groupId>org.jboss.switchboard</groupId>
+ <artifactId>jboss-switchboard-mc-spi</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.switchboard</groupId>
+ <artifactId>jboss-switchboard-javaee</artifactId>
+ </dependency>
+
+ <dependency>
+ <groupId>org.jboss.switchboard</groupId>
+ <artifactId>jboss-switchboard-impl</artifactId>
+ </dependency>
+
+
+ <dependency>
<groupId>junit</groupId>
<artifactId>junit</artifactId>
<scope>test</scope>
Modified: trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml
===================================================================
--- trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -20,7 +20,9 @@
</bean>
<bean name="EjbClassLoaderDeployer" class="org.jboss.deployment.EjbClassLoaderDeployer"/>
-
+
+ <bean name="Ejb2xComponentDeployer" class="org.jboss.deployment.Ejb2xComponentDeployer"/>
+
<bean name="EJB2xDeployer" class="org.jboss.ejb.deployers.EjbDeployer">
<!-- The EJBDeployer needs the JTA transaction manager service -->
<property name="transactionManagerServiceName">jboss:service=TransactionManager</property>
Copied: trunk/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml (from rev 109338, branches/switchboard-integration/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml)
===================================================================
--- trunk/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml (rev 0)
+++ trunk/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- Deployers -->
+ <bean name="org.jboss.switchboard.WebEnvironmentSwitchBoardDeployer" class="org.jboss.switchboard.mc.deployer.WebEnvironmentSwitchBoardDeployer">
+ <constructor><parameter class="org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer"><inject/></parameter></constructor>
+ </bean>
+
+ <bean name="org.jboss.switchboard.EJBEnvironmentSwitchBoardDeployer" class="org.jboss.switchboard.mc.deployer.EJBEnvironmentSwitchBoardDeployer">
+ <constructor><parameter class="org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer"><inject/></parameter></constructor>
+ </bean>
+
+ <!-- Resource providers -->
+
+ <!-- processes env-entry resources (EE.5.4 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.EnvEntryResourceProvider" class="org.jboss.switchboard.mc.resource.provider.EnvEntryResourceProvider"/>
+
+ <!-- processes resource-env-ref resources (EE.5.8 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.ResourceEnvRefResourceProvider" class="org.jboss.switchboard.mc.resource.provider.ResourceEnvRefProvider">
+ <property name="typedResourceEnvRefResourceProviders">
+ <map keyClass="java.lang.String" valueClass="org.jboss.switchboard.mc.spi.MCBasedResourceProvider">
+ <entry>
+ <key>javax.xml.ws.WebServiceContext</key>
+ <value><inject bean="org.jboss.switchboard.WebServiceContextResourceProvider"/></value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <!-- processes resource-ref resources (EE.5.7 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.ResourceRefResourceProvider" class="org.jboss.switchboard.mc.resource.provider.ResourceRefResourceProviderDelegator">
+ <property name="typedResourceRefResourceProviders">
+ <map keyClass="java.lang.String" valueClass="org.jboss.switchboard.mc.spi.MCBasedResourceProvider">
+ <entry>
+ <key>java.net.URL</key>
+ <value><bean name="org.jboss.switchboard.URLResourceProvider" class="org.jboss.switchboard.mc.resource.provider.URLResourceProvider"/></value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <!-- ResourceProvider for java:comp/ORB (EE.5.12 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.ORBRefResourceProvider" class="org.jboss.as.switchboard.resource.provider.ORBRefResourceProvider"/>
+
+ <!-- ResourceProvider for java:comp/UserTransaction (EE.5.10 of Java EE 6 spec) -->
+ <bean name="org.jboss.switchboard.UserTransactionRefResourceProvider" class="org.jboss.as.switchboard.resource.provider.UserTransactionRefResourceProvider"/>
+
+ <!-- ResourceProvider for java:comp/TransactionSynchronizationRegistry (EE.5.11 of Java EE 6 spec) -->
+ <bean name="org.jboss.switchboard.TransactionSyncRegistryRefResourceProvider" class="org.jboss.as.switchboard.resource.provider.TransactionSynchronizationRefResourceProvider"/>
+
+
+ <!-- Resource provider registry -->
+ <bean name="org.jboss.switchboard.ResourceProviderRegistry" class="org.jboss.switchboard.mc.resource.provider.ResourceProviderRegistry">
+ <property name="resourceProviders">
+ <list>
+ <inject bean="org.jboss.switchboard.EnvEntryResourceProvider"/>
+ <inject bean="org.jboss.switchboard.ResourceEnvRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.ResourceRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.MessageDestinationRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.WebServiceRefResourceProvider"/>
+ <!--
+ <inject bean="org.jboss.switchboard.EJBLocalRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.EJBRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.AnnotatedEJBRefResourceProvider"/>
+ -->
+ <!-- Disabled till container themselves stop binding into java:comp
+ <inject bean="org.jboss.switchboard.ORBRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.UserTransactionRefResourceProvider"/>
+ -->
+ <!-- Disabled till https://jira.jboss.org/browse/JBAS-8465 is fixed
+ <inject bean="org.jboss.switchboard.TransactionSyncRegistryRefResourceProvider"/>
+ -->
+ </list>
+ </property>
+
+ </bean>
+
+ <!-- JNDI environment processor -->
+ <bean name="org.jboss.switchboard.JndiEnvironmentProcessor" class="org.jboss.switchboard.mc.JndiEnvironmentProcessor">
+ <constructor><parameter><inject bean="org.jboss.switchboard.ResourceProviderRegistry"/></parameter></constructor>
+ </bean>
+
+
+</deployment>
\ No newline at end of file
Copied: trunk/server/src/etc/deployers/switchboard-jboss-beans.xml (from rev 109338, branches/switchboard-integration/server/src/etc/deployers/switchboard-jboss-beans.xml)
===================================================================
--- trunk/server/src/etc/deployers/switchboard-jboss-beans.xml (rev 0)
+++ trunk/server/src/etc/deployers/switchboard-jboss-beans.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,79 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+ <!-- Deployers -->
+ <bean name="org.jboss.switchboard.WebEnvironmentSwitchBoardDeployer" class="org.jboss.switchboard.mc.deployer.WebEnvironmentSwitchBoardDeployer">
+ <constructor><parameter class="org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer"><inject/></parameter></constructor>
+ </bean>
+
+ <bean name="org.jboss.switchboard.EJBEnvironmentSwitchBoardDeployer" class="org.jboss.switchboard.mc.deployer.EJBEnvironmentSwitchBoardDeployer">
+ <constructor><parameter class="org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer"><inject/></parameter></constructor>
+ </bean>
+
+ <!-- Resource providers -->
+
+ <!-- processes env-entry resources (EE.5.4 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.EnvEntryResourceProvider" class="org.jboss.switchboard.mc.resource.provider.EnvEntryResourceProvider"/>
+
+ <!-- processes resource-env-ref resources (EE.5.8 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.ResourceEnvRefResourceProvider" class="org.jboss.switchboard.mc.resource.provider.ResourceEnvRefProvider">
+ <property name="typedResourceEnvRefResourceProviders">
+ <map keyClass="java.lang.String" valueClass="org.jboss.switchboard.mc.spi.MCBasedResourceProvider">
+ <entry>
+ <key>javax.xml.ws.WebServiceContext</key>
+ <value><inject bean="org.jboss.switchboard.WebServiceContextResourceProvider"/></value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <!-- processes resource-ref resources (EE.5.7 of Java EE6 spec) -->
+ <bean name="org.jboss.switchboard.ResourceRefResourceProvider" class="org.jboss.switchboard.mc.resource.provider.ResourceRefResourceProviderDelegator">
+ <property name="typedResourceRefResourceProviders">
+ <map keyClass="java.lang.String" valueClass="org.jboss.switchboard.mc.spi.MCBasedResourceProvider">
+ <entry>
+ <key>java.net.URL</key>
+ <value><bean name="org.jboss.switchboard.URLResourceProvider" class="org.jboss.switchboard.mc.resource.provider.URLResourceProvider"/></value>
+ </entry>
+ </map>
+ </property>
+ </bean>
+
+ <!-- ResourceProvider for java:comp/UserTransaction (EE.5.10 of Java EE 6 spec) -->
+ <bean name="org.jboss.switchboard.UserTransactionRefResourceProvider" class="org.jboss.as.switchboard.resource.provider.UserTransactionRefResourceProvider"/>
+
+ <!-- ResourceProvider for java:comp/TransactionSynchronizationRegistry (EE.5.11 of Java EE 6 spec) -->
+ <bean name="org.jboss.switchboard.TransactionSyncRegistryRefResourceProvider" class="org.jboss.as.switchboard.resource.provider.TransactionSynchronizationRefResourceProvider"/>
+
+ <!-- Resource provider registry -->
+ <bean name="org.jboss.switchboard.ResourceProviderRegistry" class="org.jboss.switchboard.mc.resource.provider.ResourceProviderRegistry">
+ <property name="resourceProviders">
+ <list>
+ <inject bean="org.jboss.switchboard.EnvEntryResourceProvider"/>
+ <inject bean="org.jboss.switchboard.ResourceEnvRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.ResourceRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.MessageDestinationRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.WebServiceRefResourceProvider"/>
+ <!--
+ <inject bean="org.jboss.switchboard.EJBLocalRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.EJBRefResourceProvider"/>
+ <inject bean="org.jboss.switchboard.AnnotatedEJBRefResourceProvider"/>
+ -->
+ <!-- Disabled till container themselves stop binding into java:comp
+ <inject bean="org.jboss.switchboard.UserTransactionRefResourceProvider"/>
+ -->
+ <!-- Disabled till https://jira.jboss.org/browse/JBAS-8465 is fixed
+ <inject bean="org.jboss.switchboard.TransactionSyncRegistryRefResourceProvider"/>
+ -->
+ </list>
+ </property>
+
+ </bean>
+
+ <!-- JNDI environment processor -->
+ <bean name="org.jboss.switchboard.JndiEnvironmentProcessor" class="org.jboss.switchboard.mc.JndiEnvironmentProcessor">
+ <constructor><parameter><inject bean="org.jboss.switchboard.ResourceProviderRegistry"/></parameter></constructor>
+ </bean>
+
+
+</deployment>
\ No newline at end of file
Copied: trunk/server/src/main/java/org/jboss/as/switchboard (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard)
Copied: trunk/server/src/main/java/org/jboss/as/switchboard/resource (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource)
Copied: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider)
Deleted: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java
===================================================================
--- branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java 2010-11-15 13:33:02 UTC (rev 109338)
+++ trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -1,31 +0,0 @@
-/**
- *
- */
-package org.jboss.as.switchboard.resource.provider;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.switchboard.impl.resource.LinkRefResource;
-import org.jboss.switchboard.javaee.environment.ORBRefType;
-import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
-import org.jboss.switchboard.spi.Resource;
-
-/**
- * ORBRefResourceProvider
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
-public class ORBRefResourceProvider implements MCBasedResourceProvider<ORBRefType>
-{
-
- public Class<ORBRefType> getEnvironmentEntryType()
- {
- return ORBRefType.class;
- }
-
- public Resource provide(DeploymentUnit context, ORBRefType type)
- {
- return new LinkRefResource("java:/JBossCorbaORB");
- }
-
-}
Copied: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java)
===================================================================
--- trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.jboss.as.switchboard.resource.provider;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.switchboard.impl.resource.LinkRefResource;
+import org.jboss.switchboard.javaee.environment.ORBRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+
+/**
+ * ORBRefResourceProvider
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class ORBRefResourceProvider implements MCBasedResourceProvider<ORBRefType>
+{
+
+ public Class<ORBRefType> getEnvironmentEntryType()
+ {
+ return ORBRefType.class;
+ }
+
+ public Resource provide(DeploymentUnit context, ORBRefType type)
+ {
+ return new LinkRefResource("java:/JBossCorbaORB");
+ }
+
+}
Deleted: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java
===================================================================
--- branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java 2010-11-15 13:33:02 UTC (rev 109338)
+++ trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -1,31 +0,0 @@
-/**
- *
- */
-package org.jboss.as.switchboard.resource.provider;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.switchboard.impl.resource.LinkRefResource;
-import org.jboss.switchboard.javaee.environment.TransactionSynchronizationRegistryRefType;
-import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
-import org.jboss.switchboard.spi.Resource;
-
-/**
- * TransactionSynchronizationRefResourceProvider
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
-public class TransactionSynchronizationRefResourceProvider implements MCBasedResourceProvider<TransactionSynchronizationRegistryRefType>
-{
-
- public Class<TransactionSynchronizationRegistryRefType> getEnvironmentEntryType()
- {
- return TransactionSynchronizationRegistryRefType.class;
- }
-
- public Resource provide(DeploymentUnit context, TransactionSynchronizationRegistryRefType type)
- {
- return new LinkRefResource("java:TransactionSynchronizationRegistry");
- }
-
-}
Copied: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java)
===================================================================
--- trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.jboss.as.switchboard.resource.provider;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.switchboard.impl.resource.LinkRefResource;
+import org.jboss.switchboard.javaee.environment.TransactionSynchronizationRegistryRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+
+/**
+ * TransactionSynchronizationRefResourceProvider
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class TransactionSynchronizationRefResourceProvider implements MCBasedResourceProvider<TransactionSynchronizationRegistryRefType>
+{
+
+ public Class<TransactionSynchronizationRegistryRefType> getEnvironmentEntryType()
+ {
+ return TransactionSynchronizationRegistryRefType.class;
+ }
+
+ public Resource provide(DeploymentUnit context, TransactionSynchronizationRegistryRefType type)
+ {
+ return new LinkRefResource("java:TransactionSynchronizationRegistry");
+ }
+
+}
Deleted: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java
===================================================================
--- branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java 2010-11-15 13:33:02 UTC (rev 109338)
+++ trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -1,31 +0,0 @@
-/**
- *
- */
-package org.jboss.as.switchboard.resource.provider;
-
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.switchboard.impl.resource.LinkRefResource;
-import org.jboss.switchboard.javaee.environment.UserTransactionRefType;
-import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
-import org.jboss.switchboard.spi.Resource;
-
-/**
- * UserTransactionRefResourceProvider
- *
- * @author Jaikiran Pai
- * @version $Revision: $
- */
-public class UserTransactionRefResourceProvider implements MCBasedResourceProvider<UserTransactionRefType>
-{
-
- public Class<UserTransactionRefType> getEnvironmentEntryType()
- {
- return UserTransactionRefType.class;
- }
-
- public Resource provide(DeploymentUnit context, UserTransactionRefType type)
- {
- return new LinkRefResource("UserTransaction");
- }
-
-}
Copied: trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java)
===================================================================
--- trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java (rev 0)
+++ trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,31 @@
+/**
+ *
+ */
+package org.jboss.as.switchboard.resource.provider;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.switchboard.impl.resource.LinkRefResource;
+import org.jboss.switchboard.javaee.environment.UserTransactionRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+
+/**
+ * UserTransactionRefResourceProvider
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class UserTransactionRefResourceProvider implements MCBasedResourceProvider<UserTransactionRefType>
+{
+
+ public Class<UserTransactionRefType> getEnvironmentEntryType()
+ {
+ return UserTransactionRefType.class;
+ }
+
+ public Resource provide(DeploymentUnit context, UserTransactionRefType type)
+ {
+ return new LinkRefResource("UserTransaction");
+ }
+
+}
Copied: trunk/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java (from rev 109338, branches/switchboard-integration/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java)
===================================================================
--- trunk/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java (rev 0)
+++ trunk/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,100 @@
+/**
+ *
+ */
+package org.jboss.deployment;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.deployers.spi.deployer.helpers.AbstractComponentDeployer;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeploymentVisitor;
+import org.jboss.deployers.spi.deployer.helpers.DeploymentVisitor;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+
+/**
+ * Creates and deploys EJB2x beans as components
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class Ejb2xComponentDeployer extends AbstractComponentDeployer<JBossMetaData, JBossEnterpriseBeanMetaData>
+{
+ private static final Logger log = Logger.getLogger(Ejb2xComponentDeployer.class);
+
+ private static final JBossDeploymentVisitor deploymentVisitor = new JBossDeploymentVisitor();
+
+ private static final String attachmentName = JBossMetaData.class.getName();
+
+ public Ejb2xComponentDeployer()
+ {
+ setInput(JBossMetaData.class);
+ setOutput(deploymentVisitor.getComponentType());
+
+ setDeploymentVisitor(deploymentVisitor);
+ }
+
+ @Override
+ protected <U> void deploy(DeploymentUnit unit, DeploymentVisitor<U> visitor) throws DeploymentException
+ {
+ U deployment = unit.getAttachment(attachmentName, visitor.getVisitorType());
+ try
+ {
+ visitor.deploy(unit, deployment);
+ }
+ catch (Throwable t)
+ {
+ throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + unit.getName(), t);
+ }
+ }
+
+ @Override
+ protected <U> void undeploy(DeploymentUnit unit, DeploymentVisitor<U> visitor)
+ {
+ if (visitor == null)
+ return;
+
+ U deployment = unit.getAttachment(attachmentName, visitor.getVisitorType());
+ visitor.undeploy(unit, deployment);
+ }
+
+ private static class JBossDeploymentVisitor
+ extends
+ AbstractDeploymentVisitor<JBossEnterpriseBeanMetaData, JBossMetaData>
+ {
+ @Override
+ public Class<JBossEnterpriseBeanMetaData> getComponentType()
+ {
+ return JBossEnterpriseBeanMetaData.class;
+ }
+
+ @Override
+ protected List<? extends JBossEnterpriseBeanMetaData> getComponents(JBossMetaData deployment)
+ {
+ // Process only 2.x beans
+ if (deployment == null || !deployment.isEJB2x())
+ return null;
+ JBossEnterpriseBeansMetaData enterpriseBeans = deployment.getEnterpriseBeans();
+ if (enterpriseBeans == null)
+ {
+ return null;
+ }
+ return new ArrayList<JBossEnterpriseBeanMetaData>(enterpriseBeans);
+ }
+
+ @Override
+ protected String getComponentName(JBossEnterpriseBeanMetaData attachment)
+ {
+ return JBossEnterpriseBeanMetaData.class.getName() + "." + attachment.getEjbName();
+ }
+
+ public Class<JBossMetaData> getVisitorType()
+ {
+ return JBossMetaData.class;
+ }
+ }
+
+}
Modified: trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -39,6 +39,10 @@
import javax.management.ObjectName;
import org.jboss.beans.metadata.api.annotations.Inject;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
+import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.dependency.plugins.AbstractDependencyItem;
import org.jboss.dependency.spi.ControllerState;
import org.jboss.deployers.spi.DeploymentException;
@@ -48,8 +52,14 @@
import org.jboss.deployers.structure.spi.DeploymentUnit;
import org.jboss.deployers.structure.spi.main.MainDeployerInternals;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.ejb3.ejbref.resolver.spi.EjbReference;
import org.jboss.ejb3.ejbref.resolver.spi.EjbReferenceResolver;
+import org.jboss.injection.injector.metadata.EnvironmentEntryType;
+import org.jboss.injection.injector.metadata.InjectionTargetType;
+import org.jboss.injection.injector.metadata.JndiEnvironmentRefsGroup;
+import org.jboss.injection.manager.spi.InjectionManager;
+import org.jboss.injection.manager.spi.Injector;
+import org.jboss.injection.mc.injector.LazyEEInjector;
+import org.jboss.injection.mc.metadata.JndiEnvironmentImpl;
import org.jboss.jpa.resolvers.PersistenceUnitDependencyResolver;
import org.jboss.kernel.plugins.bootstrap.basic.KernelConstants;
import org.jboss.managed.api.ManagedObject;
@@ -63,17 +73,14 @@
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.AnnotatedEJBReferenceMetaData;
-import org.jboss.metadata.javaee.spec.AnnotatedEJBReferencesMetaData;
-import org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData;
-import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
-import org.jboss.metadata.javaee.spec.PersistenceUnitReferenceMetaData;
-import org.jboss.metadata.javaee.spec.PersistenceUnitReferencesMetaData;
+import org.jboss.metadata.javaee.spec.Environment;
import org.jboss.metadata.web.jboss.ClassLoadingMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
import org.jboss.metadata.web.spec.WebMetaData;
import org.jboss.metatype.api.values.SimpleValueSupport;
import org.jboss.mx.util.MBeanServerLocator;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
+import org.jboss.switchboard.spi.Barrier;
import org.jboss.system.metadata.ServiceAttributeMetaData;
import org.jboss.system.metadata.ServiceConstructorMetaData;
import org.jboss.system.metadata.ServiceDependencyMetaData;
@@ -147,6 +154,8 @@
/** EJB reference resolver */
private EjbReferenceResolver ejbRefResolver;
+
+ private JavaEEComponentInformer componentInformer;
/**
* Create a new AbstractWarDeployer.
@@ -154,6 +163,8 @@
public AbstractWarDeployer()
{
super(JBossWebMetaData.class);
+ addInput(Barrier.class);
+ addInput(InjectionManager.class);
setOutput(ServiceMetaData.class);
setOutput(WarDeployment.class);
}
@@ -282,7 +293,12 @@
this.ejbRefResolver = resolver;
}
-
+ @Inject
+ public void setJavaEEComponentInformer(JavaEEComponentInformer informer)
+ {
+ this.componentInformer = informer;
+ }
+
/** Get the session attribute number under which the caller Subject is stored
* @jmx:managed-attribute
*/
@@ -729,63 +745,53 @@
dependencies.add(sdmd);
}
}
-
- // JBAS-6795 Add dependency on PersistenceUnit references
- PersistenceUnitReferencesMetaData puRefs = metaData.getPersistenceUnitRefs();
- if (puRefs != null)
- {
- for (PersistenceUnitReferenceMetaData puRef : metaData.getPersistenceUnitRefs())
- {
- // TODO: this is a duplication of the logic in PersistenceUnitHandler
- String persistenceUnitName = puRef.getPersistenceUnitName();
- String beanName = persistenceUnitDependencyResolver.resolvePersistenceUnitSupplier(unit, persistenceUnitName);
- ServiceDependencyMetaData sdmd = new ServiceDependencyMetaData();
- sdmd.setIDependOn(beanName);
- dependencies.add(sdmd);
- }
- }
- // JBAS-6795 Add dependency on PersistenceContext references
- PersistenceContextReferencesMetaData pcRefs = metaData.getPersistenceContextRefs();
- if (pcRefs != null)
+ // SwitchBoard
+ Barrier switchBoard = unit.getAttachment(Barrier.class);
+ if (switchBoard != null)
{
- for (PersistenceContextReferenceMetaData pcRef : metaData.getPersistenceContextRefs())
- {
- // TODO: this is a duplication of the logic in PersistenceContextHandler
- String persistenceUnitName = pcRef.getPersistenceUnitName();
- String beanName = persistenceUnitDependencyResolver.resolvePersistenceUnitSupplier(unit, persistenceUnitName);
- ServiceDependencyMetaData sdmd = new ServiceDependencyMetaData();
- sdmd.setIDependOn(beanName);
- dependencies.add(sdmd);
- }
+ // Setup switchboard dependency on the deployment
+ ServiceDependencyMetaData switchBoardDependency = new ServiceDependencyMetaData();
+ switchBoardDependency.setIDependOn(switchBoard.getId());
+ dependencies.add(switchBoardDependency);
+ log.debug("Added switchboard dependency: " + switchBoard.getId() + " for web module: " + name);
}
-
- // JBAS-8406 Add dependency on @EJB(s). This is a bit of duplicacy, since the TomcatInjectionContainer
- // through various handler would also do the same. But since the TomcatInjectionContainer comes too late
- // in the picture and since we already have similar duplicacy for @PersistenceContext and @PersistenceUnit (see few lines
- // above) and more importantly, since this works, let's just have it here.
- if (metaData.getJndiEnvironmentRefsGroup() != null)
+ // Injection Manager
+ InjectionManager injectionManager = unit.getAttachment(InjectionManager.class);
+ if (injectionManager != null)
{
- AnnotatedEJBReferencesMetaData annotatedEjbRefs = metaData.getJndiEnvironmentRefsGroup().getAnnotatedEjbReferences();
- if (annotatedEjbRefs != null && !annotatedEjbRefs.isEmpty())
+ // set the InjectionManager on the deployment
+ deployment.setInjectionManager(injectionManager);
+ // Setup the Injector
+ Environment webEnvironment = metaData.getJndiEnvironmentRefsGroup();
+ if (webEnvironment != null)
{
- for (AnnotatedEJBReferenceMetaData annotatedEjbRef : annotatedEjbRefs)
+ // convert JBMETA metadata to jboss-injection specific metadata
+ JndiEnvironmentRefsGroup jndiEnvironment = new JndiEnvironmentImpl(webEnvironment, unit.getClassLoader());
+ // For optimization, we'll create an Injector only if there's atleast one InjectionTarget
+ if (this.hasInjectionTargets(jndiEnvironment))
{
- // Note: @EJB(beanName="") is set as "link" in AnnotatedEJBReferenceMetadata.
- // Hence, we use the getLink() method to get hold of the beanName during resolution.
- String beanName = annotatedEjbRef.getLink();
- EjbReference ejbReference = new EjbReference(beanName, annotatedEjbRef.getBeanInterface().getName(), annotatedEjbRef.getMappedName());
- String jndiName = this.ejbRefResolver.resolveEjb(unit, ejbReference);
- if (jndiName != null)
- {
- ServiceDependencyMetaData sdmd = this.createJNDIDependency(jndiName);
- dependencies.add(sdmd);
- }
+ // create the injector
+ LazyEEInjector lazyEEInjector = new LazyEEInjector(jndiEnvironment);
+ // add the injector the injection manager
+ injectionManager.addInjector(lazyEEInjector);
+ // Deploy the Injector as a MC bean (so that the fully populated naming context (obtained via the SwitchBoard
+ // Barrier) gets injected.
+ String injectorMCBeanName = this.getInjectorMCBeanName(unit);
+ BeanMetaData injectorBMD = this.createInjectorBMD(injectorMCBeanName, lazyEEInjector, switchBoard);
+ unit.addAttachment(BeanMetaData.class + ":" + injectorMCBeanName, injectorBMD);
+
+ // Add the Injector dependency on the deployment (so that the DU doesn't
+ // get started till the Injector is available)
+ ServiceDependencyMetaData injectorDepdendency = new ServiceDependencyMetaData();
+ injectorDepdendency.setIDependOn(injectorMCBeanName);
+ dependencies.add(injectorDepdendency);
+ log.debug("Added Injector dependency: " + injectorMCBeanName + " for web module: " + name);
}
}
}
-
+
webModule.setDependencies(dependencies);
// Here's where a bit of magic happens. By attaching the ServiceMetaData
@@ -905,4 +911,77 @@
visitor.visit(this);
}
}
+
+ /**
+ * Creates and returns {@link BeanMetaData} for the passed {@link LazyEEInjector injector} and sets up
+ * dependency on the passed {@link Barrier SwitchBoard barrier}.
+ *
+ * @param injectorMCBeanName
+ * @param injector
+ * @param barrier
+ * @return
+ */
+ protected BeanMetaData createInjectorBMD(String injectorMCBeanName, LazyEEInjector injector, Barrier barrier)
+ {
+ BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(injectorMCBeanName, injector.getClass().getName());
+ builder.setConstructorValue(injector);
+
+ // add injection dependency on INSTALLED state of SwitchBoard Barrier
+ AbstractInjectionValueMetaData barrierInjection = new AbstractInjectionValueMetaData(barrier.getId());
+ barrierInjection.setDependentState(ControllerState.INSTALLED);
+ builder.addPropertyMetaData("barrier", barrierInjection);
+
+ // return the Injector BMD
+ return builder.getBeanMetaData();
+ }
+
+
+ /**
+ * Returns the MC bean name for a {@link Injector injector} belonging to the
+ * {@link InjectionManager InjectionManager} for the passed {@link DeploymentUnit deployment unit}
+ *
+ * @param unit
+ * @return
+ */
+ protected String getInjectorMCBeanName(DeploymentUnit unit)
+ {
+ StringBuilder sb = new StringBuilder("jboss-injector:");
+ String appName = this.componentInformer.getApplicationName(unit);
+ if (appName != null)
+ {
+ sb.append("appName=");
+ sb.append(appName);
+ sb.append(",");
+ }
+ String moduleName = this.componentInformer.getModuleName(unit);
+ sb.append("module=");
+ sb.append(moduleName);
+
+ return sb.toString();
+ }
+
+ /**
+ * Returns true if the passed {@link JndiEnvironmentRefsGroup} has atleast one {@link EnvironmentEntryType environment entry}
+ * with an {@link InjectionTargetType injection target}. Else, returns false
+ *
+ * @param jndiEnv
+ * @return
+ */
+ private boolean hasInjectionTargets(JndiEnvironmentRefsGroup jndiEnv)
+ {
+ Collection<EnvironmentEntryType> envEntries = jndiEnv.getEntries();
+ if (envEntries == null || envEntries.isEmpty())
+ {
+ return false;
+ }
+ for (EnvironmentEntryType envEntry : envEntries)
+ {
+ Collection<InjectionTargetType> injectionTargets = envEntry.getInjectionTargets();
+ if (injectionTargets != null && !injectionTargets.isEmpty())
+ {
+ return true;
+ }
+ }
+ return false;
+ }
}
Modified: trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
===================================================================
--- trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -42,6 +42,7 @@
import org.jboss.deployers.structure.spi.main.MainDeployerInternals;
import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
import org.jboss.ejb.EjbUtil50;
+import org.jboss.injection.manager.spi.InjectionManager;
import org.jboss.jpa.resolvers.PersistenceUnitDependencyResolver;
import org.jboss.kernel.Kernel;
import org.jboss.logging.Logger;
@@ -143,6 +144,11 @@
protected ISecurityManagement securityManagement;
private PersistenceUnitDependencyResolver persistenceUnitDependencyResolver;
+
+ /**
+ * Injection manager
+ */
+ private InjectionManager injectionManager;
public AbstractWarDeployment()
{
@@ -308,6 +314,16 @@
{
this.persistenceUnitDependencyResolver = resolver;
}
+
+ public void setInjectionManager(InjectionManager injectionManager)
+ {
+ this.injectionManager = injectionManager;
+ }
+
+ public InjectionManager getInjectionManager()
+ {
+ return this.injectionManager;
+ }
/**
* Get the Policy Registration Name
@@ -804,7 +820,7 @@
* element. If there was no security-domain element then the bindings are to
* NullSecurityManager instance which simply allows all access.
*/
- protected void linkSecurityDomain(String securityDomain, Context envCtx) throws NamingException
+ protected void linkSecurityDomain(String securityDomain, Context javaCompCtx) throws NamingException
{
if (securityDomain == null)
{
@@ -817,11 +833,11 @@
securityDomain = SecurityConstants.JAAS_CONTEXT_ROOT + "/" + securityDomain;
log.debug("Linking security/securityMgr to JNDI name: " + securityDomain);
- Util.bind(envCtx, "security/securityMgr", new LinkRef(securityDomain));
- Util.bind(envCtx, "security/realmMapping", new LinkRef(securityDomain + "/realmMapping"));
- Util.bind(envCtx, "security/authorizationMgr", new LinkRef(securityDomain + "/authorizationMgr"));
- Util.bind(envCtx, "security/security-domain", new LinkRef(securityDomain));
- Util.bind(envCtx, "security/subject", new LinkRef(securityDomain + "/subject"));
+ Util.bind(javaCompCtx, "env/security/securityMgr", new LinkRef(securityDomain));
+ Util.bind(javaCompCtx, "env/security/realmMapping", new LinkRef(securityDomain + "/realmMapping"));
+ Util.bind(javaCompCtx, "env/security/authorizationMgr", new LinkRef(securityDomain + "/authorizationMgr"));
+ Util.bind(javaCompCtx, "env/security/security-domain", new LinkRef(securityDomain));
+ Util.bind(javaCompCtx, "env/security/subject", new LinkRef(securityDomain + "/subject"));
}
/**
Modified: trunk/testsuite/build.xml
===================================================================
--- trunk/testsuite/build.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/build.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -343,6 +343,12 @@
<fileset refid="org.jboss.jbossas:jboss-server-manager:jar"/>
<fileset refid="org.jboss.jbossts:jbossjts:jar"/>
<fileset refid="org.jboss.jbossts:jbossjts-integration:jar"/>
+
+ <!-- Switchboard and jboss-injection -->
+ <fileset refid="org.jboss.injection:jboss-injection-injector:jar"/>
+ <fileset refid="org.jboss.injection:jboss-injection-mc-impl:jar"/>
+ <fileset refid="org.jboss.injection:jboss-injection-manager:jar"/>
+
<!-- Java EE APIs -->
<path refid="jboss.javaee.api.classpath"/>
@@ -600,6 +606,7 @@
<property name="thirdparty.pom.file" location="pom.xml"/>
<property name="maven.repo.local" location="${user.home}/.m2/repository"/>
+
<!--
- Initialize properties for each dependency in the thirdparty pom
- The properties take the form "groupId:artifactId:packaging"
Modified: trunk/testsuite/imports/sections/jsf.xml
===================================================================
--- trunk/testsuite/imports/sections/jsf.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/imports/sections/jsf.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -61,6 +61,7 @@
<webinf dir="${build.resources}/web/jsfinjection/WEB-INF">
<include name="faces-config.xml"/>
+ <include name="jboss-service.xml"/>
</webinf>
</war>
Modified: trunk/testsuite/imports/sections/web.xml
===================================================================
--- trunk/testsuite/imports/sections/web.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/imports/sections/web.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -692,6 +692,7 @@
webxml="${build.resources}/web/simple-xmlonly/web.xml">
<webinf dir="${build.resources}/web/simple-xmlonly">
<include name="jboss-web.xml"/>
+ <include name="jboss-service.xml"/>
</webinf>
<classes dir="${build.classes}">
<include name="org/jboss/test/web/servlets/ENCTester.class"/>
@@ -721,7 +722,10 @@
<classes dir="${build.classes}">
<include name="org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.class"/>
<include name="org/jboss/test/web/servlets/ENCTester.class"/>
- </classes>
+ </classes>
+ <webinf dir="${build.resources}/web/simple-xmlonly">
+ <include name="jboss-service.xml"/>
+ </webinf>
</war>
<jar destfile="${build.lib}/simple-mock.beans">
<zipfileset dir="${build.resources}/web/simple-xmlonly"
Modified: trunk/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -69,7 +69,7 @@
mappedName="jbosstest/ejbs/local/ENCBean1")
StatelessSessionLocalHome localHome;
- @Resource(name="url/JBossHome", mappedName="http://www.jboss.org")
+ @Resource(name="url/JBossHome", mappedName="java:SomeWebSite")
java.net.URL url;
@Resource(name="Ints/i0", mappedName="0")
Modified: trunk/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -47,7 +47,7 @@
@EJB
SimpleLocal simpleLocal;
- @Resource(name = "url/Injection", mappedName = "http://jboss.org")
+ @Resource(name = "url/Injection", mappedName = "java:SomeWebSite")
private java.net.URL url;
/**
Modified: trunk/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -117,7 +117,7 @@
private void testEjbRefs(Context initCtx, Context myEnv) throws NamingException
{
//do lookup on bean specified without ejb-link
- Object ejb = initCtx.lookup("java:comp/env/ejb/bean3");
+ Object ejb = initCtx.lookup("ejb/bean3");
if ((ejb instanceof StatelessSessionHome) == false)
throw new NamingException("ejb/bean3 is not a StatelessSessionHome");
log.debug("ejb/bean3 = " + ejb);
Modified: trunk/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -77,7 +77,7 @@
mappedName="jbosstest/ejbs/local/ENCBean1")
StatelessSessionLocalHome localHome;
- @Resource(name="url/JBossHome", mappedName="http://www.jboss.org")
+ @Resource(name="url/JBossHome", mappedName="java:SomeWebSite")
java.net.URL url;
@Resource(name="Ints/i0", mappedName="0")
Copied: trunk/testsuite/src/resources/refs/resources/hornetq-jms.xml (from rev 109338, branches/switchboard-integration/testsuite/src/resources/refs/resources/hornetq-jms.xml)
===================================================================
--- trunk/testsuite/src/resources/refs/resources/hornetq-jms.xml (rev 0)
+++ trunk/testsuite/src/resources/refs/resources/hornetq-jms.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+
+<configuration xmlns="urn:hornetq"
+ xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:schemaLocation="urn:hornetq /schema/hornetq-jms.xsd">
+
+ <queue name="testQueue">
+ <entry name="queue/testQueue" />
+ </queue>
+
+ <topic name="testTopic">
+ <entry name="topic/testTopic"/>
+ </topic>
+
+</configuration>
Copied: trunk/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml (from rev 109338, branches/switchboard-integration/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml)
===================================================================
--- trunk/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml (rev 0)
+++ trunk/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mbean code="org.jboss.naming.JNDIBindingServiceMgr" name="jboss.apps:name=myapp">
+ <attribute name="BindingsConfig" serialDataType="jbxb">
+ <jndi:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:jndi="urn:jboss:jndi-binding-service:1.0"
+ xs:schemaLocation="urn:jboss:jndi-binding-service resource:jndi-binding-service_1_0.xsd">
+ <!-- bind to java:SomeWebSite jndi name which is referenced in jboss-web.xml
+ via a resource-ref entry -->
+ <jndi:binding name="java:SomeWebSite">
+ <jndi:value type="java.net.URL">http://www.jboss.org</jndi:value>
+ </jndi:binding>
+
+ </jndi:bindings>
+ </attribute>
+</mbean>
Copied: trunk/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml (from rev 109338, branches/switchboard-integration/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml)
===================================================================
--- trunk/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml (rev 0)
+++ trunk/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mbean code="org.jboss.naming.JNDIBindingServiceMgr" name="jboss.apps:name=myapp">
+ <attribute name="BindingsConfig" serialDataType="jbxb">
+ <jndi:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:jndi="urn:jboss:jndi-binding-service:1.0"
+ xs:schemaLocation="urn:jboss:jndi-binding-service resource:jndi-binding-service_1_0.xsd">
+ <!-- bind to java:SomeWebSite jndi name which is referenced in jboss-web.xml
+ via a resource-ref entry -->
+ <jndi:binding name="java:SomeWebSite">
+ <jndi:value type="java.net.URL">http://www.jboss.org</jndi:value>
+ </jndi:binding>
+
+ </jndi:bindings>
+ </attribute>
+</mbean>
Copied: trunk/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml (from rev 109338, branches/switchboard-integration/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml)
===================================================================
--- trunk/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml (rev 0)
+++ trunk/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<mbean code="org.jboss.naming.JNDIBindingServiceMgr" name="jboss.apps:name=myapp">
+ <attribute name="BindingsConfig" serialDataType="jbxb">
+ <jndi:bindings xmlns:xs="http://www.w3.org/2001/XMLSchema-instance"
+ xmlns:jndi="urn:jboss:jndi-binding-service:1.0"
+ xs:schemaLocation="urn:jboss:jndi-binding-service resource:jndi-binding-service_1_0.xsd">
+ <!-- bind to java:SomeWebSite jndi name which is referenced in jboss-web.xml
+ via a resource-ref entry -->
+ <jndi:binding name="java:SomeWebSite">
+ <jndi:value type="java.net.URL">http://www.jboss.org</jndi:value>
+ </jndi:binding>
+
+ </jndi:bindings>
+ </attribute>
+</mbean>
Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -38,7 +38,6 @@
import java.util.Set;
import javax.naming.Context;
-import javax.naming.InitialContext;
import javax.naming.NameNotFoundException;
import javax.naming.NamingException;
import javax.servlet.Filter;
@@ -55,6 +54,8 @@
import org.jboss.ejb3.deployers.JBoss5DependencyPolicy;
import org.jboss.ejb3.javaee.AbstractJavaEEComponent;
import org.jboss.ejb3.javaee.SimpleJavaEEModule;
+import org.jboss.ejb3.vfs.impl.vfs3.VirtualFileWrapper;
+import org.jboss.ejb3.vfs.spi.VirtualFile;
import org.jboss.injection.DependsHandler;
import org.jboss.injection.EncInjector;
import org.jboss.injection.ExtendedInjectionContainer;
@@ -62,19 +63,16 @@
import org.jboss.injection.Injector;
import org.jboss.injection.PersistenceContextHandler;
import org.jboss.injection.PersistenceUnitHandler;
+import org.jboss.injection.manager.spi.InjectionManager;
import org.jboss.jpa.resolvers.PersistenceUnitDependencyResolver;
import org.jboss.logging.Logger;
import org.jboss.metadata.javaee.spec.Environment;
import org.jboss.metadata.javaee.spec.LifecycleCallbackMetaData;
import org.jboss.metadata.web.jboss.JBossWebMetaData;
-import org.jboss.ejb3.vfs.spi.VirtualFile;
-import org.jboss.ejb3.vfs.impl.vfs3.VirtualFileWrapper;
import org.jboss.reloaded.naming.spi.JavaEEComponent;
import org.jboss.web.WebApplication;
import org.jboss.web.tomcat.service.injection.TomcatInjectionUtils;
import org.jboss.web.tomcat.service.injection.WebEJBHandler;
-import org.jboss.web.tomcat.service.injection.WebResourceHandler;
-import org.jboss.web.tomcat.service.injection.WebServiceRefInjectionHandler;
/**
* The TomcatInjectionContainer.
@@ -145,6 +143,11 @@
private List<Injector> defaultInjectors;
// the naming component counter-part
private JavaEEComponent component;
+
+ /**
+ * Injection Manager
+ */
+ private InjectionManager injectionManager;
static
@@ -201,7 +204,7 @@
}
public TomcatInjectionContainer(WebApplication appInfo, DeploymentUnit unit, org.apache.catalina.Context catalinaContext,
- PersistenceUnitDependencyResolver resolver, Set<String> dynamicClassLoaders, JavaEEComponent component)
+ PersistenceUnitDependencyResolver resolver, Set<String> dynamicClassLoaders, JavaEEComponent component, InjectionManager injectionManager)
{
super(new SimpleJavaEEModule(appInfo.getName()));
@@ -219,7 +222,9 @@
assert this.webDD != null : "webDD is null (no JBossWebMetaData attachment in VFSDeploymentUnit)";
this.component = component;
+ this.injectionManager = injectionManager;
}
+
public void setDefaultInjectors(List<Injector> injectors)
{
@@ -382,18 +387,19 @@
{
allInjectors.addAll(defaultInjectors);
}
- if (allInjectors.size() == 0)
- {
- if (trace)
- log.trace("-- no injectors found for: " + object);
- return;
- }
if (trace)
log.trace("-- doing injections for: " + object);
for (Injector injector : allInjectors)
{
injector.inject(object);
}
+ // TODO: Ultimately, once the injection is completely
+ // managed by InjectionManager, we should get rid of all other injectors
+ // used in this method (maybe except for "defaultInjectors") and instead
+ // just use the InjectionManager
+ // Use the InjectionManager
+ this.injectionManager.inject(object);
+
}
/**
@@ -481,7 +487,7 @@
return injectors;
}
-
+
/**
* Check if the class is a dynamic bean.
*
@@ -580,15 +586,20 @@
{
log.debug("JPA injection disabled", e);
}
- handlers.add(new WebResourceHandler<Environment>());
- try
- {
- handlers.add(new WebServiceRefInjectionHandler<Environment>());
- }
- catch (NoClassDefFoundError e)
- {
- log.debug("WS injection disabled", e);
- }
+ // Disable @Resource handler, since it's now handled by switchboard/jboss-injection
+ // combination
+ //handlers.add(new WebResourceHandler<Environment>());
+
+ // Disable @WebServiceRef (service-ref) handler, since it's now handled by switchboard and jboss-injection
+ // combination
+// try
+// {
+// handlers.add(new WebServiceRefInjectionHandler<Environment>());
+// }
+// catch (NoClassDefFoundError e)
+// {
+// log.debug("WS injection disabled", e);
+// }
ClassLoader old = Thread.currentThread().getContextClassLoader();
ClassLoader webLoader = getClassloader();
Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -29,6 +29,7 @@
import org.jboss.mx.util.ObjectNameFactory;
import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
import org.jboss.security.plugins.JaasSecurityManagerServiceMBean;
+import org.jboss.switchboard.spi.Barrier;
import org.jboss.web.deployers.AbstractWarDeployer;
import org.jboss.web.deployers.AbstractWarDeployment;
@@ -130,6 +131,7 @@
{
this.componentInformer = componentInformer;
setInputs(componentInformer.getRequiredAttachments());
+ addInput(Barrier.class);
}
public String getName()
Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -198,7 +198,7 @@
TomcatInjectionContainer injectionContainer =
new TomcatInjectionContainer(webApp, depUnit, context,
- getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component);
+ getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component, this.getInjectionManager());
if (kernel != null)
{
@@ -414,8 +414,8 @@
// TODO: The enc should be an input?
currentThread.setContextClassLoader(webLoader.getClassLoader());
metaData.setENCLoader(webLoader.getClassLoader());
- Context envCtx = component.getContext();
- // Add ORB/UserTransaction
+ Context javaCompCtx = component.getContext();
+// // Add ORB/UserTransaction
ORB orb = null;
try
{
@@ -424,7 +424,7 @@
// Bind the orb
if (orb != null)
{
- NonSerializableFactory.rebind(envCtx, "ORB", orb);
+ NonSerializableFactory.rebind(javaCompCtx, "ORB", orb);
log.debug("Bound java:comp/ORB");
}
}
@@ -434,18 +434,18 @@
}
// JTA links
- envCtx.bind("TransactionSynchronizationRegistry", new LinkRef("java:TransactionSynchronizationRegistry"));
+ javaCompCtx.bind("TransactionSynchronizationRegistry", new LinkRef("java:TransactionSynchronizationRegistry"));
log.debug("Linked java:comp/TransactionSynchronizationRegistry to JNDI name: java:TransactionSynchronizationRegistry");
- envCtx.bind("UserTransaction", new LinkRef("UserTransaction"));
+ javaCompCtx.bind("UserTransaction", new LinkRef("UserTransaction"));
log.debug("Linked java:comp/UserTransaction to JNDI name: UserTransaction");
- envCtx = envCtx.createSubcontext("env");
+ //envCtx = envCtx.createSubcontext("env");
injectionContainer.populateEnc(webLoader.getClassLoader());
// TODO: this should be bindings in the metadata
currentThread.setContextClassLoader(webLoader.getClassLoader());
String securityDomain = metaData.getSecurityDomain();
log.debug("linkSecurityDomain");
- linkSecurityDomain(securityDomain, envCtx);
+ linkSecurityDomain(securityDomain, javaCompCtx);
}
catch (Throwable t)
Modified: trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java
===================================================================
--- trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -33,7 +33,6 @@
import javax.annotation.Resources;
import javax.ejb.EJBContext;
import javax.ejb.EJBException;
-import javax.ejb.SessionContext;
import javax.ejb.TimerService;
import javax.transaction.UserTransaction;
import javax.xml.ws.WebServiceContext;
@@ -300,18 +299,18 @@
for (MessageDestinationReferenceMetaData envRef : refs)
{
String encName = "env/" + envRef.getMessageDestinationRefName();
- if (container.getEncInjectors().containsKey(encName))
- continue;
- String jndiName = envRef.getMappedName();
- if (jndiName == null || jndiName.equals(""))
- {
- jndiName = envRef.getResolvedJndiName();
- if (jndiName == null || jndiName.equals(""))
- throw new RuntimeException("mapped-name is required for " + envRef.getMessageDestinationRefName()
- + " of deployment " + container.getIdentifier());
- }
- container.getEncInjectors().put(encName,
- new LinkRefEncInjector(encName, jndiName, "<message-destination-ref>"));
+// if (container.getEncInjectors().containsKey(encName))
+// continue;
+// String jndiName = envRef.getMappedName();
+// if (jndiName == null || jndiName.equals(""))
+// {
+// jndiName = envRef.getResolvedJndiName();
+// if (jndiName == null || jndiName.equals(""))
+// throw new RuntimeException("mapped-name is required for " + envRef.getMessageDestinationRefName()
+// + " of deployment " + container.getIdentifier());
+// }
+// container.getEncInjectors().put(encName,
+// new LinkRefEncInjector(encName, jndiName, "<message-destination-ref>"));
InjectionUtil.injectionTarget(encName, envRef, container, container.getEncInjections());
}
}
@@ -322,12 +321,12 @@
return;
if (xml.getMessageDestinationReferences() != null)
loadXmlMessageDestinationRefs(container, xml.getMessageDestinationReferences());
- if (xml.getResourceEnvironmentReferences() != null)
- loadXmlResourceEnvRefs(container, xml.getResourceEnvironmentReferences());
+// if (xml.getResourceEnvironmentReferences() != null)
+// loadXmlResourceEnvRefs(container, xml.getResourceEnvironmentReferences());
if (xml.getResourceReferences() != null)
loadXmlResourceRefs(container, xml.getResourceReferences());
- if (xml.getEnvironmentEntries() != null)
- loadEnvEntry(container, xml.getEnvironmentEntries());
+// if (xml.getEnvironmentEntries() != null)
+// loadEnvEntry(container, xml.getEnvironmentEntries());
}
public void handleClassAnnotations(Class<?> clazz, InjectionContainer container)
Modified: trunk/webservices/pom.xml
===================================================================
--- trunk/webservices/pom.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/webservices/pom.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -83,6 +83,14 @@
</dependency>
<!-- jboss provided dependencies -->
<dependency>
+ <groupId>org.jboss.switchboard</groupId>
+ <artifactId>jboss-switchboard-spi</artifactId>
+ </dependency>
+ <dependency>
+ <groupId>org.jboss.switchboard</groupId>
+ <artifactId>jboss-switchboard-javaee</artifactId>
+ </dependency>
+ <dependency>
<groupId>org.jboss.spec.javax.xml.ws</groupId>
<artifactId>jboss-jaxws-api_2.2_spec</artifactId>
<scope>provided</scope>
Copied: trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java (from rev 109338, branches/switchboard-integration/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java)
===================================================================
--- trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java (rev 0)
+++ trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,425 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2010, 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.webservices.integration.injection;
+
+import java.util.Collection;
+import java.util.List;
+import java.util.Map;
+
+import javax.naming.Referenceable;
+import javax.xml.namespace.QName;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.serviceref.VirtualFileAdaptor;
+import org.jboss.switchboard.javaee.environment.Addressing;
+import org.jboss.switchboard.javaee.environment.Handler;
+import org.jboss.switchboard.javaee.environment.HandlerChain;
+import org.jboss.switchboard.javaee.environment.PortComponent;
+import org.jboss.switchboard.javaee.environment.ServiceRefType;
+import org.jboss.switchboard.javaee.jboss.environment.JBossPortComponent;
+import org.jboss.switchboard.javaee.jboss.environment.JBossServiceRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+import org.jboss.wsf.common.ResourceLoaderAdapter;
+import org.jboss.wsf.spi.SPIProvider;
+import org.jboss.wsf.spi.SPIProviderResolver;
+import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedCallPropertyMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerChainsMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedHandlerMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedInitParamMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedPortComponentRefMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedServiceRefMetaData;
+import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedStubPropertyMetaData;
+import org.jboss.wsf.spi.serviceref.ServiceRefHandler;
+import org.jboss.wsf.spi.serviceref.ServiceRefHandlerFactory;
+
+/**
+ * Service reference resource provider.
+ *
+ * Conventions used in this source code are:
+ * <ul>
+ * <li>SBMD - switch board meta data</li>
+ * <li>UMDM - jbossws unified meta data model</li>
+ * </ul>
+ *
+ * @author alessio.soldano at jboss.com
+ * @author <a href="mailto:ropalka at redhat.com">Richard Opalka</a>
+ */
+public final class ServiceRefResourceProvider implements MCBasedResourceProvider<ServiceRefType>
+{
+
+ private static final Logger log = Logger.getLogger(ServiceRefResourceProvider.class);
+
+ private ServiceRefHandler delegate;
+
+ /**
+ * Constructor.
+ */
+ public ServiceRefResourceProvider()
+ {
+ final SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
+ this.delegate = spiProvider.getSPI(ServiceRefHandlerFactory.class).getServiceRefHandler();
+ }
+
+ /**
+ * Provides service ref resource.
+ */
+ @Override
+ public Resource provide(final DeploymentUnit deploymentUnit, final ServiceRefType serviceRefSBMD)
+ {
+ final UnifiedVirtualFile vfsRoot = this.getUnifiedVirtualFile(deploymentUnit);
+ final UnifiedServiceRefMetaData serviceRefUMDM = this.getUnifiedServiceRefMetaData(vfsRoot, serviceRefSBMD);
+ final Referenceable jndiReferenceable = this.delegate.createReferenceable(serviceRefUMDM);
+
+ return new ServiceRefResource(jndiReferenceable);
+ }
+
+ /**
+ * Inform about type this resource handler can handle.
+ *
+ * @return handled type
+ */
+ @Override
+ public Class<ServiceRefType> getEnvironmentEntryType()
+ {
+ return ServiceRefType.class;
+ }
+
+ /**
+ * Constructs vfs root from deployment unit.
+ *
+ * @param deploymentUnit
+ * @return vfs root
+ */
+ private UnifiedVirtualFile getUnifiedVirtualFile(final DeploymentUnit deploymentUnit)
+ {
+ if (deploymentUnit instanceof VFSDeploymentUnit)
+ {
+ return new VirtualFileAdaptor(((VFSDeploymentUnit) deploymentUnit).getRoot());
+ }
+ else
+ {
+ return new ResourceLoaderAdapter(deploymentUnit.getClassLoader());
+ }
+ }
+
+ /**
+ * Translates service ref switchboard meta data to JBossWS unified service ref meta data.
+ *
+ * @param vfsRoot virtual file system root
+ * @param serviceRefSBMD service reference switchboard meta data
+ * @return unified jbossws service reference meta data
+ */
+ private UnifiedServiceRefMetaData getUnifiedServiceRefMetaData(final UnifiedVirtualFile vfsRoot,
+ final ServiceRefType serviceRefSBMD)
+ {
+ final UnifiedServiceRefMetaData serviceRefUMDM = new UnifiedServiceRefMetaData(vfsRoot);
+ serviceRefUMDM.setServiceRefName(serviceRefSBMD.getName());
+ serviceRefUMDM.setServiceRefType(serviceRefSBMD.getType());
+ serviceRefUMDM.setServiceInterface(serviceRefSBMD.getServiceInterface());
+ serviceRefUMDM.setWsdlFile(serviceRefSBMD.getWsdlFile());
+ serviceRefUMDM.setMappingFile(serviceRefSBMD.getMappingFile());
+ serviceRefUMDM.setServiceQName(serviceRefSBMD.getQName());
+ serviceRefUMDM.setHandlerChain(serviceRefSBMD.getHandlerChain());
+
+ // propagate addressing properties
+ serviceRefUMDM.setAddressingEnabled(serviceRefSBMD.isAddressingEnabled());
+ serviceRefUMDM.setAddressingRequired(serviceRefSBMD.isAddressingRequired());
+ serviceRefUMDM.setAddressingResponses(serviceRefSBMD.getAddressingResponses());
+
+ // propagate MTOM properties
+ serviceRefUMDM.setMtomEnabled(serviceRefSBMD.isMtomEnabled());
+ serviceRefUMDM.setMtomThreshold(serviceRefSBMD.getMtomThreshold());
+
+ // propagate respect binding properties
+ serviceRefUMDM.setRespectBindingEnabled(serviceRefSBMD.isRespectBindingEnabled());
+
+ // propagate port compoments
+ final Collection<? extends PortComponent> portComponentsSBMD = serviceRefSBMD.getPortComponents();
+ if (portComponentsSBMD != null)
+ {
+ for (final PortComponent portComponentSBMD : portComponentsSBMD)
+ {
+ final UnifiedPortComponentRefMetaData portComponentUMDM = this.getUnifiedPortComponentRefMetaData(
+ serviceRefUMDM, portComponentSBMD);
+ if (portComponentUMDM.getServiceEndpointInterface() != null || portComponentUMDM.getPortQName() != null)
+ {
+ serviceRefUMDM.addPortComponentRef(portComponentUMDM);
+ }
+ else
+ {
+ log.warn("Ignoring <port-component-ref> without <service-endpoint-interface> and <port-qname>: "
+ + portComponentUMDM);
+ }
+ }
+ }
+
+ // propagate handlers
+ final Collection<Handler> handlersSBMD = serviceRefSBMD.getHandlers();
+ if (handlersSBMD != null)
+ {
+ for (final Handler handlerSBMD : handlersSBMD)
+ {
+ final UnifiedHandlerMetaData handlerUMDM = this.getUnifiedHandlerMetaData(handlerSBMD);
+ serviceRefUMDM.addHandler(handlerUMDM);
+ }
+ }
+
+ // propagate handler chains
+ final List<HandlerChain> handlerChainsSBMD = serviceRefSBMD.getHandlerChains();
+ if (handlerChainsSBMD != null)
+ {
+ final UnifiedHandlerChainsMetaData handlerChainsUMDM = this.getUnifiedHandlerChainsMetaData(handlerChainsSBMD);
+ serviceRefUMDM.setHandlerChains(handlerChainsUMDM);
+ }
+
+ // propagate jboss specific MD
+ if (serviceRefSBMD instanceof JBossServiceRefType)
+ {
+ this.processUnifiedJBossServiceRefMetaData(serviceRefUMDM, serviceRefSBMD);
+ }
+
+ return serviceRefUMDM;
+ }
+
+ /**
+ * Translates jboss service ref switchboard meta data to JBossWS unified service ref meta data.
+ *
+ * @param serviceRefUMDM service reference unified meta data
+ * @param serviceRefSBMD service reference switchboard meta data
+ */
+ private void processUnifiedJBossServiceRefMetaData(final UnifiedServiceRefMetaData serviceRefUMDM,
+ final ServiceRefType serviceRefSBMD)
+ {
+ final JBossServiceRefType jbossServiceRefSBMD = (JBossServiceRefType) serviceRefSBMD;
+ serviceRefUMDM.setServiceImplClass(jbossServiceRefSBMD.getServiceClass());
+ serviceRefUMDM.setConfigName(jbossServiceRefSBMD.getConfigName());
+ serviceRefUMDM.setConfigFile(jbossServiceRefSBMD.getConfigFile());
+ serviceRefUMDM.setWsdlOverride(jbossServiceRefSBMD.getWsdlOverride());
+ serviceRefUMDM.setHandlerChain(jbossServiceRefSBMD.getHandlerChain());
+ }
+
+ /**
+ * Translates handler chains switchboard meta data to JBossWS unified handler chains meta data.
+ *
+ * @param handlerChainsSBMD handler chains switchboard meta data
+ * @return handler chains JBossWS unified meta data
+ */
+ private UnifiedHandlerChainsMetaData getUnifiedHandlerChainsMetaData(final List<HandlerChain> handlerChainsSBMD)
+ {
+ final UnifiedHandlerChainsMetaData handlerChainsUMDM = new UnifiedHandlerChainsMetaData();
+
+ for (final HandlerChain handlerChainSBMD : handlerChainsSBMD)
+ {
+ final UnifiedHandlerChainMetaData handlerChainUMDM = new UnifiedHandlerChainMetaData();
+ handlerChainUMDM.setServiceNamePattern(handlerChainSBMD.getServiceNamePattern());
+ handlerChainUMDM.setPortNamePattern(handlerChainSBMD.getPortNamePattern());
+ handlerChainUMDM.setProtocolBindings(handlerChainSBMD.getProtocolBindings());
+
+ final List<Handler> handlersSBMD = handlerChainSBMD.getHandlers();
+ for (final Handler handlerSBMD : handlersSBMD)
+ {
+ final UnifiedHandlerMetaData handlerUMDM = getUnifiedHandlerMetaData(handlerSBMD);
+ handlerChainUMDM.addHandler(handlerUMDM);
+ }
+
+ handlerChainsUMDM.addHandlerChain(handlerChainUMDM);
+ }
+
+ return handlerChainsUMDM;
+ }
+
+ /**
+ * Translates handler switchboard meta data to JBossWS unified handler meta data.
+ *
+ * @param handlerSBMD handler switchboard meta data
+ * @return handler JBossWS unified meta data
+ */
+ private UnifiedHandlerMetaData getUnifiedHandlerMetaData(final Handler handlerSBMD)
+ {
+ final UnifiedHandlerMetaData handlerUMDM = new UnifiedHandlerMetaData();
+ handlerUMDM.setHandlerName(handlerSBMD.getHandlerName());
+ handlerUMDM.setHandlerClass(handlerSBMD.getHandlerClass());
+
+ // translate handler init params
+ final Map<String, String> handlerInitParamsSBMD = handlerSBMD.getInitParams();
+ if (handlerInitParamsSBMD != null)
+ {
+ for (final String initParamName : handlerInitParamsSBMD.keySet())
+ {
+ final UnifiedInitParamMetaData handlerInitParamUMDM = new UnifiedInitParamMetaData();
+ handlerInitParamUMDM.setParamName(initParamName);
+ handlerInitParamUMDM.setParamValue(handlerInitParamsSBMD.get(initParamName));
+ handlerUMDM.addInitParam(handlerInitParamUMDM);
+ }
+ }
+
+ // translate handler soap headers
+ final Collection<QName> handlerSoapHeadersSBDM = handlerSBMD.getSoapHeaders();
+ if (handlerSoapHeadersSBDM != null)
+ {
+ for (final QName soapHeader : handlerSoapHeadersSBDM)
+ {
+ handlerUMDM.addSoapHeader(soapHeader);
+ }
+ }
+
+ // translate handler soap roles
+ final Collection<String> handlerSoapRolesSBMD = handlerSBMD.getSoapRoles();
+ if (handlerSoapRolesSBMD != null)
+ {
+ for (final String soapRole : handlerSoapRolesSBMD)
+ {
+ handlerUMDM.addSoapRole(soapRole);
+ }
+ }
+
+ // translate handler port names
+ final Collection<String> handlerPortNamesSBMD = handlerSBMD.getPortNames();
+ if (handlerPortNamesSBMD != null)
+ {
+ for (final String portName : handlerPortNamesSBMD)
+ {
+ handlerUMDM.addPortName(portName);
+ }
+ }
+
+ return handlerUMDM;
+ }
+
+ /**
+ * Translates port component ref switchboard meta data to JBossWS unified port component ref meta data.
+ *
+ * @param serviceRefUMDM service ref unified meta data
+ * @param portComponentSBMD port component ref switchboard meta data
+ * @return port component ref unified meta data
+ */
+ private UnifiedPortComponentRefMetaData getUnifiedPortComponentRefMetaData(
+ final UnifiedServiceRefMetaData serviceRefUMDM, final PortComponent portComponentSBMD)
+ {
+ final UnifiedPortComponentRefMetaData portComponentUMDM = new UnifiedPortComponentRefMetaData(serviceRefUMDM);
+
+ // propagate service endpoint interface
+ portComponentUMDM.setServiceEndpointInterface(portComponentSBMD.getEndpointInterface());
+
+ // propagate MTOM properties
+ portComponentUMDM.setMtomEnabled(portComponentSBMD.isMtomEnabled());
+ portComponentUMDM.setMtomThreshold(portComponentSBMD.getMtomThreshold());
+
+ // propagate addressing properties
+ final Addressing addressingSBMD = portComponentSBMD.getAddressing();
+ if (addressingSBMD != null)
+ {
+ portComponentUMDM.setAddressingEnabled(addressingSBMD.isEnabled());
+ portComponentUMDM.setAddressingRequired(addressingSBMD.isRequired());
+ portComponentUMDM.setAddressingResponses(addressingSBMD.getResponses());
+ }
+
+ // propagate respect binding properties
+ portComponentUMDM.setRespectBindingEnabled(portComponentSBMD.isRespectBindingEnabled());
+
+ // propagate link
+ portComponentUMDM.setPortComponentLink(portComponentSBMD.getLink());
+
+ // propagate jboss specific MD
+ if (portComponentSBMD instanceof JBossPortComponent)
+ {
+ this.processUnifiedJBossPortComponentRefMetaData(portComponentUMDM, portComponentSBMD);
+ }
+
+ return portComponentUMDM;
+ }
+
+ /**
+ * Translates jboss port component ref switchboard meta data to JBossWS unified port component ref meta data.
+ *
+ * @param portComponentUMDM port component unified meta data
+ * @param portComponentSBMD port component switchboard meta data
+ */
+ private void processUnifiedJBossPortComponentRefMetaData(final UnifiedPortComponentRefMetaData portComponentUMDM,
+ final PortComponent portComponentSBMD)
+ {
+ final JBossPortComponent jbossPortComponentSBMD = (JBossPortComponent) portComponentSBMD;
+
+ // propagate port QName
+ portComponentUMDM.setPortQName(jbossPortComponentSBMD.getPortQName());
+
+ // propagate configuration properties
+ portComponentUMDM.setConfigName(jbossPortComponentSBMD.getConfigName());
+ portComponentUMDM.setConfigFile(jbossPortComponentSBMD.getConfigFile());
+
+ // propagate stub properties
+ final Map<String, String> stubPropertiesSBMD = jbossPortComponentSBMD.getStubProperties();
+ if (stubPropertiesSBMD != null)
+ {
+ for (final String propertyName : stubPropertiesSBMD.keySet())
+ {
+ final UnifiedStubPropertyMetaData stubPropertyUMDM = new UnifiedStubPropertyMetaData();
+ stubPropertyUMDM.setPropName(propertyName);
+ stubPropertyUMDM.setPropValue(stubPropertiesSBMD.get(propertyName));
+ portComponentUMDM.addStubProperty(stubPropertyUMDM);
+ }
+ }
+
+ // propagate call properties
+ final Map<String, String> callPropertiesSBMD = jbossPortComponentSBMD.getCallProperties();
+ if (callPropertiesSBMD != null)
+ {
+ for (final String propertyName : callPropertiesSBMD.keySet())
+ {
+ final UnifiedCallPropertyMetaData callPropertyUMDM = new UnifiedCallPropertyMetaData();
+ callPropertyUMDM.setPropName(propertyName);
+ callPropertyUMDM.setPropValue(callPropertiesSBMD.get(propertyName));
+ portComponentUMDM.addCallProperty(callPropertyUMDM);
+ }
+ }
+ }
+
+ /**
+ * Switchboard service ref resource.
+ */
+ private static final class ServiceRefResource implements Resource
+ {
+ private final Referenceable target;
+
+ private ServiceRefResource(final Referenceable target)
+ {
+ this.target = target;
+ }
+
+ @Override
+ public Object getDependency()
+ {
+ return null;
+ }
+
+ @Override
+ public Object getTarget()
+ {
+ return this.target;
+ }
+ }
+}
Copied: trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java (from rev 109338, branches/switchboard-integration/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java)
===================================================================
--- trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java (rev 0)
+++ trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java 2010-11-15 15:58:01 UTC (rev 109340)
@@ -0,0 +1,76 @@
+/*
+ * JBoss, Home of Professional Open Source.
+ * Copyright 2009, 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.webservices.integration.injection;
+
+import javax.xml.ws.WebServiceContext;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.switchboard.javaee.jboss.environment.JBossResourceEnvRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+import org.jboss.wsf.common.injection.ThreadLocalAwareWebServiceContext;
+
+/**
+ * WebServiceContext resource provider.
+ *
+ * @author <a href="mailto:ropalka at redhat.com">Richard Opalka</a>
+ */
+public final class WebServiceContextResourceProvider implements MCBasedResourceProvider<JBossResourceEnvRefType>
+{
+
+ @Override
+ public Resource provide(final DeploymentUnit unit, final JBossResourceEnvRefType resEnvRef)
+ {
+ return new WebServiceContextResource(ThreadLocalAwareWebServiceContext.getInstance());
+ }
+
+ @Override
+ public Class<JBossResourceEnvRefType> getEnvironmentEntryType()
+ {
+ return JBossResourceEnvRefType.class;
+ }
+
+ /**
+ * Switchboard web service context resource.
+ */
+ private static final class WebServiceContextResource implements Resource
+ {
+ private final WebServiceContext target;
+
+ private WebServiceContextResource(final WebServiceContext target)
+ {
+ this.target = target;
+ }
+
+ @Override
+ public Object getDependency()
+ {
+ return null;
+ }
+
+ @Override
+ public Object getTarget()
+ {
+ return this.target;
+ }
+ }
+}
Modified: trunk/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
===================================================================
--- trunk/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml 2010-11-15 14:35:05 UTC (rev 109339)
+++ trunk/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml 2010-11-15 15:58:01 UTC (rev 109340)
@@ -2,6 +2,18 @@
<deployment xmlns="urn:jboss:bean-deployer:2.0">
+ <!-- processes @WebServiceRef resources and their DD equivalents (EE.5.6 of Java EE6 spec) -->
+ <bean
+ name="org.jboss.switchboard.WebServiceRefResourceProvider"
+ class="org.jboss.webservices.integration.injection.ServiceRefResourceProvider"
+ />
+
+ <!-- processes @Resource annotated WebServiceContext beans (EE.5.6 of Java EE6 spec) -->
+ <bean
+ name="org.jboss.switchboard.WebServiceContextResourceProvider"
+ class="org.jboss.webservices.integration.injection.WebServiceContextResourceProvider"
+ />
+
<!-- Wraps single instance of the kernel -->
<bean name="WSIoCContainerProxy" class="org.jboss.webservices.integration.ioc.IoCContainerProxyImpl">
<property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
@@ -51,11 +63,11 @@
<bean name="WSDescriptorDeployer" class="org.jboss.webservices.integration.deployers.WSDescriptorDeployer">
<incallback method="setProcessor"/>
</bean>
-
+
<bean name="JMSDescriptorDeployer" class="org.jboss.webservices.integration.deployers.JMSDescriptorDeployer">
<incallback method="setProcessor"/>
</bean>
-
+
<bean name="WSEJBAdapterDeployer" class="org.jboss.webservices.integration.deployers.WSEJBAdapterDeployer"/>
<bean name="WSTypeDeployer" class="org.jboss.webservices.integration.deployers.WSTypeDeployer"/>
@@ -72,7 +84,7 @@
<incallback method="addDeployer"/>
<uncallback method="removeDeployer"/>
</bean>
-
+
<!-- The AS specific deployment aspects -->
<bean name="WSContainerMetaDataDeploymentAspect" class="org.jboss.webservices.integration.metadata.ContainerMetaDataDeploymentAspect">
<property name="provides">ContainerMetaData, VFSRoot</property>
More information about the jboss-cvs-commits
mailing list