[jboss-cvs] JBossAS SVN: r109178 - in branches/switchboard-integration: component-matrix and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Nov 5 12:44:32 EDT 2010


Author: jaikiran
Date: 2010-11-05 12:44:30 -0400 (Fri, 05 Nov 2010)
New Revision: 109178

Added:
   branches/switchboard-integration/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml
Removed:
   branches/switchboard-integration/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java
Modified:
   branches/switchboard-integration/build/build.xml
   branches/switchboard-integration/component-matrix/pom.xml
   branches/switchboard-integration/depchain/pom.xml
   branches/switchboard-integration/server/pom.xml
   branches/switchboard-integration/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml
   branches/switchboard-integration/server/src/etc/deployers/switchboard-jboss-beans.xml
   branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
   branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
   branches/switchboard-integration/testsuite/imports/sections/web.xml
   branches/switchboard-integration/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java
   branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
   branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
   branches/switchboard-integration/webservices/pom.xml
Log:
JBAS-8548 JBAS-8549 (1) Integrate jboss-injection (2) Disable @Resource handler to allow SwitchBoard and jboss-injection to manage @Resource environment processing and injection in a web container (3) Temporarily revert Richard's WS commits which are causing build failures

Modified: branches/switchboard-integration/build/build.xml
===================================================================
--- branches/switchboard-integration/build/build.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/build/build.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -2111,7 +2111,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"/>
@@ -2566,6 +2569,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: branches/switchboard-integration/component-matrix/pom.xml
===================================================================
--- branches/switchboard-integration/component-matrix/pom.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/component-matrix/pom.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -49,6 +49,7 @@
     <version.javax.faces>2.0.2-FCS</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-1</version.jboss.injection>
     <version.jboss.jaxr>2.0.1</version.jboss.jaxr>
     <version.jboss.jbossts>4.11.0.Final</version.jboss.jbossts>
     <version.jboss.jbossws-native>3.4.0.CR3</version.jboss.jbossws-native>
@@ -132,7 +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-5</version.org.jboss.switchboard.depchain>
+    <version.org.jboss.switchboard.depchain>1.0.0-alpha-6</version.org.jboss.switchboard.depchain>
     <version.org.jboss.threads>2.0.0.CR4</version.org.jboss.threads>
     <version.org.jboss.vfs>3.0.0.CR5</version.org.jboss.vfs>
     <version.org.jboss.weld>1.1.0.Beta1</version.org.jboss.weld>
@@ -2066,7 +2067,26 @@
          <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: branches/switchboard-integration/depchain/pom.xml
===================================================================
--- branches/switchboard-integration/depchain/pom.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/depchain/pom.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -845,6 +845,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>

Modified: branches/switchboard-integration/server/pom.xml
===================================================================
--- branches/switchboard-integration/server/pom.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/server/pom.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -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>

Modified: branches/switchboard-integration/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml
===================================================================
--- branches/switchboard-integration/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -2,11 +2,11 @@
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
     <!-- Deployers -->
-    <bean  name="WebENCOperatorDeployer" class="org.jboss.switchboard.mc.deployer.WebEnvironmentENCOperatorDeployer">
+    <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="EJBENCOperatorDeployer" class="org.jboss.switchboard.mc.deployer.EJBEnvironmentENCOperatorDeployer">
+    <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>
 

Modified: branches/switchboard-integration/server/src/etc/deployers/switchboard-jboss-beans.xml
===================================================================
--- branches/switchboard-integration/server/src/etc/deployers/switchboard-jboss-beans.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/server/src/etc/deployers/switchboard-jboss-beans.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -2,11 +2,11 @@
 <deployment xmlns="urn:jboss:bean-deployer:2.0">
 
     <!-- Deployers -->
-    <bean  name="WebENCOperatorDeployer" class="org.jboss.switchboard.mc.deployer.WebEnvironmentENCOperatorDeployer">
+    <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="EJBENCOperatorDeployer" class="org.jboss.switchboard.mc.deployer.EJBEnvironmentENCOperatorDeployer">
+    <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>
 

Modified: branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
===================================================================
--- branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java	2010-11-05 16:44:30 UTC (rev 109178)
@@ -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,13 @@
 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;
@@ -148,6 +154,8 @@
    
    /** EJB reference resolver */
    private EjbReferenceResolver ejbRefResolver;
+   
+   private JavaEEComponentInformer componentInformer;
 
    /**
     * Create a new AbstractWarDeployer.
@@ -156,6 +164,7 @@
    {
       super(JBossWebMetaData.class);
       addInput(Barrier.class);
+      addInput(InjectionManager.class);
       setOutput(ServiceMetaData.class);
       setOutput(WarDeployment.class);
    }
@@ -284,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
     */
@@ -736,67 +750,44 @@
          Barrier switchBoard = unit.getAttachment(Barrier.class);
          if (switchBoard != null)
          {
+            // 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);
          }
+         // Injection Manager
+         InjectionManager injectionManager = unit.getAttachment(InjectionManager.class);
+         if (injectionManager != null)
+         {
+            // set the InjectionManager on the deployment
+            deployment.setInjectionManager(injectionManager);
+            // Setup the Injector
+            Environment webEnvironment = metaData.getJndiEnvironmentRefsGroup();
+            // 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))
+            {
+               // 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);
+            }
+         }
 
-//          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)
-//         {
-//            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);
-//            }
-//         }
-//         
-//         // 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)
-//         {
-//            AnnotatedEJBReferencesMetaData annotatedEjbRefs = metaData.getJndiEnvironmentRefsGroup().getAnnotatedEjbReferences();
-//            if (annotatedEjbRefs != null && !annotatedEjbRefs.isEmpty())
-//            {
-//               for (AnnotatedEJBReferenceMetaData annotatedEjbRef : annotatedEjbRefs)
-//               {
-//                  // 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);
-//                  }
-//               }
-//            }
-//         }
-         
 
          webModule.setDependencies(dependencies);
 
@@ -917,4 +908,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: branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
===================================================================
--- branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java	2010-11-05 16:44:30 UTC (rev 109178)
@@ -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

Modified: branches/switchboard-integration/testsuite/imports/sections/web.xml
===================================================================
--- branches/switchboard-integration/testsuite/imports/sections/web.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/testsuite/imports/sections/web.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -720,7 +720,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: branches/switchboard-integration/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java
===================================================================
--- branches/switchboard-integration/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java	2010-11-05 16:44:30 UTC (rev 109178)
@@ -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")

Added: branches/switchboard-integration/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml
===================================================================
--- branches/switchboard-integration/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml	                        (rev 0)
+++ branches/switchboard-integration/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -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: branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-11-05 16:44:30 UTC (rev 109178)
@@ -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,18 +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;
 
 /**
@@ -145,6 +144,11 @@
    private List<Injector> defaultInjectors;
    // the naming component counter-part
    private JavaEEComponent component;
+   
+   /**
+    * Injection Manager
+    */
+   private InjectionManager injectionManager;
 
 
    static
@@ -201,7 +205,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 +223,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 +388,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 +488,7 @@
 
       return injectors;
    }
-
+   
    /**
     * Check if the class is a dynamic bean.
     * 
@@ -580,7 +587,9 @@
       {
          log.debug("JPA injection disabled", e);
       }
-      handlers.add(new WebResourceHandler<Environment>());
+      // Disable @Resource handler, since it's now handled by switchboard/jboss-injection
+      // combination
+      //handlers.add(new WebResourceHandler<Environment>());
       try
       {
          handlers.add(new WebServiceRefInjectionHandler<Environment>());

Modified: branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-11-05 16:44:30 UTC (rev 109178)
@@ -198,7 +198,7 @@
 
       TomcatInjectionContainer injectionContainer = 
          new TomcatInjectionContainer(webApp, depUnit, context, 
-               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component);
+               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component, this.getInjectionManager());
 
       if (kernel != null)
       {

Modified: branches/switchboard-integration/webservices/pom.xml
===================================================================
--- branches/switchboard-integration/webservices/pom.xml	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/webservices/pom.xml	2010-11-05 16:44:30 UTC (rev 109178)
@@ -83,14 +83,6 @@
     </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>

Deleted: branches/switchboard-integration/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java
===================================================================
--- branches/switchboard-integration/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java	2010-11-05 15:07:04 UTC (rev 109177)
+++ branches/switchboard-integration/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java	2010-11-05 16:44:30 UTC (rev 109178)
@@ -1,425 +0,0 @@
-/*
- * 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.HandlerChainType;
-import org.jboss.switchboard.javaee.environment.PortComponent;
-import org.jboss.switchboard.javaee.environment.ServiceRefType;
-import org.jboss.switchboard.javaee.jboss.environment.JBossPortComponentRefType;
-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.getServiceRefName());
-      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<HandlerChainType> 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<HandlerChainType> handlerChainsSBMD)
-   {
-      final UnifiedHandlerChainsMetaData handlerChainsUMDM = new UnifiedHandlerChainsMetaData();
-
-      for (final HandlerChainType 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 JBossPortComponentRefType)
-      {
-         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 JBossPortComponentRefType jbossPortComponentSBMD = (JBossPortComponentRefType) 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;
-      }
-   }
-}



More information about the jboss-cvs-commits mailing list