[jboss-cvs] JBossAS SVN: r109414 - in branches/JBoss-AS-6.0.x_ipv6: cluster/src/main/java/org/jboss/ha/framework/server/managed and 56 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Mon Nov 22 17:27:23 EST 2010


Author: smcgowan at redhat.com
Date: 2010-11-22 17:27:16 -0500 (Mon, 22 Nov 2010)
New Revision: 109414

Added:
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/refs/resources/hornetq-jms.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/META-INF/hornetq-jms.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml
   branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanManagerResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299Injector.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299InjectorDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/util/JndiUtils.java
Removed:
   branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolDataProtocolStackConfigurator.java
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/web/field/
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java
Modified:
   branches/JBoss-AS-6.0.x_ipv6/build/build.xml
   branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigMapper.java
   branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigurationsMapper.java
   branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/invocation/unified/interfaces/UnifiedInvokerHAProxy.java
   branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/infinispan/infinispan-configs.xml
   branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml
   branches/JBoss-AS-6.0.x_ipv6/component-matrix/pom.xml
   branches/JBoss-AS-6.0.x_ipv6/depchain/pom.xml
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/ejb3/deployers/JBossASKernel.java
   branches/JBoss-AS-6.0.x_ipv6/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java
   branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java
   branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/SecurityKeyManager.java
   branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/ssl/JBossSSLConfiguration.java
   branches/JBoss-AS-6.0.x_ipv6/server/pom.xml
   branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/ejb-deployer-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/build.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/jsf.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/mdb.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/web.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/BuddyReplicationFailoverUnitTestCase.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/JChannelFactoryOverrideUnitTestCase.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/web/test/SessionPassivationTestCase.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/CacheConfigTestSetup.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/SessionTestUtil.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/mdb/test/MDBUnitTestCase.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/channelfactory/stacks.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/drm/drm-test-stacks.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/ejb2/passexp/META-INF/passexp-stacks.xml
   branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/encbinding-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
   branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
   branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java
   branches/JBoss-AS-6.0.x_ipv6/webservices/pom.xml
   branches/JBoss-AS-6.0.x_ipv6/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/pom.xml
   branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/pom.xml
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java
   branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java
Log:
Another merge with trunk -r109270

Modified: branches/JBoss-AS-6.0.x_ipv6/build/build.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/build/build.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/build/build.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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 -->
   <!-- ========= -->
@@ -2118,6 +2124,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"/>
@@ -2130,7 +2145,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"/>
@@ -2593,6 +2611,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>
 

Deleted: branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolDataProtocolStackConfigurator.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolDataProtocolStackConfigurator.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolDataProtocolStackConfigurator.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -1,71 +0,0 @@
-/*
- * 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.ha.framework.server.managed;
-
-import org.jgroups.conf.ProtocolData;
-import org.jgroups.conf.ProtocolStackConfigurator;
-
-/**
- *
- *
- * @author Brian Stansberry
- * 
- * @version $Revision: $
- */
-public class ProtocolDataProtocolStackConfigurator implements ProtocolStackConfigurator
-{
-   private final ProtocolData[] protocolData;
-   
-   /**
-    * Create a new ProtocolDataProtocolStackConfigurator.
-    * 
-    */
-   public ProtocolDataProtocolStackConfigurator(ProtocolData[] protocolData)
-   {
-      if (protocolData == null)
-      {
-         throw new IllegalArgumentException("null protocolData");
-      }
-      this.protocolData = protocolData;      
-   }
-
-   public ProtocolData[] getProtocolStack()
-   {
-      return this.protocolData;
-   }
-
-   public String getProtocolStackString()
-   {
-      StringBuilder buf=new StringBuilder();
-      for (int i = 0; i < protocolData.length; i++)
-      {
-         buf.append(protocolData[i].getProtocolString(false));
-          if(i < protocolData.length - 1) 
-          {
-              buf.append(':');
-          }
-      }
-      return buf.toString();
-   }
-
-}

Modified: branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigMapper.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigMapper.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigMapper.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -23,11 +23,14 @@
 package org.jboss.ha.framework.server.managed;
 
 import java.lang.reflect.Type;
+import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
 
+import org.jboss.ha.core.channelfactory.ProtocolData;
+import org.jboss.ha.core.channelfactory.ProtocolParameter;
 import org.jboss.metatype.api.types.CollectionMetaType;
 import org.jboss.metatype.api.types.CompositeMetaType;
 import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
@@ -43,8 +46,6 @@
 import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.jboss.metatype.spi.values.MetaMapper;
-import org.jgroups.conf.ProtocolData;
-import org.jgroups.conf.ProtocolParameter;
 
 /**
  * MetaMapper for the ProtocolData[] description of a JGroups protocol stack
@@ -175,20 +176,18 @@
       {
          CompositeValue protocolValue = (CompositeValue) elements[i];
          String protName = (String) ((SimpleValue) protocolValue.get("name")).getValue();
-         String protDesc = (String) ((SimpleValue) protocolValue.get("description")).getValue();
+         // String protDesc = (String) ((SimpleValue) protocolValue.get("description")).getValue();
          String protClass = (String) ((SimpleValue) protocolValue.get("className")).getValue();
          CompositeValue paramsValue = (CompositeValue) protocolValue.get("protocolParameters");
          Set<String> paramNames = paramsValue.getMetaType().keySet();
-         ProtocolParameter[] protParams = new ProtocolParameter[paramNames.size()];
-         int j = 0;
+         List<ProtocolParameter> protParams = new ArrayList<ProtocolParameter>(paramNames.size());
          for (String paramName : paramNames)
          {
             CompositeValue paramValue = (CompositeValue) paramsValue.get(paramName);
             String paramVal = (String) ((SimpleValue) paramValue.get("value")).getValue();
-            protParams[j] = new ProtocolParameter(paramName, paramVal);   
-            j++;
+            protParams.add(new ProtocolParameter(paramName, paramVal));
          }
-         protocolData[i] = new ProtocolData(protName, protDesc, protClass, protParams);
+         protocolData[i] = new ProtocolData(protName, protClass, protParams);
       }
       return protocolData;
    }

Modified: branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigurationsMapper.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigurationsMapper.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/ha/framework/server/managed/ProtocolStackConfigurationsMapper.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -26,7 +26,9 @@
 import java.util.HashMap;
 import java.util.Map;
 
+import org.jboss.ha.core.channelfactory.ProtocolData;
 import org.jboss.ha.core.channelfactory.ProtocolStackConfigInfo;
+import org.jboss.ha.core.channelfactory.ProtocolStackUtil;
 import org.jboss.metatype.api.types.CompositeMetaType;
 import org.jboss.metatype.api.types.ImmutableCompositeMetaType;
 import org.jboss.metatype.api.types.MetaType;
@@ -39,9 +41,6 @@
 import org.jboss.metatype.api.values.SimpleValue;
 import org.jboss.metatype.api.values.SimpleValueSupport;
 import org.jboss.metatype.spi.values.MetaMapper;
-import org.jgroups.conf.ConfiguratorFactory;
-import org.jgroups.conf.ProtocolData;
-import org.jgroups.conf.ProtocolStackConfigurator;
 
 /**
  * {@link MetaMapper} for a map of {@link ProtocolStackConfigInfo}s keyed by
@@ -141,12 +140,11 @@
          String description = (String) ((SimpleValue) stackValue.get("description")).getValue();
          
          CollectionValue protocolsValue = (CollectionValue) stackValue.get("configuration");
-         ProtocolData[] protocolData = CONFIG_MAPPER.unwrapMetaValue(protocolsValue);         
-         ProtocolStackConfigurator configurator = new ProtocolDataProtocolStackConfigurator(protocolData);
+         ProtocolData[] protocolData = CONFIG_MAPPER.unwrapMetaValue(protocolsValue);  
          // fixes http://jira.jboss.com/jira/browse/JGRP-290
-         ConfiguratorFactory.substituteVariables(configurator); // replace vars with system props
+         ProtocolStackUtil.substituteVariables(protocolData); // replace vars with system props
          
-         result.put(stack, new ProtocolStackConfigInfo(name, description, configurator));
+         result.put(stack, new ProtocolStackConfigInfo(name, description, protocolData));
       }
       
       return result;

Modified: branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/invocation/unified/interfaces/UnifiedInvokerHAProxy.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/invocation/unified/interfaces/UnifiedInvokerHAProxy.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/cluster/src/main/java/org/jboss/invocation/unified/interfaces/UnifiedInvokerHAProxy.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -90,7 +90,7 @@
                                 List<?> targets, LoadBalancePolicy policy,
                                 String proxyFamilyName, long viewId)
    {
-      super(locator, isStrictRMIException);
+      super(); // JBAS-8636 avoid calling init() until we correctly set the subsystem
 
       this.familyClusterInfo = ClusteringTargetsRepository.initTarget(proxyFamilyName, targets, viewId);
       this.loadBalancePolicy = policy;
@@ -98,6 +98,8 @@
       trace = log.isTraceEnabled();
       
       setSubSystem("invokerha");
+      setStrictRMIException(isStrictRMIException);
+      init(locator);
    }
 
    public boolean txContextAllowsFailover(Invocation invocation)

Modified: branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/infinispan/infinispan-configs.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/infinispan/infinispan-configs.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/infinispan/infinispan-configs.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -73,7 +73,7 @@
           <hash numOwners="2"/>
         </clustering>
         <loaders passivation="true">
-          <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="false">
+          <loader class="org.infinispan.loaders.file.FileCacheStore" fetchPersistentState="false" purgeOnStartup="true">
             <properties>
               <property name="location" value="${jboss.server.data.dir}${/}web"/>
             </properties>
@@ -141,7 +141,7 @@
 
   <!-- Hibernate second-level cache -->
   <infinispan-config name="hibernate" jndi-name="java:CacheManager/entity">
-    <infinispan xmlns="urn:infinispan:config:4.2" xsi:schemaLocation="urn:infinispan:config:4.1 http://www.infinispan.org/schemas/infinispan-config-4.1.xsd">
+    <infinispan xmlns="urn:infinispan:config:4.2">
       <global>
         <transport clusterName="${jboss.partition.name:DefaultPartition}-Hibernate" distributedSyncTimeout="17500">
           <properties>

Modified: branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/cluster/src/resources/jgroups/jgroups-channelfactory-stacks.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -72,8 +72,8 @@
                    view_bundling="true"                   
                    view_ack_collection_timeout="5000"
                    resume_task_timeout="7500"/>
-          <FC max_credits="2000000" min_threshold="0.10" 
-              ignore_synchronous_response="true"/>
+          <UFC max_credits="2000000" ignore_synchronous_response="true"/>
+          <MFC max_credits="2000000" ignore_synchronous_response="true"/>
           <FRAG2 frag_size="60000"/>
           <pbcast.STREAMING_STATE_TRANSFER/>
           <!--pbcast.STATE_TRANSFER/-->
@@ -142,8 +142,8 @@
                    view_bundling="true"
                    view_ack_collection_timeout="5000"
                    resume_task_timeout="7500"/>
-          <FC max_credits="2000000" min_threshold="0.10" 
-              ignore_synchronous_response="true"/>
+          <UFC max_credits="2000000" ignore_synchronous_response="true"/>
+          <MFC max_credits="2000000" ignore_synchronous_response="true"/>
           <FRAG2 frag_size="60000"/>
           <pbcast.STREAMING_STATE_TRANSFER/>
           <!--pbcast.STATE_TRANSFER/-->
@@ -286,8 +286,8 @@
                         view_bundling="true"
                         view_ack_collection_timeout="5000"
                         resume_task_timeout="7500"/>
-            <FC max_credits="2000000" min_threshold="0.10" 
-                ignore_synchronous_response="true"/>
+            <UFC max_credits="2000000" ignore_synchronous_response="true"/>
+            <MFC max_credits="2000000" ignore_synchronous_response="true"/>
             <FRAG2 frag_size="60000"/>
             <pbcast.STREAMING_STATE_TRANSFER/>
             <!--pbcast.STATE_TRANSFER/-->

Modified: branches/JBoss-AS-6.0.x_ipv6/component-matrix/pom.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/component-matrix/pom.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/component-matrix/pom.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -46,18 +46,19 @@
     <version.rhq>1.4.0.B01</version.rhq>
     <version.jacorb>2.3.1jboss.patch01-brew</version.jacorb>
     <version.javassist>3.12.1.GA</version.javassist>
-    <version.javax.faces>2.0.2-FCS</version.javax.faces>
+    <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-3</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-framework>3.4.0.CR3</version.jboss.jbossws-framework>
-    <version.jboss.jbossws-spi>1.4.0.CR3</version.jboss.jbossws-spi>
+    <version.jboss.jbossws-common>1.4.1.CR1</version.jboss.jbossws-common>
+    <version.jboss.jbossws-framework>3.4.1.CR1</version.jboss.jbossws-framework>
+    <version.jboss.jbossws-spi>1.4.1.CR1</version.jboss.jbossws-spi>
     <version.jboss.jms-integration-tests>1.0.1.GA</version.jboss.jms-integration-tests>
-    <version.jboss.jsf-deployer>1.0.2</version.jboss.jsf-deployer>
+    <version.jboss.jsf-deployer>1.0.3</version.jboss.jsf-deployer>
     <version.jboss.web>3.0.0-beta-7</version.jboss.web>
     <version.jsr181.api>1.0-MR1</version.jsr181.api>
     <version.junit>4.6</version.junit>
@@ -78,13 +79,13 @@
     <version.org.jboss.classpool>1.0.0.Alpha6</version.org.jboss.classpool>
     <version.org.jboss.cluster.client>1.1.2.Final</version.org.jboss.cluster.client>
     <version.org.jboss.cluster.server.api>2.0.0.CR1</version.org.jboss.cluster.server.api>
-    <version.org.jboss.cluster.server.core>1.0.0.CR1</version.org.jboss.cluster.server.core>
-    <version.org.jboss.cluster.server.ispn>1.0.0.CR5</version.org.jboss.cluster.server.ispn>
+    <version.org.jboss.cluster.server.core>1.0.0.CR2</version.org.jboss.cluster.server.core>
+    <version.org.jboss.cluster.server.ispn>1.0.0.CR6</version.org.jboss.cluster.server.ispn>
     <version.org.jboss.cluster.cache.spi>3.0.0.CR1</version.org.jboss.cluster.cache.spi>
-    <version.org.jboss.cluster.cache.ispn>1.0.0.CR6</version.org.jboss.cluster.cache.ispn>
+    <version.org.jboss.cluster.cache.ispn>1.0.0.CR8</version.org.jboss.cluster.cache.ispn>
     <version.org.jboss.common.core>2.2.17.GA</version.org.jboss.common.core>
     <version.org.jboss.deployers>2.2.0.Alpha8</version.org.jboss.deployers>
-    <version.org.jboss.ejb3.depchain>1.0.0-alpha-17</version.org.jboss.ejb3.depchain>
+    <version.org.jboss.ejb3.depchain>1.0.0-alpha-20</version.org.jboss.ejb3.depchain>
     <!-- This to move into the EJB3 BOM -->
     <version.org.jboss.ejb3.embedded>1.0.0-alpha-1</version.org.jboss.ejb3.embedded>
     <version.org.jboss.ejb.api>1.0-alpha-1</version.org.jboss.ejb.api>
@@ -110,7 +111,7 @@
     <version.org.jboss.mc-int>2.2.0.Alpha3</version.org.jboss.mc-int>
     <version.org.jboss.mdr>2.2.0.Alpha3</version.org.jboss.mdr>
     <version.org.jboss.metadata.client>2.0.0.Alpha2</version.org.jboss.metadata.client>
-    <version.org.jboss.metadata.common>2.0.0.Alpha19</version.org.jboss.metadata.common>
+    <version.org.jboss.metadata.common>2.0.0.Alpha20</version.org.jboss.metadata.common>
     <version.org.jboss.metadata.ear>2.0.0.Alpha4</version.org.jboss.metadata.ear>
     <version.org.jboss.metadata.ejb>2.0.0-alpha-22</version.org.jboss.metadata.ejb>
     <version.org.jboss.metadata.rar>2.0.0.Alpha</version.org.jboss.metadata.rar>
@@ -133,13 +134,14 @@
     <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-9</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>
     <version.org.jboss.weld>1.1.0.Beta2</version.org.jboss.weld>
     <version.org.jboss.xnio>2.1.0.CR2</version.org.jboss.xnio>
     <version.org.jboss.xnio.metadata>2.1.0.CR5</version.org.jboss.xnio.metadata>
-    <version.org.jgroups>2.10.1.GA</version.org.jgroups>
+    <version.org.jgroups>2.11.0.GA</version.org.jgroups>
     <version.org.slf4j>1.5.6</version.org.slf4j>
     <version.ch.qos.cal10n>0.7.2</version.ch.qos.cal10n>
     <version.org.springframework>3.0.1.RELEASE</version.org.springframework>
@@ -1332,6 +1334,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>
@@ -2062,7 +2082,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: branches/JBoss-AS-6.0.x_ipv6/depchain/pom.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/depchain/pom.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/depchain/pom.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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>
@@ -1035,6 +1048,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: branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard (from rev 109413, trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard)

Copied: branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource (from rev 109413, trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource)

Copied: branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider (from rev 109413, trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider)

Deleted: branches/JBoss-AS-6.0.x_ipv6/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	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java (from rev 109413, trunk/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/as/ejb3/switchboard/resource/provider/MessageDestinationReferenceResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/ejb3/deployers/JBossASKernel.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/ejb3/deployers/JBossASKernel.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/ejb3/src/main/java/org/jboss/ejb3/deployers/JBossASKernel.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -21,6 +21,17 @@
  */
 package org.jboss.ejb3.deployers;
 
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+import java.util.ArrayList;
+import java.util.HashSet;
+import java.util.Set;
+
+import javax.management.MBeanInfo;
+import javax.management.MBeanOperationInfo;
+import javax.management.MBeanServer;
+import javax.management.ObjectName;
+
 import org.jboss.as.ejb3.naming.NamingComponentEjbEncFactory;
 import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
 import org.jboss.beans.metadata.plugins.AbstractConstructorMetaData;
@@ -37,6 +48,7 @@
 import org.jboss.ejb3.EJBContainer;
 import org.jboss.ejb3.KernelAbstraction;
 import org.jboss.ejb3.MCDependencyPolicy;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiatorRegistration;
 import org.jboss.ejb3.javaee.JavaEEApplication;
 import org.jboss.ejb3.javaee.JavaEEModule;
 import org.jboss.kernel.Kernel;
@@ -46,16 +58,6 @@
 import org.jboss.logging.Logger;
 import org.jboss.reloaded.naming.spi.JavaEEComponent;
 
-import javax.management.MBeanInfo;
-import javax.management.MBeanOperationInfo;
-import javax.management.MBeanServer;
-import javax.management.ObjectName;
-import java.lang.reflect.Field;
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.HashSet;
-import java.util.Set;
-
 /**
  * The JBossAS implementation of the ejb3 KernelAbstraction integration api
  * @author <a href="mailto:bill at jboss.org">Bill Burke</a>
@@ -156,11 +158,20 @@
             deployment.getBeanFactories().add(builder.getBeanMetaDataFactory());
          }
          // modify the container bean meta data to inject the EjbEncFactory
+         BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(bean);
+         //builder.addPropertyMetaData("namingComponent", new AbstractInjectionValueMetaData("java:comp"));
+         builder.addPropertyMetaData("ejbEncFactory", new AbstractInjectionValueMetaData(encFactoryBeanName));
+         
+         // Add the BeanInstantiator injection into EJBContainer
+         // TODO: (Jaikiran) Terrible hack! Use JavaEEComponentInformer to get the app name.
+         // But for now, due to lack of time for 6.0.0.CR1 release, let's just use this hack
+         if (appName == null)
          {
-            BeanMetaDataBuilder builder = BeanMetaDataBuilderFactory.createBuilder(bean);
-            //builder.addPropertyMetaData("namingComponent", new AbstractInjectionValueMetaData("java:comp"));
-            builder.addPropertyMetaData("ejbEncFactory", new AbstractInjectionValueMetaData(encFactoryBeanName));
+            appName = moduleName;
          }
+         String beanInstantiatorMcName = BeanInstantiatorRegistration.getInstantiatorRegistrationName(appName, moduleName, container.getEjbName());
+         builder.addPropertyMetaData("beanInstantiator", new AbstractInjectionValueMetaData(beanInstantiatorMcName));
+
       }
 
       if(unit != null)

Modified: branches/JBoss-AS-6.0.x_ipv6/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/ejb3/src/resources/META-INF/ejb3-as-deployers-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -311,11 +311,18 @@
   
     <!-- Responsible for creating the piece used to create EJB3 Bean Instances -->
     <bean name="org.jboss.ejb3.BeanInstantiator" class="org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator" />
-    <bean name="org.jboss.ejb3.BeanInstantiatorDeployer" class="org.jboss.ejb3.instantiator.deployer.SingletonBeanInstantiatorDeployer"> 
-      <constructor>
-        <parameter class="org.jboss.ejb3.instantiator.spi.BeanInstantiator"><inject bean="org.jboss.ejb3.BeanInstantiator"/></parameter>
-      </constructor>
-      <property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
-    </bean>
 
+    <!--  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>-->
+        <!--<parameter class="org.jboss.ejb3.instantiator.spi.BeanInstantiator"><inject bean="org.jboss.ejb3.BeanInstantiator"/></parameter>-->
+      <!--</constructor>-->
+      <!--<property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>-->
+    <!--</bean>-->
+
 </deployment>

Modified: branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomain.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -176,6 +176,8 @@
    private String keyStoreProviderArgument;
    
    private String trustStoreProviderArgument;
+   
+   private String clientAlias;
 
    /** Specify the SecurityManagement instance */
    private ISecurityManagement securityManagement = SecurityConstantsBridge.getSecurityManagement();
@@ -753,10 +755,51 @@
    {
       this.trustStoreProviderArgument = argument;
    }
+   
+   /*
+    * (non-Javadoc)
+    *  
+    * @see org.jboss.security.plugins.JaasSecurityDomainMBean#getClientAlias
+    */
+   @ManagementProperty(use = {ViewUse.CONFIGURATION}, description = "The preferred client alias to be used in an eventual SSL connection")
+   public String getClientAlias()
+   {
+      return clientAlias;
+   }
 
    /*
     * (non-Javadoc)
     * 
+    * @see org.jboss.security.plugins.JaasSecurityDomainMBean#setClientAlias(java.lang.String)
+    */
+   public void setClientAlias(String clientAlias)
+   {
+      this.clientAlias = clientAlias;
+   }
+   /*
+    * (non-Javadoc)
+    *  
+    * @see org.jboss.security.plugins.JaasSecurityDomainMBean#getServerAlias
+    */
+   @ManagementProperty(use = {ViewUse.CONFIGURATION}, description = "The preferred server alias to be used in an eventual SSL connection")
+   public String getServerAlias()
+   {
+      return keyStoreAlias;
+   }
+
+   /*
+    * (non-Javadoc)
+    * 
+    * @see org.jboss.security.plugins.JaasSecurityDomainMBean#setServerAlias(java.lang.String)
+    */
+   public void setServerAlias(String serverAlias)
+   {
+      this.keyStoreAlias = serverAlias;
+   }
+
+   /*
+    * (non-Javadoc)
+    * 
     * @see org.jboss.security.plugins.JaasSecurityDomainMBean#reloadKeyAndTrustStore()
     */
    @ManagementOperation(description = "Reload the key and trust stores", impact = Impact.WriteOnly)
@@ -886,7 +929,7 @@
             KeyManager[] keyManagers = keyMgr.getKeyManagers();
             for (int i = 0; i < keyManagers.length; i++)
             {
-               keyManagers[i] = new SecurityKeyManager((X509KeyManager) keyManagers[i], keyStoreAlias);
+               keyManagers[i] = new SecurityKeyManager((X509KeyManager) keyManagers[i], keyStoreAlias, clientAlias);
             }
          }
       }

Modified: branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/JaasSecurityDomainMBean.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -227,4 +227,30 @@
     * @param argument for the TrustStore provider
     */
    public void setTrustStoreProviderArgument(String argument);
+   
+   /**
+    * Gets the preferred client alias to be used in an eventual SSL connection
+    * @return client alias name
+    */
+   public String getClientAlias();
+
+   /**
+    * Sets the preferred client alias to be used in an eventual SSL connection
+    * @param clientAlias client alias name
+    */
+   public void setClientAlias(String clientAlias);
+
+   /**
+    * Gets the preferred server alias to be used in an eventual SSL connection
+    * @deprecated use getKeyStoreAlias() instead
+    * @return client alias name
+    */
+   public String getServerAlias();
+
+   /**
+    * Sets the preferred server alias to be used in an eventual SSL connection
+    * @deprecated use setKeyStoreAlias(String) instead
+    * @param clientAlias client alias name
+    */
+   public void setServerAlias(String serverAlias);
 }

Modified: branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/SecurityKeyManager.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/SecurityKeyManager.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/plugins/SecurityKeyManager.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -38,12 +38,15 @@
 {
    private X509KeyManager delegate;
    
-   private String keyAlias;
+   private String serverAlias;
    
-   public SecurityKeyManager(X509KeyManager keyManager, String alias)
+   private String clientAlias;
+   
+   public SecurityKeyManager(X509KeyManager keyManager, String serverAlias, String clientAlias)
    {
       this.delegate = keyManager;
-      this.keyAlias = alias;
+      this.serverAlias = serverAlias;
+      this.clientAlias = clientAlias;
    }
 
    /**
@@ -51,7 +54,9 @@
     */
    public String chooseClientAlias(String[] keyType, Principal[] issuers, Socket socket)
    {
-      return keyAlias;
+      if (clientAlias != null)
+         return clientAlias;
+      return delegate.chooseClientAlias(keyType, issuers, socket);
    }
 
    /**
@@ -59,7 +64,9 @@
     */
    public String chooseServerAlias(String keyType, Principal[] issuers, Socket socket)
    {
-      return keyAlias;
+      if (serverAlias != null)
+         return serverAlias;
+      return delegate.chooseServerAlias(keyType, issuers, socket);
    }
 
    /**

Modified: branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/ssl/JBossSSLConfiguration.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/ssl/JBossSSLConfiguration.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/security/src/main/java/org/jboss/security/ssl/JBossSSLConfiguration.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -324,7 +324,7 @@
       {
          for (int i = 0; i < keyManagers.length; i++)
          {
-            keyManagers[i] = new SecurityKeyManager((X509KeyManager) keyManagers[i], keyStoreAlias);
+            keyManagers[i] = new SecurityKeyManager((X509KeyManager) keyManagers[i], keyStoreAlias, null);
          }
       }
       return keyManagers;

Modified: branches/JBoss-AS-6.0.x_ipv6/server/pom.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/pom.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/pom.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/ejb-deployer-jboss-beans.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/ejb-deployer-jboss-beans.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/ejb-deployer-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml (from rev 109413, trunk/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-clustered-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,86 @@
+<?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>
+    <!--  Disabled till we have EJB3 containers integrated with switchboard    
+    <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"/>
+                <!-- Disabled till we resolve the transient failures with EJB jndi dependencies
+                <inject bean="org.jboss.switchboard.EJBLocalRefResourceProvider"/>
+                <inject bean="org.jboss.switchboard.EJBRefResourceProvider"/>
+                <inject bean="org.jboss.switchboard.AnnotatedEJBRefResourceProvider"/>
+                -->
+                <inject bean="org.jboss.switchboard.BeanManagerResourceProvider"/>
+                <!-- 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: branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-jboss-beans.xml (from rev 109413, trunk/server/src/etc/deployers/switchboard-jboss-beans.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-jboss-beans.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/etc/deployers/switchboard-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,81 @@
+<?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>
+    <!--  Disabled till we have EJB3 containers integrated with switchboard    
+    <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"/>
+                <!-- Disabled till we resolve the transient failures with EJB jndi dependencies
+                <inject bean="org.jboss.switchboard.EJBLocalRefResourceProvider"/>
+                <inject bean="org.jboss.switchboard.EJBRefResourceProvider"/>
+                <inject bean="org.jboss.switchboard.AnnotatedEJBRefResourceProvider"/>
+                -->
+                <inject bean="org.jboss.switchboard.BeanManagerResourceProvider"/>
+                <!-- 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: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard (from rev 109413, trunk/server/src/main/java/org/jboss/as/switchboard)

Copied: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource (from rev 109413, trunk/server/src/main/java/org/jboss/as/switchboard/resource)

Copied: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider (from rev 109413, trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider)

Deleted: branches/JBoss-AS-6.0.x_ipv6/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	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java (from rev 109413, trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/ORBRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/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	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java (from rev 109413, trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/TransactionSynchronizationRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/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	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java (from rev 109413, trunk/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/as/switchboard/resource/provider/UserTransactionRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java (from rev 109413, trunk/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/deployment/Ejb2xComponentDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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;
@@ -50,6 +54,13 @@
 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;
@@ -65,6 +76,7 @@
 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.Environment;
 import org.jboss.metadata.javaee.spec.PersistenceContextReferenceMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceContextReferencesMetaData;
 import org.jboss.metadata.javaee.spec.PersistenceUnitReferenceMetaData;
@@ -74,6 +86,8 @@
 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 +161,8 @@
    
    /** EJB reference resolver */
    private EjbReferenceResolver ejbRefResolver;
+   
+   private JavaEEComponentInformer componentInformer;
 
    /**
     * Create a new AbstractWarDeployer.
@@ -154,6 +170,8 @@
    public AbstractWarDeployer()
    {
       super(JBossWebMetaData.class);
+      addInput(Barrier.class);
+      addInput(InjectionManager.class);
       setOutput(ServiceMetaData.class);
       setOutput(WarDeployment.class);
    }
@@ -282,7 +300,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,7 +752,55 @@
                dependencies.add(sdmd);
             }
          }
+         
+         // SwitchBoard
+         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();
+            if (webEnvironment != null)
+            {
+               // 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);
+               }
+            }
+         }
 
+         // TODO: We haven't yet integrated PU/PC and EJB reference providers in SwitchBoard.
+         // The following sections will be removed after the RPs are made available
+         
          // JBAS-6795 Add dependency on PersistenceUnit references
          PersistenceUnitReferencesMetaData puRefs = metaData.getPersistenceUnitRefs();
          if (puRefs != null)
@@ -784,7 +855,6 @@
                }
             }
          }
-         
 
          webModule.setDependencies(dependencies);
 
@@ -905,4 +975,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/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/server/src/main/java/org/jboss/web/deployers/AbstractWarDeployment.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/testsuite/build.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/build.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/build.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -390,6 +390,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"/>
+		        
 
     </path>
 
@@ -614,6 +620,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: branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/jsf.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/jsf.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/jsf.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/mdb.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/mdb.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/mdb.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -16,6 +16,13 @@
          </fileset>
       </jar>
 
+      <!-- wrap hornetq xml files -->
+      <jar destfile="${build.lib}/hornetq-xmls.jar">
+         <fileset dir="${build.resources}/hornetq">
+            <include name="**/*.xml"/>
+         </fileset>
+      </jar>
+
       <!-- build mdb.jar -->
       <jar destfile="${build.lib}/mdb.jar">
          <fileset dir="${build.classes}">

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/web.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/web.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/imports/sections/web.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -230,6 +230,7 @@
          <metainf dir="${build.resources}/web/META-INF">
             <include name="jboss-app.xml"/>
             <include name="jboss-structure.xml"/>
+            <include name="hornetq-jms.xml"/>
          </metainf>
          <fileset dir="${build.lib}">
             <include name="jbosstest-web-ejbs.jar"/>
@@ -691,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"/>
@@ -720,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: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/classloader/leak/clstore/ClassLoaderStore.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -127,10 +127,11 @@
             return null;
          }
          
-         fillMemory(weakReferenceOnLoader);
-         
+         fillMemory(weakReferenceOnLoader, leakAnalyzer);
+
          if (weakReferenceOnLoader.get() == null)
          {
+            log.debug("leakAnalyzer.forceGC() released CL ref");
             return null;
          }
          
@@ -175,30 +176,48 @@
       }
       else
       {
-         log.debug("JVMTI not active; using System.gc()");
-         System.gc();
-         Thread.sleep(1000);
-         
+         log.debug("JVMTI not active; using System.gc() to release references to " + weakReferenceOnLoader.get());
+
          if (weakReferenceOnLoader.get() != null)
-            fillMemory(weakReferenceOnLoader);
+            fillMemory(weakReferenceOnLoader, null);
          
          if (weakReferenceOnLoader.get() != null)
-            fillMemory(weakReferenceOnLoader);
+            fillMemory(weakReferenceOnLoader, null);
       }
-      
+      log.info("returning reference to classloader = " + weakReferenceOnLoader.get());
       return (ClassLoader) weakReferenceOnLoader.get();
    }
-   
-   private void fillMemory(WeakReference<ClassLoader> ref)
+
+   /**
+    * Request a full gc 
+    */
+   private void forceFullGCAndFinalize(LeakAnalyzer leakAnalyzer)
    {
+      if(leakAnalyzer != null)
+      {
+         leakAnalyzer.forceGC();
+      }
+      else
+      {
+         // encourage a full gc
+         for (int looper =0; looper < 5; looper++)
+         {
+           System.gc();
+         }
+
+      }
+     System.runFinalization();
+   }
+    
+   private void fillMemory(WeakReference<ClassLoader> ref, LeakAnalyzer leakAnalyzer)
+   {
       Runtime rt = Runtime.getRuntime();
       int[] adds = { 0, 10, 20, 30, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49 };
       for (int i = 0; i < adds.length; i++) 
       {
           int toAdd = adds[i];
-          System.gc();
-          System.runFinalization();
-          
+          forceFullGCAndFinalize(leakAnalyzer);
+
           if (ref.get() == null)
              break;
           
@@ -210,7 +229,7 @@
           String pct = (95 + (toAdd/10)) + "." + (toAdd - ((toAdd/10) * 10));
           int bucket = create / 10000;
           log.info("Filling " + pct + "% of free memory. Free memory=" + avail + 
-                   " Total Memory=" + rt.totalMemory() + " Max Memory=" + rt.maxMemory());
+                   " Total Memory=" + rt.totalMemory() + " Max Memory=" + rt.maxMemory() +", target ref = " + ref.get());
           
           try
           {
@@ -226,9 +245,8 @@
           catch (Throwable t)
           {
              bytez = null;
-             System.gc();
-             System.runFinalization();
-             log.warn("Caught throwable filling memory: " + t);
+             forceFullGCAndFinalize(leakAnalyzer);
+             log.warn("Caught throwable filling memory: " + t + ", target ref = " + ref.get());
              break;
           }       
           finally
@@ -241,7 +259,7 @@
              }
              catch (InterruptedException ignored)
              {
-               log.warn("Interrupted");
+               log.warn("Interrupted " +", target ref = " + ref.get());
                break;
              }
           }
@@ -267,9 +285,9 @@
       
       if (ref.get() != null)
       {
-         System.gc();
-         System.runFinalization();
+         forceFullGCAndFinalize(leakAnalyzer);
       }
+      log.warn("fillMemory returning ref = " + ref.get());
    }
    
    public void removeClassLoader(String key)

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/BuddyReplicationFailoverUnitTestCase.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/BuddyReplicationFailoverUnitTestCase.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/BuddyReplicationFailoverUnitTestCase.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -35,12 +35,13 @@
 import junit.framework.Test;
 import junit.framework.TestCase;
 
-import org.infinispan.manager.CacheContainer;
+import org.infinispan.manager.EmbeddedCacheManager;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
 import org.jboss.metadata.web.jboss.ReplicationGranularity;
 import org.jboss.metadata.web.jboss.ReplicationTrigger;
 import org.jboss.test.cluster.testutil.CacheConfigTestSetup;
+import org.jboss.test.cluster.testutil.SessionTestUtil;
 import org.jboss.test.cluster.web.mocks.InvalidateSessionRequestHandler;
 import org.jboss.test.cluster.web.mocks.SetAttributesRequestHandler;
 import org.jboss.web.tomcat.service.session.JBossCacheManager;
@@ -52,7 +53,7 @@
  */
 public class BuddyReplicationFailoverUnitTestCase extends TestCase
 {
-   protected static CacheContainer[] cacheContainers = new CacheContainer[4];
+   protected static EmbeddedCacheManager[] cacheContainers = new EmbeddedCacheManager[4];
 
    protected static long testId = System.currentTimeMillis();
    
@@ -89,7 +90,14 @@
       {
          if (manager != null)
          {
-            manager.stop();
+            try
+            {
+               manager.stop();
+            }
+            catch (Exception e)
+            {
+               log.warn(e.getMessage(), e);
+            }
          }
       }
       
@@ -132,7 +140,7 @@
       
       this.log.info("Sleeping");
       
-      sleepThread(1100); 
+      sleepThread(1100);
       
       this.log.info("Run passivation");
       
@@ -170,8 +178,6 @@
       log.info("++++ Starting testFailoverAndFailBack ++++");
       
       String warname = String.valueOf(++testId);
-      try
-      {
       // A war with a maxInactive of 30 mins and no maxIdle
       this.startManagers(warname, 1800000, -1, -1);
       
@@ -182,6 +188,21 @@
       
       String id = setHandler.getSessionId();     
       
+      // Find a node 
+      int localIndex = 0;
+      int remoteIndex = 0;
+      for (int i = 0; i < managers.length; ++i)
+      {
+         if (managers[i].getDistributedCacheManager().isLocal(id))
+         {
+            localIndex = i;
+         }
+         else
+         {
+            remoteIndex = i;
+         }
+      }
+      
       // Modify
       log.info("modifying session");
       setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(1)), false);
@@ -191,38 +212,44 @@
       // Failover and modify
       log.info("failing over");
       setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(2)), false);
-      invokeRequest(managers[3], setHandler, id);      
+      invokeRequest(managers[localIndex], setHandler, id);      
       assertEquals(getAttributeValue(1), setHandler.getCheckedAttributes().get("count"));       
       
       // Modify
       log.info("modifying session");
       setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(3)), false);
-      invokeRequest(managers[3], setHandler, id);      
+      invokeRequest(managers[localIndex], setHandler, id);      
       assertEquals(getAttributeValue(2), setHandler.getCheckedAttributes().get("count"));     
       
+      // Failover and modify
+      log.info("failing over");
+      setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(2)), false);
+      invokeRequest(managers[remoteIndex], setHandler, id);      
+      assertEquals(getAttributeValue(3), setHandler.getCheckedAttributes().get("count"));       
+      
+      // Modify
+      log.info("modifying session");
+      setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(3)), false);
+      invokeRequest(managers[remoteIndex], setHandler, id);      
+      assertEquals(getAttributeValue(4), setHandler.getCheckedAttributes().get("count"));     
+      
       // Failback and modify
       log.info("failing back");
       setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(4)), false);
       invokeRequest(managers[0], setHandler, id);      
-      assertEquals(getAttributeValue(3), setHandler.getCheckedAttributes().get("count"));  
+      assertEquals(getAttributeValue(5), setHandler.getCheckedAttributes().get("count"));  
       
       // Invalidate 
       log.info("invalidating");
       InvalidateSessionRequestHandler invalidationHandler = new InvalidateSessionRequestHandler(Collections.singleton("count"), false);
       invokeRequest(managers[0], invalidationHandler, id);      
-      assertEquals(getAttributeValue(4), invalidationHandler.getCheckedAttributes().get("count"));
+      assertEquals(getAttributeValue(6), invalidationHandler.getCheckedAttributes().get("count"));
       
       // Reestablish
       log.info("re-establishing");
       setHandler = new SetAttributesRequestHandler(Collections.singletonMap("count", getAttributeValue(0)), false);
       invokeRequest(managers[0], invalidationHandler, id);      
       assertNull(setHandler.getCheckedAttributes().get("count"));      
-      }
-      catch (Throwable e)
-      {
-         log.error(e.getMessage(), e);
-         throw e;
-      }
    }
    
    protected void startManagers(String warname, int maxInactive, int maxIdle, int maxUnreplicated) throws Exception
@@ -234,5 +261,7 @@
          managers[i].init(warname, metadata);
          managers[i].start();
       }
+      
+      SessionTestUtil.blockUntilViewsReceived(cacheContainers, 5000L);
    }
 }

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/simpleweb/test/SessionCountUnitTestCase.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -46,7 +46,7 @@
 {
    private static final Logger log = Logger.getLogger(SessionCountUnitTestCase.class);
    
-   private static long testCount = System.currentTimeMillis();
+   private static int managerIndex = 1;
    
    private JGroupsSystemPropertySupport jgroupsSupport;
    private EmbeddedCacheManager[] cacheContainers = new EmbeddedCacheManager[2];
@@ -134,14 +134,14 @@
    {
       log.info("Enter testStandaloneMaxSessions");
       
-      ++testCount;
+      String warName = "test" + ++managerIndex;
       
       cacheContainers[0] = SessionTestUtil.createCacheContainer(true, null, false, false);
       cacheContainers[0].start();
-      managers[0] = SessionTestUtil.createManager("test" + testCount, 5, cacheContainers[0], null);
+      managers[0] = SessionTestUtil.createManager(warName, 5, cacheContainers[0], null);
        
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(2);
-      managers[0].init("test.war", webMetaData);
+      managers[0].init(warName, webMetaData);
       
       managers[0].start();
       
@@ -179,14 +179,14 @@
    {
       log.info("Enter testStandaloneMaxSessionsWithMaxIdle");
       
-      ++testCount;
-      String passDir = getPassivationDir(testCount, 1);
+      String warName = "test" + ++managerIndex;
+      String passDir = getPassivationDir(managerIndex, 1);
       cacheContainers[0] = SessionTestUtil.createCacheContainer(true, passDir, false, false);
       cacheContainers[0].start();
-      managers[0] = SessionTestUtil.createManager("test" + testCount, 5, cacheContainers[0], null);
+      managers[0] = SessionTestUtil.createManager(warName, 5, cacheContainers[0], null);
        
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(1, true, 1, -1);
-      managers[0].init("test.war", webMetaData);
+      managers[0].init(warName, webMetaData);
       
       managers[0].start();
       
@@ -234,14 +234,14 @@
    {
       log.info("Enter testStandaloneMaxSessionsWithMinIdle");
       
-      ++testCount;
-      String passDir = getPassivationDir(testCount, 1);
+      String warName = "test" + ++managerIndex;
+      String passDir = getPassivationDir(managerIndex, 1);
       cacheContainers[0] = SessionTestUtil.createCacheContainer(true, passDir, false, false);
       cacheContainers[0].start();
-      managers[0] = SessionTestUtil.createManager("test" + testCount, 5, cacheContainers[0], null);
+      managers[0] = SessionTestUtil.createManager(warName, 5, cacheContainers[0], null);
       
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(1, true, 3, 1);
-      managers[0].init("test.war", webMetaData);
+      managers[0].init(warName, webMetaData);
       
       managers[0].start();
       
@@ -289,15 +289,15 @@
    {
       log.info("Enter testReplicatedMaxSessions");
       
-      ++testCount;
+      String warName = "test" + ++managerIndex;
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(1);
       for (int i = 0; i < cacheContainers.length; ++i)
       {
          cacheContainers[i] = SessionTestUtil.createCacheContainer(false, null, false, false);
          cacheContainers[i].start();
          
-         managers[i] = SessionTestUtil.createManager("test" + testCount, 1, cacheContainers[i], null);
-         managers[i].init("test.war", webMetaData);
+         managers[i] = SessionTestUtil.createManager(warName, 1, cacheContainers[i], null);
+         managers[i].init(warName, webMetaData);
          managers[i].start();
          
          assertFalse("Passivation is disabled", managers[i].isPassivationEnabled());
@@ -338,16 +338,16 @@
    {
       log.info("Enter testReplicatedMaxSessionsWithMaxIdle");
       
-      ++testCount;
+      String warName = "test" + ++managerIndex;
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(1, true, 1, -1);
       for (int i = 0; i < cacheContainers.length; ++i)
       {
-         String passDir = getPassivationDir(testCount, i + 1);
+         String passDir = getPassivationDir(managerIndex, i + 1);
          cacheContainers[i] = SessionTestUtil.createCacheContainer(false, passDir, false, false);
          cacheContainers[i].start();
          
-         managers[i] = SessionTestUtil.createManager("test" + testCount, 1, cacheContainers[i], null);
-         managers[i].init("test.war", webMetaData);
+         managers[i] = SessionTestUtil.createManager(warName, 1, cacheContainers[i], null);
+         managers[i].init(warName, webMetaData);
          managers[i].start();
          
          assertTrue("Passivation is enabled", managers[i].isPassivationEnabled());
@@ -393,16 +393,16 @@
    {
       log.info("Enter testReplicatedMaxSessionsWithMinIdle");
       
-      ++testCount;
+      String warName = "test" + ++managerIndex;
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(1, true, 3, 1);
       for (int i = 0; i < cacheContainers.length; ++i)
       {
-         String passDir = getPassivationDir(testCount, i + 1);
+         String passDir = getPassivationDir(managerIndex, i + 1);
          cacheContainers[i] = SessionTestUtil.createCacheContainer(false, passDir, false, false);
          cacheContainers[i].start();
          
-         managers[i] = SessionTestUtil.createManager("test" + testCount, 1, cacheContainers[i], null);
-         managers[i].init("test.war", webMetaData);
+         managers[i] = SessionTestUtil.createManager(warName, 1, cacheContainers[i], null);
+         managers[i].init(warName, webMetaData);
          managers[i].start();
          
          assertTrue("Passivation is enabled", managers[i].isPassivationEnabled());
@@ -449,16 +449,16 @@
    {
       log.info("Enter testTotalReplication");
       
-      ++testCount;
+      String warName = "test" + ++managerIndex;
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(1, true, 3, 1);
       for (int i = 0; i < cacheContainers.length; ++i)
       {
-         String passDir = getPassivationDir(testCount, i + 1);
+         String passDir = getPassivationDir(managerIndex, i + 1);
          cacheContainers[i] = SessionTestUtil.createCacheContainer(false, passDir, true, false);
          cacheContainers[i].start();
          
-         managers[i] = SessionTestUtil.createManager("test" + testCount, 1, cacheContainers[i], null);
-         managers[i].init("test.war", webMetaData);
+         managers[i] = SessionTestUtil.createManager(warName, 1, cacheContainers[i], null);
+         managers[i].init(warName, webMetaData);
          managers[i].start();
          
          assertTrue("Passivation is enabled", managers[i].isPassivationEnabled());
@@ -514,14 +514,14 @@
    private void standaloneWarRedeployTest(boolean restartCache)
          throws Exception
    {
-      ++testCount;
-      String passDir = getPassivationDir(testCount, 1);
+      String warName = "test" + ++managerIndex;
+      String passDir = getPassivationDir(managerIndex, 1);
       cacheContainers[0] = SessionTestUtil.createCacheContainer(true, passDir, false, false);
       cacheContainers[0].start();
-      managers[0] = SessionTestUtil.createManager("test" + testCount, 300, cacheContainers[0], null);
+      managers[0] = SessionTestUtil.createManager(warName, 300, cacheContainers[0], null);
       
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(2, true, 3, 1);
-      managers[0].init("test.war", webMetaData);
+      managers[0].init(warName, webMetaData);
       
       managers[0].start();
       
@@ -563,13 +563,13 @@
       {
          cacheContainers[0].stop();
          
-         passDir = getPassivationDir(testCount, 1);
+         passDir = getPassivationDir(managerIndex, 1);
          cacheContainers[0] = SessionTestUtil.createCacheContainer(true, passDir, false, false);
       }
       
-      managers[0] = SessionTestUtil.createManager("test" + testCount, 5, cacheContainers[0], null);
+      managers[0] = SessionTestUtil.createManager(warName, 5, cacheContainers[0], null);
       
-      managers[0].init("test.war", webMetaData);
+      managers[0].init(warName, webMetaData);
       
       managers[0].start();
       
@@ -626,16 +626,16 @@
                                           boolean purgeOnStartStop)
          throws Exception
    {
-      ++testCount;
+      String warName = "test" + ++managerIndex;
       JBossWebMetaData webMetaData = SessionTestUtil.createWebMetaData(2, true, 30, 1);
       for (int i = 0; i < cacheContainers.length; ++i)
       {
-         String passDir = getPassivationDir(testCount, i + 1);
+         String passDir = getPassivationDir(managerIndex, i + 1);
          cacheContainers[i] = SessionTestUtil.createCacheContainer(false, passDir, totalReplication, purgeOnStartStop);
          cacheContainers[i].start();
          
-         managers[i] = SessionTestUtil.createManager("test" + testCount, 300, cacheContainers[i], null);
-         managers[i].init("test.war", webMetaData);
+         managers[i] = SessionTestUtil.createManager(warName, 300, cacheContainers[i], null);
+         managers[i].init(warName, webMetaData);
          managers[i].start();
          
          assertTrue("Passivation is enabled", managers[i].isPassivationEnabled());
@@ -699,14 +699,14 @@
       {
          cacheContainers[0].stop();
          
-         String passDir = getPassivationDir(testCount, 1);
+         String passDir = getPassivationDir(managerIndex, 1);
          cacheContainers[0] = SessionTestUtil.createCacheContainer(false, passDir, totalReplication, purgeOnStartStop);
          cacheContainers[0].start();
       }
       
-      managers[0] = SessionTestUtil.createManager("test" + testCount, 300, cacheContainers[0], null);
+      managers[0] = SessionTestUtil.createManager(warName, 300, cacheContainers[0], null);
       
-      managers[0].init("test.war", webMetaData);
+      managers[0].init(warName, webMetaData);
       managers[0].start();
       
       assertTrue("Passivation is enabled", managers[0].isPassivationEnabled());
@@ -742,8 +742,9 @@
          assertEquals("Expired session count correct", 0, managers[0].getExpiredSessionCount());
          assertEquals("Passivated session count correct", 0, managers[0].getPassivatedSessionCount());         
       }
-      
-      if (!fullRestart)
+
+      // Due to ISPN-658 workaround, In DIST, restarting cache IS a full restart, so ignore this case for now
+      if (!fullRestart && totalReplication)
       {
          assertEquals("Session count correct", 2, managers[1].getActiveSessionCount());
          assertEquals("Local session count correct", 2, managers[1].getLocalActiveSessionCount());

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/JChannelFactoryOverrideUnitTestCase.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/JChannelFactoryOverrideUnitTestCase.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/test/JChannelFactoryOverrideUnitTestCase.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -30,14 +30,13 @@
 
 import junit.framework.TestCase;
 
+import org.jboss.ha.core.channelfactory.ProtocolData;
+import org.jboss.ha.core.channelfactory.ProtocolParameter;
 import org.jboss.ha.core.channelfactory.ProtocolStackConfigInfo;
 import org.jboss.ha.framework.server.JChannelFactory;
-import org.jboss.ha.framework.server.managed.ProtocolDataProtocolStackConfigurator;
 import org.jboss.logging.Logger;
 import org.jgroups.Channel;
 import org.jgroups.JChannel;
-import org.jgroups.conf.ProtocolData;
-import org.jgroups.conf.ProtocolParameter;
 import org.jgroups.protocols.TP;
 
 /**
@@ -134,19 +133,19 @@
       assertNotNull(origTransport);
       ProtocolParameter[] origParams = origTransport.getParametersAsArray();
       ProtocolParameter[] newParams = origParams.clone();      
-      ProtocolData newTransport = new ProtocolData(origTransport.getProtocolName(), origTransport.getDescription(), origTransport.getClassName(), newParams);
+      ProtocolData newTransport = new ProtocolData(origTransport.getProtocolName(), origTransport.getClassName(), newParams);
       ProtocolParameter overrideParam = new ProtocolParameter("max_bundle_size", "50000");
       newTransport.override(new ProtocolParameter[]{overrideParam});
       ProtocolData[] newConfig = origConfig.clone();
       newConfig[0] = newTransport;
       
-      ProtocolStackConfigInfo updated = new ProtocolStackConfigInfo(unshared1.getName(), unshared1.getDescription(), new ProtocolDataProtocolStackConfigurator(newConfig));
+      ProtocolStackConfigInfo updated = new ProtocolStackConfigInfo(unshared1.getName(), unshared1.getDescription(), newConfig);
       
       Map<String, ProtocolStackConfigInfo> newMap = new HashMap<String, ProtocolStackConfigInfo>(origMap);
       newMap.put("unshared1", updated);
     
       ProtocolData[] addedConfig = origConfig.clone();
-      ProtocolStackConfigInfo added = new ProtocolStackConfigInfo("added", "added", new ProtocolDataProtocolStackConfigurator(addedConfig));
+      ProtocolStackConfigInfo added = new ProtocolStackConfigInfo("added", "added", addedConfig);
       newMap.put("added", added);
       
       assertTrue(newMap.containsKey("shared2"));

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/web/test/SessionPassivationTestCase.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/web/test/SessionPassivationTestCase.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/defaultcfg/web/test/SessionPassivationTestCase.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -225,14 +225,6 @@
        deployed1 = false;
        undeploy(adaptors[1]);
        
-       if (!isCleanCacheOnRedeploy())
-       {
-          // Make sure the cache is not stopped during redeploy due to
-          // no services using it. Tell CacheHelper to hold a ref.
-//          String cacheConfigName = System.getProperty(SessionTestUtil.CACHE_CONFIG_PROP, "standard-session-cache");
-//          SessionTestUtil.setCacheConfigName(adaptors[0], cacheConfigName);
-       }
-       
        sleep(2000);
           
        // Create an instance of HttpClient.
@@ -259,16 +251,8 @@
        // Get the Attribute using the same session ID
        SessionTestUtil.setCookieDomainToThisServer(client, servers_[0]);
        
-       if (isCleanCacheOnRedeploy())
-       {
-          // We don't expect data to survive a restart
-          makeGetFailed(client, baseURL0_ +getUrl);
-       }
-       else
-       {                 
-          String attr0 = makeGet(client, baseURL0_ +getUrl);          
-          assertEquals("attributeMatches after activation", attr0, attr);
-       }
+       // We don't expect data to survive a restart
+       makeGetFailed(client, baseURL0_ +getUrl);
        
        getLog().debug("Exit testRedeploy");
        

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/CacheConfigTestSetup.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/CacheConfigTestSetup.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/CacheConfigTestSetup.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -101,6 +101,8 @@
             }
             cacheContainers[i] = SessionTestUtil.createCacheContainer(local, cacheStore, totalReplication, true);
             cacheContainers[i].start();
+            // Request default cache, thereby making sure channel is started
+            cacheContainers[i].getCache();
          }
       }
       finally
@@ -120,7 +122,14 @@
    {
       for (CacheContainer cacheContainer: cacheContainers)
       {
-         cacheContainer.stop();
+         try
+         {
+            cacheContainer.stop();
+         }
+         catch (Exception e)
+         {
+            e.printStackTrace(System.err);
+         }
       }
       
       for (String path : cleanupPaths)

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/SessionTestUtil.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/SessionTestUtil.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/cluster/testutil/SessionTestUtil.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -31,6 +31,7 @@
 import java.util.Collections;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 
 import javax.servlet.ServletException;
 
@@ -49,12 +50,14 @@
 import org.infinispan.config.Configuration;
 import org.infinispan.config.Configuration.CacheMode;
 import org.infinispan.config.GlobalConfiguration;
+import org.infinispan.lifecycle.ComponentStatus;
 import org.infinispan.loaders.CacheLoaderConfig;
 import org.infinispan.loaders.file.FileCacheStoreConfig;
 import org.infinispan.manager.CacheContainer;
 import org.infinispan.manager.DefaultCacheManager;
 import org.infinispan.manager.EmbeddedCacheManager;
 import org.infinispan.remoting.transport.Address;
+import org.infinispan.transaction.tm.BatchModeTransactionManager;
 import org.infinispan.util.concurrent.IsolationLevel;
 import org.jboss.ha.ispn.DefaultCacheContainer;
 import org.jboss.logging.Logger;
@@ -134,59 +137,172 @@
 
       return manager;
    }
+
+   private static volatile int containerIndex = 1;
    
    public static EmbeddedCacheManager createCacheContainer(boolean local, String passivationDir, boolean totalReplication, boolean purgeCacheLoader) throws Exception
    {
-      GlobalConfiguration globalConfig = local ? GlobalConfiguration.getNonClusteredDefault() : GlobalConfiguration.getClusteredDefault();
-      globalConfig.setClusterName("testing");
-      globalConfig.setStrictPeerToPeer(false);
+      GlobalConfiguration global = local ? GlobalConfiguration.getNonClusteredDefault() : GlobalConfiguration.getClusteredDefault();
+      global.setClusterName("testing");
+      global.setCacheManagerName("container" + containerIndex++);
+      global.setStrictPeerToPeer(false);
 
-      Configuration defaultConfig = new Configuration();
-      defaultConfig.setInvocationBatchingEnabled(true);
-      defaultConfig.setIsolationLevel(IsolationLevel.REPEATABLE_READ);
-      defaultConfig.setSyncReplTimeout(20000);
-      defaultConfig.setLockAcquisitionTimeout(15000);
-      defaultConfig.setCacheMode(local ? CacheMode.LOCAL : (totalReplication ? CacheMode.REPL_SYNC : CacheMode.DIST_SYNC));
+      Configuration config = new Configuration();
+      config.setInvocationBatchingEnabled(true);
+      config.setIsolationLevel(IsolationLevel.REPEATABLE_READ);
+      config.setSyncReplTimeout(20000);
+      config.setLockAcquisitionTimeout(15000);
+      config.setCacheMode(local ? CacheMode.LOCAL : (totalReplication ? CacheMode.REPL_SYNC : CacheMode.DIST_SYNC));
       
-      CacheMode mode = defaultConfig.getCacheMode();
-      defaultConfig.setFetchInMemoryState(mode.isReplicated());
+      CacheMode mode = config.getCacheMode();
 
+      config.setFetchInMemoryState(mode.isReplicated());
+      
       // Block for commits -- no races between test driver and replication
-      defaultConfig.setSyncCommitPhase(true);
-      defaultConfig.setSyncRollbackPhase(true);
+      config.setSyncCommitPhase(true);
+      config.setSyncRollbackPhase(true);
       
       if (passivationDir != null)
       {
          CacheLoaderManagerConfig managerConfig = new CacheLoaderManagerConfig();
          managerConfig.setPassivation(true);
-         managerConfig.setPreload(true);
+         managerConfig.setPreload(!purgeCacheLoader);
          
          FileCacheStoreConfig fileConfig = new FileCacheStoreConfig();
          fileConfig.setLocation(passivationDir);
-         fileConfig.setFetchPersistentState(!mode.isDistributed());
+         fileConfig.setFetchPersistentState(mode.isReplicated());
          fileConfig.setPurgeOnStartup(purgeCacheLoader);
          
          managerConfig.setCacheLoaderConfigs(Collections.<CacheLoaderConfig>singletonList(fileConfig));
          
-         defaultConfig.setCacheLoaderManagerConfig(managerConfig);
+         config.setCacheLoaderManagerConfig(managerConfig);
       }
       
-      EmbeddedCacheManager container = new DefaultCacheManager(globalConfig, defaultConfig, false);
+      final EmbeddedCacheManager sessionContainer = new DefaultCacheManager(global, config, false);
       
-      if (mode.isDistributed())
+      global = local ? GlobalConfiguration.getNonClusteredDefault() : GlobalConfiguration.getClusteredDefault();
+      global.setClusterName("testing-jvmroute");
+      global.setCacheManagerName("container" + containerIndex++);
+      global.setStrictPeerToPeer(false);
+      
+      config = new Configuration();
+      config.setInvocationBatchingEnabled(true);
+      config.setIsolationLevel(IsolationLevel.REPEATABLE_READ);
+      config.setSyncReplTimeout(20000);
+      config.setLockAcquisitionTimeout(15000);
+      config.setCacheMode(CacheMode.REPL_SYNC);
+      config.setFetchInMemoryState(true);
+      config.setSyncCommitPhase(true);
+      config.setSyncRollbackPhase(true);
+      
+      final EmbeddedCacheManager jvmRouteContainer = new DefaultCacheManager(global, config, false);
+      
+      return new EmbeddedCacheManager()
       {
-         Configuration config = new Configuration();
-         config.setCacheMode(CacheMode.REPL_ASYNC);
-         config.setFetchInMemoryState(true);
-         CacheLoaderManagerConfig managerConfig = new CacheLoaderManagerConfig();
-         managerConfig.setCacheLoaderConfigs(Collections.<CacheLoaderConfig>emptyList());
-         managerConfig.setPassivation(false);
-         config.setCacheLoaderManagerConfig(managerConfig);
+         @Override
+         public <K, V> Cache<K, V> getCache()
+         {
+            return sessionContainer.getCache();
+         }
 
-         container.defineConfiguration("jboss.web", config);
-      }
-      
-      return new DefaultCacheContainer(container);
+         @Override
+         public <K, V> Cache<K, V> getCache(String cacheName)
+         {
+            return cacheName.equals("jboss.web") ? jvmRouteContainer.<K, V>getCache() : sessionContainer.<K, V>getCache(cacheName);
+         }
+
+         @Override
+         public void start()
+         {
+            jvmRouteContainer.start();
+            sessionContainer.start();
+         }
+
+         @Override
+         public void stop()
+         {
+            sessionContainer.stop();
+            jvmRouteContainer.stop();
+         }
+
+         @Override
+         public void addListener(Object listener)
+         {
+            sessionContainer.addListener(listener);
+         }
+
+         @Override
+         public void removeListener(Object listener)
+         {
+            sessionContainer.removeListener(listener);
+         }
+
+         @Override
+         public Set<Object> getListeners()
+         {
+            return sessionContainer.getListeners();
+         }
+
+         @Override
+         public Configuration defineConfiguration(String cacheName, Configuration configurationOverride)
+         {
+            return sessionContainer.defineConfiguration(cacheName, configurationOverride);
+         }
+
+         @Override
+         public Configuration defineConfiguration(String cacheName, String templateCacheName, Configuration configurationOverride)
+         {
+            return sessionContainer.defineConfiguration(cacheName, templateCacheName, configurationOverride);
+         }
+
+         @Override
+         public String getClusterName()
+         {
+            return sessionContainer.getClusterName();
+         }
+
+         @Override
+         public List<Address> getMembers()
+         {
+            return sessionContainer.getMembers();
+         }
+
+         @Override
+         public Address getAddress()
+         {
+            return sessionContainer.getAddress();
+         }
+
+         @Override
+         public boolean isCoordinator()
+         {
+            return sessionContainer.isCoordinator();
+         }
+
+         @Override
+         public ComponentStatus getStatus()
+         {
+            return sessionContainer.getStatus();
+         }
+
+         @Override
+         public GlobalConfiguration getGlobalConfiguration()
+         {
+            return sessionContainer.getGlobalConfiguration();
+         }
+
+         @Override
+         public Configuration getDefaultConfiguration()
+         {
+            return sessionContainer.getDefaultConfiguration();
+         }
+
+         @Override
+         public Set<String> getCacheNames()
+         {
+            return sessionContainer.getCacheNames();
+         }
+      };
    }
    
    public static void setupContainer(String warName, String jvmRoute, Manager mgr)

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/ENCAnnotationsManagedBean.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -63,13 +63,13 @@
          mappedName="jbosstest/ejbs/UnsecuredEJB")
    StatelessSessionHome sshome;
    @EJB(name="ejb/CtsBmp", beanInterface=EntityHome.class, 
-         mappedName="jbosstest/ejbs/CtsBmp")
+         mappedName="ejbcts/BMPBean")
    EntityHome entityHome;
    @EJB(name="ejb/local/bean3", beanInterface=StatelessSessionLocalHome.class, 
          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: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/jsf/managed/SimpleManagedBean.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/mdb/test/MDBUnitTestCase.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/mdb/test/MDBUnitTestCase.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/mdb/test/MDBUnitTestCase.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -21,30 +21,16 @@
  */
 package org.jboss.test.mdb.test;
 
-import javax.jms.ObjectMessage;
-import javax.jms.Queue;
-import javax.jms.QueueConnection;
-import javax.jms.QueueConnectionFactory;
-import javax.jms.QueueSender;
-import javax.jms.QueueSession;
-import javax.jms.Session;
-import javax.jms.TextMessage;
-import javax.jms.Topic;
-import javax.jms.TopicConnection;
-import javax.jms.TopicConnectionFactory;
-import javax.jms.TopicPublisher;
-import javax.jms.TopicSession;
-import javax.management.ObjectName;
+import javax.jms.*;
 import javax.naming.NamingException;
 
-import junit.framework.Test;
-import junit.framework.TestSuite;
-
 import org.jboss.test.JBossJMSTestCase;
-import org.jboss.test.JBossTestCase;
 import org.jboss.test.JBossTestSetup;
 import org.jboss.test.mdb.bean.CustomMessage;
 
+import junit.framework.Test;
+import junit.framework.TestSuite;
+
 /**
  * Some simple tests of MDB. These could be much more elaborated.
  * These are also largely useless as they don't validate that the mdb
@@ -277,17 +263,14 @@
          protected void setUp() throws Exception
          {
             super.setUp();
-            ClassLoader loader = Thread.currentThread().getContextClassLoader();
             MDBUnitTestCase.deployQueue("testObjectMessage");
-            deploy(loader.getResource("hornetq/hornetq-jms.xml").toString());
-            deploy(loader.getResource("hornetq/hornetq-queues.xml").toString());
+            deploy("hornetq-xmls.jar");
             deploy("mdb.jar");
          }
 
          protected void tearDown() throws Exception
          {
             super.tearDown();
-            ClassLoader loader = Thread.currentThread().getContextClassLoader();
             try
             {
                undeploy("mdb.jar");
@@ -298,20 +281,12 @@
             }
             try
             {
-               undeploy(loader.getResource("hornetq/hornetq-jms.xml").toString());
+               undeploy("hornetq-xmls.jar");
             }
             catch (Exception ignored)
             {
-               getLog().warn("Unable to undeploy hornetq/hornetq-jms.xml", ignored);
+               getLog().warn("Unable to undeploy hornetq-xmls.jar", ignored);
             }
-            try
-            {
-               undeploy(loader.getResource("hornetq/hornetq-queues.xml").toString());
-            }
-            catch (Exception ignored)
-            {
-               getLog().warn("Unable to undeploy hornetq/hornetq-jms.xml", ignored);
-            }
             MDBUnitTestCase.undeployDestinations();
          }
       };

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/ENCTester.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/main/org/jboss/test/web/servlets/StandaloneENCAnnotationsServlet.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -21,10 +21,6 @@
  */
 package org.jboss.test.web.servlets;
 
-import java.io.IOException;
-import java.io.PrintWriter;
-import java.util.Date;
-
 import javax.annotation.Resource;
 import javax.annotation.Resources;
 import javax.ejb.EJB;
@@ -36,6 +32,10 @@
 import javax.servlet.http.HttpServletResponse;
 import javax.sql.DataSource;
 
+import java.io.IOException;
+import java.io.PrintWriter;
+import java.util.Date;
+
 import org.jboss.logging.Logger;
 import org.jboss.test.web.mock.EntityHome;
 import org.jboss.test.web.mock.StatelessSessionHome;
@@ -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")

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/channelfactory/stacks.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/channelfactory/stacks.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/channelfactory/stacks.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -56,7 +56,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -116,7 +117,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -175,7 +177,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -234,7 +237,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -284,7 +288,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -332,7 +337,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -391,7 +397,8 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/drm/drm-test-stacks.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/drm/drm-test-stacks.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/drm/drm-test-stacks.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -27,7 +27,8 @@
                         shun="false"
                         view_bundling="true"
                         view_ack_collection_timeout="5000"/>
-            <FC max_credits="2000000" min_threshold="0.10"/>
+            <UFC max_credits="2000000"/>
+            <MFC max_credits="2000000"/>
             <FRAG2 frag_size="60000"/>
             <pbcast.STATE_TRANSFER/>
             <pbcast.FLUSH timeout="0"/>
@@ -57,7 +58,8 @@
                         shun="false"
                         view_bundling="true"
                         view_ack_collection_timeout="5000"/>
-            <FC max_credits="2000000" min_threshold="0.10"/>
+            <UFC max_credits="2000000"/>
+            <MFC max_credits="2000000"/>
             <FRAG2 frag_size="60000"/>
             <pbcast.STATE_TRANSFER/>
             <pbcast.FLUSH timeout="0"/>

Modified: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/ejb2/passexp/META-INF/passexp-stacks.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/ejb2/passexp/META-INF/passexp-stacks.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/cluster/ejb2/passexp/META-INF/passexp-stacks.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -56,7 +56,9 @@
                    shun="true"
                    view_bundling="true"
                    view_ack_collection_timeout="5000"/>
-          <FC max_credits="2000000" min_threshold="0.10"/>
+          <UFC max_credits="2000000"/>
+          <MFC max_credits="2000000"/>
+
           <FRAG2 frag_size="60000"/>
           <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
           <pbcast.STATE_TRANSFER/>
@@ -128,7 +130,8 @@
                         shun="true"
                         view_bundling="true"
                         view_ack_collection_timeout="5000"/>
-            <FC max_credits="2000000" min_threshold="0.10"/>
+            <UFC max_credits="2000000"/>
+            <MFC max_credits="2000000"/>
             <FRAG2 frag_size="60000"/>
             <!-- pbcast.STREAMING_STATE_TRANSFER use_reading_thread="true"/ -->
             <pbcast.STATE_TRANSFER/>

Copied: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/refs/resources/hornetq-jms.xml (from rev 109413, trunk/testsuite/src/resources/refs/resources/hornetq-jms.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/refs/resources/hornetq-jms.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/refs/resources/hornetq-jms.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/META-INF/hornetq-jms.xml (from rev 109413, trunk/testsuite/src/resources/web/META-INF/hornetq-jms.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/META-INF/hornetq-jms.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/META-INF/hornetq-jms.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,31 @@
+<?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>
+
+    <queue name="A">
+        <entry name="queue/A" />
+    </queue>
+
+    <queue name="MockQueueA">
+        <entry name="MockQueueA" />
+    </queue>
+    
+    <queue name="MockQueueB">
+        <entry name="MockQueueB" />
+    </queue>
+
+    <topic name="MockTopicA">
+        <entry name="MockTopicA"/>
+    </topic>
+
+    <topic name="testTopic">
+        <entry name="topic/testTopic"/>
+    </topic>
+
+</configuration>

Copied: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml (from rev 109413, trunk/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/html/jbosstest/WEB-INF/jboss-service.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml (from rev 109413, trunk/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/jsfinjection/WEB-INF/jboss-service.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/encbinding-jboss-beans.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/encbinding-jboss-beans.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/encbinding-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -25,7 +25,7 @@
         <annotation>@org.jboss.aop.microcontainer.aspects.jndi.JndiBinding(name="jbosstest/ejbs/local/ENCBean1")</annotation>
     </bean>
     <bean name="ENC/ejb/CtsBmp" class="org.jboss.test.web.mock.EntityHomeBean">
-        <annotation>@org.jboss.aop.microcontainer.aspects.jndi.JndiBinding(name="jbosstest/ejbs/CtsBmp")</annotation>
+        <annotation>@org.jboss.aop.microcontainer.aspects.jndi.JndiBinding(name="ejbcts/BMPBean")</annotation>
     </bean>
     
     <bean name="ENC/mdr/ConsumesProducesJNDIName" class="org.jboss.test.web.mock.QueueBean">

Copied: branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml (from rev 109413, trunk/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/testsuite/src/resources/web/simple-xmlonly/jboss-service.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/TomcatInjectionContainer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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.
@@ -142,9 +140,13 @@
    private static final Properties restrictedFilters = new Properties();
    private static final Properties restrictedListeners = new Properties();
    private static final Properties restrictedServlets = new Properties();
-   private List<Injector> defaultInjectors;
    // the naming component counter-part
    private JavaEEComponent component;
+   
+   /**
+    * Injection Manager
+    */
+   private InjectionManager injectionManager;
 
 
    static
@@ -201,7 +203,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,13 +221,10 @@
       assert this.webDD != null : "webDD is null (no JBossWebMetaData attachment in VFSDeploymentUnit)";
 
       this.component = component;
+      this.injectionManager = injectionManager;
    }
+   
 
-   public void setDefaultInjectors(List<Injector> injectors)
-   {
-      this.defaultInjectors = Collections.unmodifiableList(injectors);
-   }
-
    private void checkAccess(Class<?> clazz)
    {
       if (catalinaContext.getPrivileged())
@@ -372,28 +371,36 @@
       {
          final boolean trace = log.isTraceEnabled();
 
-         final ArrayList<Injector> allInjectors = new ArrayList<Injector>();
          Map<AccessibleObject, Injector> injectors = getEncInjectionsForObject(object);
-         if (injectors != null &&  injectors.size() > 0)
+         if (injectors == null || injectors.size() == 0)
          {
-            allInjectors.addAll(injectors.values());
+            if (trace)
+            {
+               log.trace("-- no injectors found for: " + object);
+            }
          }
-         if (defaultInjectors != null && defaultInjectors.size() > 0)
+         else
          {
-            allInjectors.addAll(defaultInjectors);
-         }
-         if (allInjectors.size() == 0)
-         {
             if (trace)
-               log.trace("-- no injectors found for: " + object);
-            return;
+            {
+               log.trace("-- doing injections for: " + object);
+            }
+            for (Injector injector : injectors.values())
+            {
+               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
          if (trace)
-            log.trace("-- doing injections for: " + object);
-         for (Injector injector : allInjectors)
          {
-            injector.inject(object);
+            log.trace("-- processing InjectionManager for : " + object);
          }
+         this.injectionManager.inject(object);
+
       }
 
    /**
@@ -481,7 +488,7 @@
 
       return injectors;
    }
-
+   
    /**
     * Check if the class is a dynamic bean.
     * 
@@ -562,7 +569,8 @@
    {
       // TODO injection handlers should be pluggable from XML
       handlers = new ArrayList<InjectionHandler<Environment>>();
-      try {
+      try
+      {
          InjectionHandler<Environment> webEjbHandler = new WebEJBHandler<Environment>(webDD, deploymentEndpointResolver, endpointMap, unit.getRelativePath());
          handlers.add(webEjbHandler);
       }
@@ -570,6 +578,7 @@
       {
          log.debug("EJB injection disabled", e);
       }
+
       handlers.add(new DependsHandler<Environment>());
       try
       {
@@ -580,15 +589,6 @@
       {
          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);
-      }
 
       ClassLoader old = Thread.currentThread().getContextClassLoader();
       ClassLoader webLoader = getClassloader();

Modified: branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/deployers/TomcatDeployment.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -30,11 +30,9 @@
 import org.apache.tomcat.util.modeler.Registry;
 import org.jboss.beans.metadata.api.annotations.Inject;
 import org.jboss.dependency.spi.ControllerContext;
-import org.jboss.dependency.spi.ControllerState;
 import org.jboss.deployers.spi.DeploymentException;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
 import org.jboss.deployers.vfs.spi.structure.VFSDeploymentUnit;
-import org.jboss.injection.Injector;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.web.jboss.JBossWebMetaData;
 import org.jboss.metadata.web.spec.TldMetaData;
@@ -69,7 +67,6 @@
 import java.security.CodeSource;
 import java.security.cert.Certificate;
 import java.util.ArrayList;
-import java.util.Collections;
 import java.util.HashMap;
 import java.util.HashSet;
 import java.util.Iterator;
@@ -198,24 +195,8 @@
 
       TomcatInjectionContainer injectionContainer = 
          new TomcatInjectionContainer(webApp, depUnit, context, 
-               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component);
+               getPersistenceUnitDependencyResolver(), config.getDynamicClassloaders(), component, this.getInjectionManager());
 
-      if (kernel != null)
-      {
-         // Look for a WBInjector bean defined for the current deployment unit. If not found, check the parent.
-         DeploymentUnit inspectedUnit = unit;
-         ControllerContext injectorControllerContext = null;
-         while (inspectedUnit != null && injectorControllerContext == null)
-         {
-            injectorControllerContext = kernel.getController().getContext(inspectedUnit.getName() + "_WBInjector", ControllerState.INSTANTIATED);
-            inspectedUnit = inspectedUnit.getParent();
-         }
-         if (injectorControllerContext != null)
-         {
-            injectionContainer.setDefaultInjectors(Collections.singletonList((Injector)injectorControllerContext.getTarget()));
-         }
-      }
-
       Loader webLoader = depUnit.getAttachment(Loader.class);
       if (webLoader == null)
          webLoader = getWebLoader(depUnit, metaData, loader, warUrl, injectionContainer);
@@ -414,8 +395,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 +405,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 +415,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: branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/tomcat/src/main/java/org/jboss/web/tomcat/service/injection/WebResourceHandler.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/webservices/pom.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/webservices/pom.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/webservices/pom.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -24,6 +24,39 @@
     </resources>
     <plugins>
       <plugin>
+        <artifactId>maven-compiler-plugin</artifactId>
+        <configuration>
+          <showDeprecation>false</showDeprecation>
+          <compilerArguments>
+            <endorseddirs>${project.build.directory}/endorsed</endorseddirs>
+          </compilerArguments>
+        </configuration>
+      </plugin>
+
+      <plugin>
+        <artifactId>maven-dependency-plugin</artifactId>
+        <executions>
+          <execution>
+            <phase>generate-sources</phase>
+            <goals>
+              <goal>copy</goal>
+            </goals>
+            <configuration>
+              <artifactItems>
+                <artifactItem>
+                  <groupId>org.jboss.spec.javax.xml.ws</groupId>
+                  <artifactId>jboss-jaxws-api_2.2_spec</artifactId>
+                  <type>jar</type>
+                  <overWrite>true</overWrite>
+                  <outputDirectory>${project.build.directory}/endorsed</outputDirectory>
+                </artifactItem>
+              </artifactItems>
+            </configuration>
+          </execution>
+        </executions>
+      </plugin>
+
+      <plugin>
         <artifactId>maven-assembly-plugin</artifactId>
         <executions>
           <execution>
@@ -83,6 +116,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: branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java (from rev 109413, trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/ServiceRefResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java (from rev 109413, trunk/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/webservices/src/main/java/org/jboss/webservices/integration/injection/WebServiceContextResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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: branches/JBoss-AS-6.0.x_ipv6/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/webservices/src/resources/jbossws-jboss.deployer/META-INF/stack-agnostic-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -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>

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/pom.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/pom.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/pom.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -23,6 +23,7 @@
            <plugin>
               <groupId>org.apache.maven.plugins</groupId>
               <artifactId>maven-shade-plugin</artifactId>
+              <version>1.4</version>
               <executions>
                  <execution>
                     <id>core-no-jsf</id>

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/assembly/src/main/assembly/resources/META-INF/weld-deployers-jboss-beans.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -118,8 +118,25 @@
       <depends>NameSpaces</depends>
   </bean>
 
-  <!--  UNCOMMENT THIS TO ENABLE WELD/MC INJECTION - This feature is currently very experimental and so not enabled by default  -->
+  <!--&lt;!&ndash;  UNCOMMENT THIS TO ENABLE WELD/MC INJECTION - This feature is currently very experimental and so not enabled by default  &ndash;&gt;-->
   <!-- Adds plugin to BeanMetaDataDeployer that installs WeldKernelControllerContexts -->
   <!-- bean name="WeldBeanMetaDataDeployerPlugin" class="org.jboss.weld.integration.deployer.mc.WeldBeanMetaDataDeployerPlugin"/ -->  
 
+    <!-- BeanInstantiatorDeployer supporting CDI constructor injection  -->
+    <bean name="org.jboss.ejb3.BeanInstantiatorDeployer" class="org.jboss.weld.integration.instantiator.RedirectingBeanInstantiatorDeployer">
+      <constructor>
+        <parameter class="org.jboss.ejb3.instantiator.spi.BeanInstantiator"><inject bean="org.jboss.ejb3.BeanInstantiator"/></parameter>
+        <parameter class="org.jboss.kernel.Kernel"><inject bean="jboss.kernel:service=Kernel"/></parameter>
+        <parameter class="org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer"><inject bean="NamingJavaEEComponentInformer"/></parameter>
+      </constructor>
+    </bean>
+
+  <bean name="org.jboss.switchboard.BeanManagerResourceProvider" class="org.jboss.weld.integration.deployer.jndi.BeanManagerResourceProvider">
+      <property name="moduleInformer"><inject bean="NamingJavaEEModuleInformer"/></property>
+  </bean>
+
+  <bean name="org.jboss.weld.integration.injection.Jsr299InjectorDeployer" class="org.jboss.weld.integration.injection.Jsr299InjectorDeployer">
+      <property name="kernelController"><inject bean="jboss.kernel:service=KernelController"/></property>
+  </bean>
+
 </deployment>

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/pom.xml
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/pom.xml	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/pom.xml	2010-11-22 22:27:16 UTC (rev 109414)
@@ -307,6 +307,18 @@
         <artifactId>jboss-reloaded-naming-deployers</artifactId>
         <scope>provided</scope>
     </dependency>
+    
+    <dependency>
+    	<groupId>org.jboss.switchboard</groupId>
+    	<artifactId>jboss-switchboard-mc-spi</artifactId>
+    	<scope>provided</scope>
+    </dependency>
+    
+    <dependency>
+    	<groupId>org.jboss.switchboard</groupId>
+    	<artifactId>jboss-switchboard-mc-impl</artifactId>
+    	<scope>provided</scope>
+    </dependency>
 
     <dependency>
       <groupId>org.jboss.test</groupId>
@@ -464,6 +476,16 @@
         </exclusion>
       </exclusions>
     </dependency>
+
+    <dependency>
+        <groupId>org.jboss.ejb3.instantiator</groupId>
+        <artifactId>jboss-ejb3-instantiator-deployer</artifactId>
+    </dependency>
+
+    <dependency>
+        <groupId>org.jboss.ejb3.instantiator</groupId>
+        <artifactId>jboss-ejb3-instantiator-impl</artifactId>
+    </dependency>
     
    </dependencies>
 

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/env/WebContainterIntegrationDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -1,3 +1,25 @@
+/*
+ * 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.weld.integration.deployer.env;
 
 import java.util.ArrayList;
@@ -34,23 +56,14 @@
    {
       if (DeployersUtils.isBootstrapBeanPresent(unit) && unit.getAttachment(DeployersUtils.WELD_FILES) != null)
       {
-         String injectorName = unit.getName() + "_WBInjector";
-         String bootstrapBeanName = DeployersUtils.getBootstrapBeanName(unit);
 
-         BeanMetaDataBuilder weldInjector = BeanMetaDataBuilder.createBuilder(injectorName, WeldInjector.class.getName());
-
-         weldInjector.addConstructorParameter(BootstrapBean.class.getName(), weldInjector.createInject(bootstrapBeanName));
-         weldInjector.addConstructorParameter(String.class.getName(), IdFactory.getIdFromClassLoader(unit.getClassLoader()));
-         weldInjector.setDestroy("cleanup");
-         unit.addAttachment(injectorName + "_" + BeanMetaData.class.getSimpleName(), weldInjector.getBeanMetaData());
-
          List<String> depends = deployment.getDepends();
          if (depends == null)
          {
             depends = new ArrayList<String>();
             deployment.setDepends(depends);
          }
-         depends.add(bootstrapBeanName);
+         depends.add(DeployersUtils.getBootstrapBeanName(unit));
       }
    }
 }

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanManagerResourceProvider.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanManagerResourceProvider.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanManagerResourceProvider.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/BeanManagerResourceProvider.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,64 @@
+/*
+ * 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.weld.integration.deployer.jndi;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+import org.jboss.switchboard.impl.resource.IndependentResource;
+import org.jboss.switchboard.impl.resource.LinkRefResource;
+import org.jboss.switchboard.javaee.environment.BeanManagerRefType;
+import org.jboss.switchboard.mc.spi.MCBasedResourceProvider;
+import org.jboss.switchboard.spi.Resource;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.util.JndiUtils;
+
+public class BeanManagerResourceProvider implements MCBasedResourceProvider<BeanManagerRefType>
+{
+
+   JavaEEModuleInformer moduleInformer;
+
+
+   public void setModuleInformer(JavaEEModuleInformer moduleInformer)
+   {
+      this.moduleInformer = moduleInformer;
+   }
+
+   public Resource provide(DeploymentUnit deploymentUnit, BeanManagerRefType type)
+   {
+      // TODO Auto-generated method stub
+      if (deploymentUnit.getAttachment(DeployersUtils.WELD_FILES) != null)
+      {
+         return new LinkRefResource(JndiUtils.getGlobalBeanManagerPath(moduleInformer, deploymentUnit));
+      }
+      else
+      {
+         return new IndependentResource(null);
+      }
+   }
+
+   public Class<BeanManagerRefType> getEnvironmentEntryType()
+   {
+      return BeanManagerRefType.class;
+   }
+
+}

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JBossBeanManagerObjectFactory.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -21,9 +21,7 @@
  */
 package org.jboss.weld.integration.deployer.jndi;
 
-import javax.naming.Context;
-import javax.naming.Name;
-import javax.naming.NamingException;
+import javax.naming.*;
 import javax.naming.spi.ObjectFactory;
 import java.util.Hashtable;
 import java.util.Map;
@@ -40,11 +38,12 @@
 {
    public Object getObjectInstance(Object o, Name name, Context context, Hashtable<?, ?> hashtable) throws Exception
    {
-      ClassLoader tccl = Thread.currentThread().getContextClassLoader();
-      Container container = Container.instance();
-      if (Container.available() && tccl != null)
+      Reference reference = (Reference) o;
+      StringRefAddr refAddr = (StringRefAddr) reference.get(JndiBinder.REFADDR_ID);
+      if (Container.available())
       {
-         String beanManagerId = IdFactory.getIdFromClassLoader(tccl);
+         Container container = Container.instance();
+         String beanManagerId = (String)refAddr.getContent();
          for (Map.Entry<BeanDeploymentArchive, BeanManagerImpl> mapElement : container.beanDeploymentArchives().entrySet())
          {
             if (mapElement.getKey().getId().equals(beanManagerId))

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/JndiBinder.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -25,6 +25,7 @@
 import javax.naming.Context;
 import javax.naming.NamingException;
 import javax.naming.Reference;
+import javax.naming.StringRefAddr;
 
 import org.jboss.beans.metadata.spi.BeanMetaData;
 import org.jboss.deployers.spi.DeploymentException;
@@ -34,7 +35,8 @@
 import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
 import org.jboss.reloaded.naming.service.NameSpaces;
 import org.jboss.weld.integration.deployer.DeployersUtils;
-import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.weld.integration.util.IdFactory;
+import org.jboss.weld.integration.util.JndiUtils;
 
 /**
  * This deployer intercepts BootstrapBean metadata,
@@ -47,7 +49,9 @@
  */
 public class JndiBinder
 {
-   public static final String BEAN_MANAGER_JNDI_SUBCONTEXT = "cdi";
+
+   public static final String REFADDR_ID = "id";
+
    private Context beanManagerContext;
    private NameSpaces nameSpaces;
    private JavaEEModuleInformer moduleInformer;
@@ -88,6 +92,8 @@
             throw new RuntimeException(e);
          }
       }
+
+      // TODO: cleanup the remaining subcontexts if any (e.g. EAR/WAR etc)
    }
 
    protected Context createContext() throws NamingException
@@ -98,7 +104,7 @@
    public void create() throws Exception
    {
       Context context = createContext();
-      beanManagerContext = context.createSubcontext(BEAN_MANAGER_JNDI_SUBCONTEXT);
+      beanManagerContext = context.createSubcontext(JndiUtils.BEAN_MANAGER_GLOBAL_SUBCONTEXT);
    }
 
    protected Context getBeanManagerContext()
@@ -111,7 +117,7 @@
       try
       {
          Context context = createContext();
-         context.destroySubcontext(BEAN_MANAGER_JNDI_SUBCONTEXT);
+         context.destroySubcontext(JndiUtils.BEAN_MANAGER_GLOBAL_SUBCONTEXT);
       }
       catch (Exception ignore)
       {
@@ -124,14 +130,6 @@
             moduleInformer.getModuleType(deploymentUnit).equals(JavaEEModuleInformer.ModuleType.WEB));
    }
 
-   private String getJndiPath(DeploymentUnit deploymentUnit)
-   {
-      String applicationName = moduleInformer.getApplicationName(deploymentUnit);
-      String path = (applicationName == null) ? "" : applicationName + "/";
-      path += moduleInformer.getModuleName(deploymentUnit);
-      return path;
-   }
-
    private class BinderVisitor implements DeploymentUnitVisitor
    {
       private final Context rootContext;
@@ -147,9 +145,11 @@
          {
             if (hasJndiBoundBeanManager(unit))
             {
-               String path = getJndiPath(unit);
+               String path = JndiUtils.getJndiSubcontexPathtForBeanManager(moduleInformer, unit);
                Context subcontext = Util.createSubcontext(rootContext, path);
-               subcontext.bind("BeanManager", new Reference(BeanManager.class.getName(), "org.jboss.weld.integration.deployer.jndi.JBossBeanManagerObjectFactory", null));
+               Reference reference = new Reference(BeanManager.class.getName(), "org.jboss.weld.integration.deployer.jndi.JBossBeanManagerObjectFactory", null);
+               reference.add(new StringRefAddr(REFADDR_ID, IdFactory.getIdFromClassLoader(unit.getClassLoader())));
+               subcontext.bind("BeanManager", reference);
             }
          }
          catch (NamingException e)
@@ -179,7 +179,7 @@
          {
             if (hasJndiBoundBeanManager(unit))
             {
-               String path = getJndiPath(unit);
+               String path = JndiUtils.getJndiSubcontexPathtForBeanManager(moduleInformer, unit);
                Context subcontext = (Context) rootContext.lookup(path);
                subcontext.unbind("BeanManager");
                rootContext.destroySubcontext(path);
@@ -197,5 +197,4 @@
       }
    }
 
-
 }

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/deployer/jndi/WebJndiBinderDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -50,26 +50,18 @@
    @Override
    public void deploy(DeploymentUnit deploymentUnit, JBossWebMetaData jBossWebMetaData) throws DeploymentException
    {
-      BeanMetaData bbBMD = getBootstrapBeanAttachment(deploymentUnit.getTopLevel());
-      if (bbBMD != null && deploymentUnit.isAttachmentPresent(JBossWebMetaData.class))
-      {
-         AbstractInjectionValueMetaData javaModule = new AbstractInjectionValueMetaData(getModuleBeanName(deploymentUnit));
-
-         String beanMetaDataMcNamespace = getModuleBeanName(deploymentUnit);
-         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(beanMetaDataMcNamespace + "_WebCompJndiBinder", SimpleCompJndiBinder.class.getName());
-         builder.addConstructorParameter(DeploymentUnit.class.getName(), deploymentUnit);
-         builder.addConstructorParameter(JavaEEModule.class.getName(), javaModule);
-         builder.addInstall("bindToJavaComp");
-         // no uninstall method for SimpleCompJndiBinder (context will be destroyed by Tomcat)
-         //builder.addUninstall("unbind");
-         deploymentUnit.getTopLevel().addAttachment(beanMetaDataMcNamespace + "_WebCompJndiBinder", builder.getBeanMetaData());
-
-         BeanMetaDataBuilder moduleBinderBuilder = BeanMetaDataBuilder.createBuilder(beanMetaDataMcNamespace + "_JavaModuleJndiBinder", JavaEEModuleJndiBinder.class.getName());
-         moduleBinderBuilder.addConstructorParameter(JavaEEModule.class.getName(), javaModule);
-         moduleBinderBuilder.addInstall("bindToJavaComp");
-         moduleBinderBuilder.addUninstall("unbind");
-         deploymentUnit.getTopLevel().addAttachment(beanMetaDataMcNamespace + "_JavaModuleJndiBinder", moduleBinderBuilder.getBeanMetaData());
-      }
+//      BeanMetaData bbBMD = getBootstrapBeanAttachment(deploymentUnit.getTopLevel());
+//      if (bbBMD != null && deploymentUnit.isAttachmentPresent(JBossWebMetaData.class))
+//      {
+//         AbstractInjectionValueMetaData javaModule = new AbstractInjectionValueMetaData(getModuleBeanName(deploymentUnit));
+//
+//         String beanMetaDataMcNamespace = getModuleBeanName(deploymentUnit);
+//         BeanMetaDataBuilder moduleBinderBuilder = BeanMetaDataBuilder.createBuilder(beanMetaDataMcNamespace + "_JavaModuleJndiBinder", JavaEEModuleJndiBinder.class.getName());
+//         moduleBinderBuilder.addConstructorParameter(JavaEEModule.class.getName(), javaModule);
+//         moduleBinderBuilder.addInstall("bindToJavaComp");
+//         moduleBinderBuilder.addUninstall("unbind");
+//         deploymentUnit.getTopLevel().addAttachment(beanMetaDataMcNamespace + "_JavaModuleJndiBinder", moduleBinderBuilder.getBeanMetaData());
+//      }
    }
 
    private BeanMetaData getBootstrapBeanAttachment(DeploymentUnit deploymentUnit)

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299Injector.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299Injector.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299Injector.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299Injector.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,105 @@
+/*
+ * 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.weld.integration.injection;
+
+import org.jboss.injection.manager.spi.InjectionContext;
+import org.jboss.injection.manager.spi.InjectionException;
+import org.jboss.injection.manager.spi.Injector;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.weld.manager.api.WeldManager;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.InjectionTarget;
+import java.util.concurrent.atomic.AtomicReference;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class Jsr299Injector implements Injector
+{
+
+   private BootstrapBean bootstrapBean;
+   private String bdaId;
+   private AtomicReference<WeldManager> weldManagerRef;
+
+   public Jsr299Injector(String bdaId)
+   {
+      this.bdaId = bdaId;
+      this.weldManagerRef = new AtomicReference<WeldManager>();
+   }
+
+   public void setBootstrapBean(BootstrapBean bootstrapBean)
+   {
+      this.bootstrapBean = bootstrapBean;
+   }
+
+   public <T> void inject(InjectionContext<T> injectionContext) throws InjectionException
+   {
+      WeldManager weldManager = initWeldManagerIfNecessary();
+      Object instance = injectionContext.getInjectionTarget();
+
+      if (weldManager == null)
+         throw new IllegalArgumentException("Null bean manager.");
+
+      CreationalContext<Object> creationalContext =  weldManager.createCreationalContext(null);
+      InjectionTarget<Object> injectionTarget = (InjectionTarget<Object>) weldManager.fireProcessInjectionTarget(weldManager.createAnnotatedType(instance.getClass()));
+      injectionTarget.inject(instance, creationalContext);
+      injectionContext.proceed();
+   }
+
+   private WeldManager initWeldManagerIfNecessary()
+   {
+      WeldManager weldManager = weldManagerRef.get();
+      if (weldManager == null)
+      {
+         weldManager = locateWeldManager();
+      }
+      weldManagerRef.compareAndSet(null, weldManager);
+      return weldManager;
+   }
+
+   private WeldManager locateWeldManager()
+   {
+      BeanDeploymentArchive foundBeanDeploymentArchive = null;
+      for (BeanDeploymentArchive beanDeploymentArchive: bootstrapBean.getDeployment().getBeanDeploymentArchives())
+      {
+         if (beanDeploymentArchive.getId().equals(bdaId))
+         {
+            foundBeanDeploymentArchive = beanDeploymentArchive;
+         }
+      }
+      if (foundBeanDeploymentArchive == null)
+      {
+         throw new IllegalStateException("Cannot find BeanManager for BeanDeploymentArchive with id=" + bdaId);
+      }
+
+      return bootstrapBean.getBootstrap().getManager(foundBeanDeploymentArchive);
+   }
+
+   public void release()
+   {
+      bootstrapBean = null;
+      weldManagerRef.set(null);
+   }
+}

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299InjectorDeployer.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299InjectorDeployer.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299InjectorDeployer.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/injection/Jsr299InjectorDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,106 @@
+/*
+ * 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.weld.integration.injection;
+
+import org.jboss.beans.metadata.api.model.InjectOption;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.DeploymentStages;
+import org.jboss.deployers.spi.deployer.helpers.AbstractSimpleRealDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.injection.manager.spi.InjectionManager;
+import org.jboss.kernel.spi.dependency.KernelController;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.util.IdFactory;
+
+/**
+ * A deployer for a Jsr299Injector
+ *
+ * @author Marius Bogoevici
+ */
+public class Jsr299InjectorDeployer extends AbstractSimpleRealDeployer<InjectionManager>
+{
+   private KernelController kernelController;
+
+   public Jsr299InjectorDeployer()
+   {
+      super(InjectionManager.class);
+      setStage(DeploymentStages.POST_CLASSLOADER);
+      setOutput(InjectionManager.class);
+   }
+
+   public void setKernelController(KernelController kernelController)
+   {
+      this.kernelController = kernelController;
+   }
+
+   @Override
+   public void deploy(DeploymentUnit unit, InjectionManager deployment) throws DeploymentException
+   {
+      if (isCDIDeployment(unit))
+      {
+         try
+         {
+            Jsr299Injector injector = new Jsr299Injector(IdFactory.getIdFromClassLoader(unit.getClassLoader()));
+            BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(getJsr299InjectorMcBeanName(unit), Jsr299Injector.class.getName());
+            AbstractInjectionValueMetaData injectionValueMetaData = new AbstractInjectionValueMetaData(DeployersUtils.getBootstrapBeanName(unit));
+            injectionValueMetaData.setInjectionOption(InjectOption.CALLBACK);
+            builder.addPropertyMetaData("bootstrapBean", injectionValueMetaData);
+            builder.addUninstall("release");
+            kernelController.install(builder.getBeanMetaData(), injector);
+            deployment.addInjector(injector);
+         }
+         catch (Throwable throwable)
+         {
+            throw new DeploymentException(throwable);
+         }
+      }
+   }
+
+   private boolean isCDIDeployment(DeploymentUnit unit)
+   {
+      return unit.getAttachment(DeployersUtils.WELD_FILES) != null;
+   }
+
+   @Override
+   public void undeploy(DeploymentUnit unit, InjectionManager deployment)
+   {
+      if (isCDIDeployment(unit))
+      {
+         kernelController.uninstall(getJsr299InjectorMcBeanName(unit));
+      }
+   }
+
+   private String getJsr299InjectorMcBeanName(DeploymentUnit deploymentUnit)
+   {
+      if (!deploymentUnit.isComponent())
+      {
+         return deploymentUnit.getName() + "_Jsr299BeanInjector";
+      }
+      else
+      {
+         return deploymentUnit.getParent().getName() + "/" + deploymentUnit.getName() + "_Jsr299Injector";
+      }
+   }
+}

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator)

Deleted: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -1,123 +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.weld.integration.instantiator;
-
-import org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator;
-import org.jboss.ejb3.instantiator.spi.BeanInstantiationException;
-import org.jboss.ejb3.instantiator.spi.InvalidConstructionParamsException;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.weld.bean.SessionBean;
-import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
-import org.jboss.weld.ejb.spi.EjbDescriptor;
-import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
-import org.jboss.weld.manager.api.WeldManager;
-
-import javax.enterprise.context.spi.CreationalContext;
-import javax.enterprise.inject.spi.InjectionTarget;
-import java.util.concurrent.atomic.AtomicReference;
-
-public class Jsr299BeanInstantiator extends Ejb31SpecBeanInstantiator
-{
-
-   private BootstrapBean bootstrapBean;
-
-   private String bdaId;
-
-   private JBossEnterpriseBeanMetaData enterpriseBeanMetaData;
-
-   private AtomicReference<WeldManager> weldManagerRef = new AtomicReference<WeldManager>();
-
-   public Jsr299BeanInstantiator(JBossEnterpriseBeanMetaData enterpriseBeanMetaData)
-   {
-      if (enterpriseBeanMetaData == null)
-      {
-         throw new RuntimeException("EnterpriseBeanMetadata cannot be null");
-      }
-      this.enterpriseBeanMetaData = enterpriseBeanMetaData;
-   }
-
-   public void setBdaId(String bdaId)
-   {
-      this.bdaId = bdaId;
-   }
-
-   public void setBootstrapBean(BootstrapBean bootstrapBean)
-   {
-      this.bootstrapBean = bootstrapBean;
-   }
-
-   public <T> T create(Class<T> clazz, Object[] objects) throws IllegalArgumentException, InvalidConstructionParamsException, BeanInstantiationException
-   {
-      WeldManager weldManager = getWeldManager();
-      EjbDescriptor<Object> ejbDescriptor = weldManager.getEjbDescriptor(enterpriseBeanMetaData.getEjbName());
-      if (ejbDescriptor.getBeanClass().equals(clazz))
-      {
-         SessionBean<Object> bean = (SessionBean) weldManager.getBean(ejbDescriptor);
-         InjectionTarget<Object> injectionTarget = weldManager.createInjectionTarget(ejbDescriptor);
-         CreationalContext<Object> creationalContext = weldManager.createCreationalContext(bean);
-         T instance = (T) injectionTarget.produce(creationalContext);
-         return instance;
-      }
-      else
-      {
-         return super.create(clazz, objects);
-      }
-   }
-
-   private WeldManager getWeldManager()
-   {
-      WeldManager weldManager = weldManagerRef.get();
-      if (weldManager == null)
-      {
-         weldManager = locateWeldManager();
-      }
-      weldManagerRef.compareAndSet(null, weldManager);
-      return weldManager;
-   }
-
-   private WeldManager locateWeldManager()
-   {
-      BeanDeploymentArchive foundBeanDeploymentArchive = null;
-      for (BeanDeploymentArchive beanDeploymentArchive : bootstrapBean.getDeployment().getBeanDeploymentArchives())
-      {
-         if (beanDeploymentArchive.getId().equals(bdaId))
-         {
-            foundBeanDeploymentArchive = beanDeploymentArchive;
-         }
-      }
-      if (foundBeanDeploymentArchive == null)
-      {
-         throw new IllegalStateException("Cannot find BeanManager for BeanDeploymentArchive with id=" + bdaId);
-      }
-      return bootstrapBean.getBootstrap().getManager(foundBeanDeploymentArchive);
-   }
-
-   public void uninstall()
-   {
-      weldManagerRef.set(null);
-      enterpriseBeanMetaData = null;
-   }
-
-
-}

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiator.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,123 @@
+/*
+ *
+ *  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.weld.integration.instantiator;
+
+import org.jboss.ejb3.instantiator.impl.Ejb31SpecBeanInstantiator;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiationException;
+import org.jboss.ejb3.instantiator.spi.InvalidConstructionParamsException;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.weld.bean.SessionBean;
+import org.jboss.weld.bootstrap.spi.BeanDeploymentArchive;
+import org.jboss.weld.ejb.spi.EjbDescriptor;
+import org.jboss.weld.integration.deployer.env.helpers.BootstrapBean;
+import org.jboss.weld.manager.api.WeldManager;
+
+import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.inject.spi.InjectionTarget;
+import java.util.concurrent.atomic.AtomicReference;
+
+public class Jsr299BeanInstantiator extends Ejb31SpecBeanInstantiator
+{
+
+   private BootstrapBean bootstrapBean;
+
+   private String bdaId;
+
+   private JBossEnterpriseBeanMetaData enterpriseBeanMetaData;
+
+   private AtomicReference<WeldManager> weldManagerRef = new AtomicReference<WeldManager>();
+
+   public Jsr299BeanInstantiator(JBossEnterpriseBeanMetaData enterpriseBeanMetaData)
+   {
+      if (enterpriseBeanMetaData == null)
+      {
+         throw new RuntimeException("EnterpriseBeanMetadata cannot be null");
+      }
+      this.enterpriseBeanMetaData = enterpriseBeanMetaData;
+   }
+
+   public void setBdaId(String bdaId)
+   {
+      this.bdaId = bdaId;
+   }
+
+   public void setBootstrapBean(BootstrapBean bootstrapBean)
+   {
+      this.bootstrapBean = bootstrapBean;
+   }
+
+   public <T> T create(Class<T> clazz, Object[] objects) throws IllegalArgumentException, InvalidConstructionParamsException, BeanInstantiationException
+   {
+      WeldManager weldManager = getWeldManager();
+      EjbDescriptor<Object> ejbDescriptor = weldManager.getEjbDescriptor(enterpriseBeanMetaData.getEjbName());
+      if (ejbDescriptor.getBeanClass().equals(clazz))
+      {
+         SessionBean<Object> bean = (SessionBean) weldManager.getBean(ejbDescriptor);
+         InjectionTarget<Object> injectionTarget = weldManager.createInjectionTarget(ejbDescriptor);
+         CreationalContext<Object> creationalContext = weldManager.createCreationalContext(bean);
+         T instance = (T) injectionTarget.produce(creationalContext);
+         return instance;
+      }
+      else
+      {
+         return super.create(clazz, objects);
+      }
+   }
+
+   private WeldManager getWeldManager()
+   {
+      WeldManager weldManager = weldManagerRef.get();
+      if (weldManager == null)
+      {
+         weldManager = locateWeldManager();
+      }
+      weldManagerRef.compareAndSet(null, weldManager);
+      return weldManager;
+   }
+
+   private WeldManager locateWeldManager()
+   {
+      BeanDeploymentArchive foundBeanDeploymentArchive = null;
+      for (BeanDeploymentArchive beanDeploymentArchive : bootstrapBean.getDeployment().getBeanDeploymentArchives())
+      {
+         if (beanDeploymentArchive.getId().equals(bdaId))
+         {
+            foundBeanDeploymentArchive = beanDeploymentArchive;
+         }
+      }
+      if (foundBeanDeploymentArchive == null)
+      {
+         throw new IllegalStateException("Cannot find BeanManager for BeanDeploymentArchive with id=" + bdaId);
+      }
+      return bootstrapBean.getBootstrap().getManager(foundBeanDeploymentArchive);
+   }
+
+   public void uninstall()
+   {
+      weldManagerRef.set(null);
+      enterpriseBeanMetaData = null;
+   }
+
+
+}

Deleted: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -1,75 +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.weld.integration.instantiator;
-
-import org.jboss.beans.metadata.api.model.InjectOption;
-import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.instantiator.deployer.BeanInstantiatorDeployerBase;
-import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
-import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
-import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
-import org.jboss.weld.integration.deployer.DeployersUtils;
-import org.jboss.weld.integration.util.IdFactory;
-
-public class Jsr299BeanInstantiatorDeployer extends BeanInstantiatorDeployerBase
-{
-
-   protected BeanInstantiator getBeanInstantiator(JBossEnterpriseBeanMetaData ebmd)
-   {
-      return new Jsr299BeanInstantiator(ebmd);
-   }
-
-   protected  BeanInstantiator getBeanInstantiator(JBossEnterpriseBeanMetaData ebmd, DeploymentUnit unit)
-   {
-      return getBeanInstantiator(ebmd);
-   }
-
-   @Override
-   protected void processMetadata(BeanMetaDataBuilder beanMetaDataBuilder, DeploymentUnit unit, JBossEnterpriseBeanMetaData ejb)
-   {
-      beanMetaDataBuilder.setBean(Jsr299BeanInstantiator.class.getName());
-      beanMetaDataBuilder.addPropertyMetaData("bdaId", IdFactory.getIdFromClassLoader(unit.getClassLoader()));
-      AbstractInjectionValueMetaData bootstrapBean = new AbstractInjectionValueMetaData(DeployersUtils.getBootstrapBeanName(unit));
-      bootstrapBean.setInjectionOption(InjectOption.CALLBACK);
-      beanMetaDataBuilder.addPropertyMetaData("bootstrapBean", bootstrapBean);
-
-      //
-      if (ejb instanceof JBossSessionBean31MetaData &&
-            ((JBossSessionBean31MetaData) ejb).isSingleton())
-      {
-         String containerName = ejb.getContainerName() == null ?
-               ejb.getGeneratedContainerName() :
-               ejb.getContainerName();
-
-         BeanMetaData containerBeanMetadata = unit.getAttachment(BeanMetaData.class + ":" + containerName, BeanMetaData.class);
-         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(containerBeanMetadata);
-         builder.addDependency(DeployersUtils.getBootstrapBeanName(unit));
-         builder.addDependency(beanMetaDataBuilder.getBeanMetaData().getName());
-      }
-   }
-}

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/Jsr299BeanInstantiatorDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,75 @@
+/*
+ *
+ *  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.weld.integration.instantiator;
+
+import org.jboss.beans.metadata.api.model.InjectOption;
+import org.jboss.beans.metadata.plugins.AbstractInjectionValueMetaData;
+import org.jboss.beans.metadata.spi.BeanMetaData;
+import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.instantiator.deployer.BeanInstantiatorDeployerBase;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.util.IdFactory;
+
+public class Jsr299BeanInstantiatorDeployer extends BeanInstantiatorDeployerBase
+{
+
+   protected BeanInstantiator getBeanInstantiator(JBossEnterpriseBeanMetaData ebmd)
+   {
+      return new Jsr299BeanInstantiator(ebmd);
+   }
+
+   protected  BeanInstantiator getBeanInstantiator(JBossEnterpriseBeanMetaData ebmd, DeploymentUnit unit)
+   {
+      return getBeanInstantiator(ebmd);
+   }
+
+   @Override
+   protected void processMetadata(BeanMetaDataBuilder beanMetaDataBuilder, DeploymentUnit unit, JBossEnterpriseBeanMetaData ejb)
+   {
+      beanMetaDataBuilder.setBean(Jsr299BeanInstantiator.class.getName());
+      beanMetaDataBuilder.addPropertyMetaData("bdaId", IdFactory.getIdFromClassLoader(unit.getClassLoader()));
+      AbstractInjectionValueMetaData bootstrapBean = new AbstractInjectionValueMetaData(DeployersUtils.getBootstrapBeanName(unit));
+      bootstrapBean.setInjectionOption(InjectOption.CALLBACK);
+      beanMetaDataBuilder.addPropertyMetaData("bootstrapBean", bootstrapBean);
+
+      //
+      if (ejb instanceof JBossSessionBean31MetaData &&
+            ((JBossSessionBean31MetaData) ejb).isSingleton())
+      {
+         String containerName = ejb.getContainerName() == null ?
+               ejb.getGeneratedContainerName() :
+               ejb.getContainerName();
+
+         BeanMetaData containerBeanMetadata = unit.getAttachment(BeanMetaData.class + ":" + containerName, BeanMetaData.class);
+         BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(containerBeanMetadata);
+         builder.addDependency(DeployersUtils.getBootstrapBeanName(unit));
+         builder.addDependency(beanMetaDataBuilder.getBeanMetaData().getName());
+      }
+   }
+}

Deleted: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java
===================================================================
--- trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -1,88 +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.weld.integration.instantiator;
-
-import org.jboss.deployers.spi.DeploymentException;
-import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
-import org.jboss.deployers.structure.spi.DeploymentUnit;
-import org.jboss.ejb3.instantiator.deployer.BeanInstantiatorDeployerBase;
-import org.jboss.ejb3.instantiator.deployer.SingletonBeanInstantiatorDeployer;
-import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
-import org.jboss.kernel.Kernel;
-import org.jboss.metadata.ejb.jboss.JBossMetaData;
-import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
-import org.jboss.weld.integration.deployer.DeployersUtils;
-
-/**
- * A deployer that redirects to one of the two supported BeanInstantiator deployers.
- * To be replace with a simpler implementation once the signature to getBeanInstantiator()
- * is modified to pass on the DeploymentUnit - we need it to decide whether this is a
- * CDI deployment or not
- *
- * @author Marius Bogoevici
- */
-//TODO: remove this class after updating BeanInstantiatorDeployerBase and register a single deployer
-public class RedirectingBeanInstantiatorDeployer extends AbstractDeployer
-{
-
-   private Jsr299BeanInstantiatorDeployer jsr299BeanInstantiatorDeployer;
-   private SingletonBeanInstantiatorDeployer singletonBeanInstantiatorDeployer;
-
-   public RedirectingBeanInstantiatorDeployer(BeanInstantiator defaultBeanInstantiator, Kernel kernel, JavaEEComponentInformer javaEEComponentInformer)
-   {
-      super();
-      this.addInput(JBossMetaData.class);
-      this.addOutput(BeanInstantiator.class);
-      jsr299BeanInstantiatorDeployer = new Jsr299BeanInstantiatorDeployer();
-      jsr299BeanInstantiatorDeployer.setKernel(kernel);
-      jsr299BeanInstantiatorDeployer.setJavaEEComponentInformer(javaEEComponentInformer);
-      singletonBeanInstantiatorDeployer = new SingletonBeanInstantiatorDeployer(defaultBeanInstantiator);
-      singletonBeanInstantiatorDeployer.setKernel(kernel);
-      singletonBeanInstantiatorDeployer.setJavaEEComponentInformer(javaEEComponentInformer);
-   }
-
-   public void deploy(DeploymentUnit unit) throws DeploymentException
-   {
-      getApplicableBeanInstantiatorDeployer(unit).deploy(unit);
-   }
-
-   @Override
-   public void undeploy(DeploymentUnit unit)
-   {
-      getApplicableBeanInstantiatorDeployer(unit).undeploy(unit);
-   }
-
-   public BeanInstantiatorDeployerBase getApplicableBeanInstantiatorDeployer(DeploymentUnit unit)
-   {
-      if (DeployersUtils.checkForWeldFiles(unit, false))
-      {
-         return jsr299BeanInstantiatorDeployer;
-      }
-      else
-      {
-         return singletonBeanInstantiatorDeployer;
-      }
-   }
-}

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/instantiator/RedirectingBeanInstantiatorDeployer.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,88 @@
+/*
+ *
+ *  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.weld.integration.instantiator;
+
+import org.jboss.deployers.spi.DeploymentException;
+import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.instantiator.deployer.BeanInstantiatorDeployerBase;
+import org.jboss.ejb3.instantiator.deployer.SingletonBeanInstantiatorDeployer;
+import org.jboss.ejb3.instantiator.spi.BeanInstantiator;
+import org.jboss.kernel.Kernel;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEComponentInformer;
+import org.jboss.weld.integration.deployer.DeployersUtils;
+
+/**
+ * A deployer that redirects to one of the two supported BeanInstantiator deployers.
+ * To be replace with a simpler implementation once the signature to getBeanInstantiator()
+ * is modified to pass on the DeploymentUnit - we need it to decide whether this is a
+ * CDI deployment or not
+ *
+ * @author Marius Bogoevici
+ */
+//TODO: remove this class after updating BeanInstantiatorDeployerBase and register a single deployer
+public class RedirectingBeanInstantiatorDeployer extends AbstractDeployer
+{
+
+   private Jsr299BeanInstantiatorDeployer jsr299BeanInstantiatorDeployer;
+   private SingletonBeanInstantiatorDeployer singletonBeanInstantiatorDeployer;
+
+   public RedirectingBeanInstantiatorDeployer(BeanInstantiator defaultBeanInstantiator, Kernel kernel, JavaEEComponentInformer javaEEComponentInformer)
+   {
+      super();
+      this.addInput(JBossMetaData.class);
+      this.addOutput(BeanInstantiator.class);
+      jsr299BeanInstantiatorDeployer = new Jsr299BeanInstantiatorDeployer();
+      jsr299BeanInstantiatorDeployer.setKernel(kernel);
+      jsr299BeanInstantiatorDeployer.setJavaEEComponentInformer(javaEEComponentInformer);
+      singletonBeanInstantiatorDeployer = new SingletonBeanInstantiatorDeployer(defaultBeanInstantiator);
+      singletonBeanInstantiatorDeployer.setKernel(kernel);
+      singletonBeanInstantiatorDeployer.setJavaEEComponentInformer(javaEEComponentInformer);
+   }
+
+   public void deploy(DeploymentUnit unit) throws DeploymentException
+   {
+      getApplicableBeanInstantiatorDeployer(unit).deploy(unit);
+   }
+
+   @Override
+   public void undeploy(DeploymentUnit unit)
+   {
+      getApplicableBeanInstantiatorDeployer(unit).undeploy(unit);
+   }
+
+   public BeanInstantiatorDeployerBase getApplicableBeanInstantiatorDeployer(DeploymentUnit unit)
+   {
+      if (DeployersUtils.checkForWeldFiles(unit, false))
+      {
+         return jsr299BeanInstantiatorDeployer;
+      }
+      else
+      {
+         return singletonBeanInstantiatorDeployer;
+      }
+   }
+}

Copied: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/util/JndiUtils.java (from rev 109413, trunk/weld-int/deployer/src/main/java/org/jboss/weld/integration/util/JndiUtils.java)
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/util/JndiUtils.java	                        (rev 0)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/main/java/org/jboss/weld/integration/util/JndiUtils.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -0,0 +1,50 @@
+/*
+ * 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.weld.integration.util;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.reloaded.naming.deployers.javaee.JavaEEModuleInformer;
+
+/**
+ * @author Marius Bogoevici
+ */
+public class JndiUtils
+{
+   /**
+    * The global path for bean managers is java:/global/cdi/<applicationName>/<moduleName>/BeanManager
+    */
+   public static final String BEAN_MANAGER_GLOBAL_SUBCONTEXT = "cdi";
+
+   public static String getJndiSubcontexPathtForBeanManager(JavaEEModuleInformer moduleInformer, DeploymentUnit unit)
+   {
+      String applicationName = moduleInformer.getApplicationName(unit);
+      String path = (applicationName == null) ? "" : (applicationName + "/");
+      path += moduleInformer.getModuleName(unit);
+      return path;
+   }
+
+   public static String getGlobalBeanManagerPath(JavaEEModuleInformer moduleInformer, DeploymentUnit unit)
+   {
+      return "java:global/" + BEAN_MANAGER_GLOBAL_SUBCONTEXT + "/" + getJndiSubcontexPathtForBeanManager(moduleInformer, unit) + "/BeanManager";
+   }
+}

Modified: branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java
===================================================================
--- branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java	2010-11-22 21:22:42 UTC (rev 109413)
+++ branches/JBoss-AS-6.0.x_ipv6/weld-int/deployer/src/test/java/org/jboss/test/deployers/test/BootDeployerTestCase.java	2010-11-22 22:27:16 UTC (rev 109414)
@@ -42,6 +42,7 @@
 import org.jboss.test.deployers.support.deployer.CheckableJndiBinder;
 import org.jboss.vfs.VirtualFile;
 import org.jboss.weld.integration.deployer.DeployersUtils;
+import org.jboss.weld.integration.util.JndiUtils;
 
 /**
  * Test boot deployer.
@@ -73,7 +74,7 @@
    {
       // should already be on the deployer
       Context bmContext = assertInstanceOf(
-            CheckableJndiBinder.ROOT.lookup(CheckableJndiBinder.BEAN_MANAGER_JNDI_SUBCONTEXT),
+            CheckableJndiBinder.ROOT.lookup(JndiUtils.BEAN_MANAGER_GLOBAL_SUBCONTEXT),
             Context.class,
             false
       );



More information about the jboss-cvs-commits mailing list