[jboss-cvs] JBossAS SVN: r108779 - in projects/metadata/common/trunk: src/main/java/org/jboss/metadata/serviceref and 1 other directory.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Fri Oct 22 02:58:37 EDT 2010


Author: richard.opalka at jboss.com
Date: 2010-10-22 02:58:36 -0400 (Fri, 22 Oct 2010)
New Revision: 108779

Modified:
   projects/metadata/common/trunk/.classpath
   projects/metadata/common/trunk/pom.xml
   projects/metadata/common/trunk/src/main/java/org/jboss/metadata/serviceref/ServiceReferenceHandler.java
Log:
[JBMETA-306] providing service-ref related switchboard/jboss-injection integration hooks

Modified: projects/metadata/common/trunk/.classpath
===================================================================
--- projects/metadata/common/trunk/.classpath	2010-10-22 02:57:50 UTC (rev 108778)
+++ projects/metadata/common/trunk/.classpath	2010-10-22 06:58:36 UTC (rev 108779)
@@ -29,7 +29,6 @@
   <classpathentry kind="var" path="M2_REPO/org/jboss/security/jbosssx-client/2.0.3.SP1/jbosssx-client-2.0.3.SP1.jar" sourcepath="M2_REPO/org/jboss/security/jbosssx-client/2.0.3.SP1/jbosssx-client-2.0.3.SP1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/ws/native/jbossws-native-jaxrpc/3.0.4.GA/jbossws-native-jaxrpc-3.0.4.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/ws/native/jbossws-native-saaj/3.0.4.GA/jbossws-native-saaj-3.0.4.GA.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.0.6.GA/jbossws-spi-1.0.6.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1.jar" sourcepath="M2_REPO/org/jboss/jbossxb/2.0.2.Beta1/jbossxb-2.0.2.Beta1-sources.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/naming/jnp-client/5.0.1.GA/jnp-client-5.0.1.GA.jar"/>
   <classpathentry kind="var" path="M2_REPO/junit/junit/4.4/junit-4.4.jar"/>
@@ -38,7 +37,7 @@
   <classpathentry kind="var" path="M2_REPO/apache-xerces/xercesImpl/2.9.1/xercesImpl-2.9.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/apache-xerces/xml-apis/2.9.1/xml-apis-2.9.1.jar"/>
   <classpathentry kind="var" path="M2_REPO/xml-apis/xml-apis/1.0.b2/xml-apis-1.0.b2.jar"/>
-  <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.3.0.Beta4/jbossws-spi-1.3.0.Beta4.jar"/>
+  <classpathentry kind="var" path="M2_REPO/org/jboss/ws/jbossws-spi/1.4.0.CR2/jbossws-spi-1.4.0.CR2.jar"/>
   <classpathentry kind="var" path="M2_REPO/org/jboss/jboss-vfs/3.0.0.CR1/jboss-vfs-3.0.0.CR1.jar"/>
   <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
 </classpath>
\ No newline at end of file

Modified: projects/metadata/common/trunk/pom.xml
===================================================================
--- projects/metadata/common/trunk/pom.xml	2010-10-22 02:57:50 UTC (rev 108778)
+++ projects/metadata/common/trunk/pom.xml	2010-10-22 06:58:36 UTC (rev 108779)
@@ -173,7 +173,7 @@
     <dependency>
       <groupId>org.jboss.ws</groupId>
       <artifactId>jbossws-spi</artifactId>
-      <version>1.4.0.Beta3</version>
+      <version>1.4.0.CR2</version>
     </dependency>
 
     <dependency>

Modified: projects/metadata/common/trunk/src/main/java/org/jboss/metadata/serviceref/ServiceReferenceHandler.java
===================================================================
--- projects/metadata/common/trunk/src/main/java/org/jboss/metadata/serviceref/ServiceReferenceHandler.java	2010-10-22 02:57:50 UTC (rev 108778)
+++ projects/metadata/common/trunk/src/main/java/org/jboss/metadata/serviceref/ServiceReferenceHandler.java	2010-10-22 06:58:36 UTC (rev 108779)
@@ -28,6 +28,7 @@
 
 import javax.naming.Context;
 import javax.naming.NamingException;
+import javax.naming.Referenceable;
 import javax.xml.namespace.QName;
 
 import org.jboss.logging.Logger;
@@ -44,6 +45,7 @@
 import org.jboss.metadata.javaee.spec.ServiceReferenceHandlerMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceHandlersMetaData;
 import org.jboss.metadata.javaee.spec.ServiceReferenceMetaData;
+import org.jboss.util.naming.Util;
 import org.jboss.wsf.spi.SPIProvider;
 import org.jboss.wsf.spi.SPIProviderResolver;
 import org.jboss.wsf.spi.deployment.UnifiedVirtualFile;
@@ -57,18 +59,17 @@
 import org.jboss.wsf.spi.metadata.j2ee.serviceref.UnifiedStubPropertyMetaData;
 import org.jboss.wsf.spi.serviceref.ServiceRefHandler;
 import org.jboss.wsf.spi.serviceref.ServiceRefHandlerFactory;
-import org.jboss.wsf.spi.serviceref.ServiceRefMetaData;
 
 /**
  * Utility to bind service references to JNDI
  * 
  * @author Thomas.Diesler at jboss.org
+ * @author <a href="mailto:ropalka at redhat.com">Richard Opalka</a>
  * @since 25-Oct-2007
  */
-public class ServiceReferenceHandler
+public final class ServiceReferenceHandler
 {
-   // provide logging
-   private final Logger log = Logger.getLogger(ServiceReferenceHandler.class);
+   private static final Logger log = Logger.getLogger(ServiceReferenceHandler.class);
 
    private ServiceRefHandler delegate;
 
@@ -79,24 +80,35 @@
          SPIProvider spiProvider = SPIProviderResolver.getInstance().getProvider();
          delegate = spiProvider.getSPI(ServiceRefHandlerFactory.class).getServiceRefHandler();
       }
-
-      if (delegate == null)
-         log.warn("ServiceRefHandler not available");
    }
 
    public void bindServiceRef(Context encCtx, String encName, UnifiedVirtualFile vfsRoot, ClassLoader loader, ServiceReferenceMetaData sref) throws NamingException
    {
-      if (delegate != null)
+      if (!sref.isProcessed())
       {
-         if (sref.isProcessed() == false)
-         {
-            ServiceRefMetaData spiRef = getUnifiedServiceRefMetaData(vfsRoot, sref);
-            delegate.bindServiceRef(encCtx, encName, vfsRoot, loader, spiRef);
-            sref.setProcessed(true);
-         }
+         final UnifiedServiceRefMetaData spiRef = getUnifiedServiceRefMetaData(vfsRoot, sref);
+         final Referenceable jndiReferenceable = delegate.createReferenceable(spiRef, loader);
+         final String jndiFullName = encCtx.getNameInNamespace() + "/" + encName;
+         log.info("Binding service reference to [jndi=" + jndiFullName + "]");
+         Util.bind(encCtx, encName, jndiReferenceable);
+         sref.setProcessed(true);
       }
    }
 
+   public Referenceable createReferenceable(final UnifiedVirtualFile vfsRoot, final ClassLoader loader, final ServiceReferenceMetaData sref)
+   {
+      Referenceable referenceable = null;
+      
+      if (!sref.isProcessed())
+      {
+         final UnifiedServiceRefMetaData spiRef = getUnifiedServiceRefMetaData(vfsRoot, sref);
+         referenceable = delegate.createReferenceable(spiRef, loader);
+         sref.setProcessed(true);
+      }
+      
+      return referenceable;
+   }
+
    private UnifiedServiceRefMetaData getUnifiedServiceRefMetaData(UnifiedVirtualFile vfsRoot, ServiceReferenceMetaData sref)
    {
       UnifiedServiceRefMetaData result = new UnifiedServiceRefMetaData(vfsRoot);
@@ -107,7 +119,6 @@
       result.setMappingFile(sref.getJaxrpcMappingFile());
       result.setServiceQName(sref.getServiceQname());
       result.setAnnotatedElement(sref.getAnnotatedElement());
-      result.setProcessed(sref.isProcessed());
 
       List<? extends PortComponentRef> pcRefs = sref.getPortComponentRef();
       if (pcRefs != null)



More information about the jboss-cvs-commits mailing list