[jboss-cvs] JBossAS SVN: r99385 - in projects/ejb3/trunk/nointerface: src/assembly and 6 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 14 03:44:35 EST 2010


Author: jaikiran
Date: 2010-01-14 03:44:34 -0500 (Thu, 14 Jan 2010)
New Revision: 99385

Added:
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/metadata/
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/metadata/processor/
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/metadata/processor/ImplicitNoInterfaceViewMetadataProcessorFactory.java
   projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb3-nointerface-jboss-beans.xml
Removed:
   projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb31-nointerface-deployers-jboss-beans.xml
Modified:
   projects/ejb3/trunk/nointerface/pom.xml
   projects/ejb3/trunk/nointerface/src/assembly/ivy.xml
   projects/ejb3/trunk/nointerface/src/assembly/package-assembler.xml
   projects/ejb3/trunk/nointerface/src/assembly/package.xml
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/deployers/EJB3NoInterfaceDeployer.java
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/NoInterfaceViewJNDIBinder.java
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatefulNoInterfaceJNDIBinder.java
   projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatelessNoInterfaceJNDIBinder.java
Log:
EJBTHREE-1727 Refactoring of the no-interface implementation

Modified: projects/ejb3/trunk/nointerface/pom.xml
===================================================================
--- projects/ejb3/trunk/nointerface/pom.xml	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/pom.xml	2010-01-14 08:44:34 UTC (rev 99385)
@@ -23,10 +23,13 @@
 
   <properties>
       <version.org.jboss.deployers>2.0.8.GA</version.org.jboss.deployers>
+      <version.org.jboss.ejb3_deployers>1.1.0-SNAPSHOT</version.org.jboss.ejb3_deployers>
       <version.org.jboss.microcontainer>2.0.8.GA</version.org.jboss.microcontainer>
       <version.org.jboss_jbossxb>2.0.1.GA</version.org.jboss_jbossxb>
       <version.javassist>3.7.1.GA</version.javassist>
       <version.org.jboss.ejb3_jboss-ejb3-test>1.0.0</version.org.jboss.ejb3_jboss-ejb3-test>
+      <version.metadata_ejb>2.0.0-alpha-5</version.metadata_ejb>
+      <version.metadata_ear>2.0.0.Alpha</version.metadata_ear>
   </properties>
 
  <build>
@@ -130,15 +133,11 @@
         <artifactId>jboss-logging-spi</artifactId>
     </dependency>
 
-   <dependency>
-      <groupId>org.jboss.javaee</groupId>
-      <artifactId>jboss-ejb-api</artifactId>
-    </dependency>
-
    <!--  JBoss Metadata -->
    <dependency>
       <groupId>org.jboss.metadata</groupId>
-      <artifactId>jboss-metadata</artifactId>
+      <artifactId>jboss-metadata-ejb</artifactId>
+      <version>${version.metadata_ejb}</version>
       <exclusions>
         <exclusion>
             <groupId>org.jboss</groupId>
@@ -159,7 +158,37 @@
 
       </exclusions>
     </dependency>
+    
+    <!-- JBoss EAR metadata 
+        TODO: Try to avoid this. This is only needed (currently)
+        in the EJB3NoInterfaceDeployer which uses JBossAppMetaData to
+        check whether a deployment is an ear file
+     -->
+    <dependency>
+      <groupId>org.jboss.metadata</groupId>
+      <artifactId>jboss-metadata-ear</artifactId>
+      <version>${version.metadata_ear}</version>
+      <exclusions>
+        <exclusion>
+            <groupId>org.jboss</groupId>
+            <artifactId>jbossxb</artifactId>
+        </exclusion>
+        <exclusion>
+            <groupId>org.jboss</groupId>
+            <artifactId>jboss-mdr</artifactId>
+        </exclusion>
+        <exclusion>
+            <groupId>org.jboss</groupId>
+            <artifactId>jboss-reflect</artifactId>
+        </exclusion>
+        <exclusion>
+            <groupId>org.jboss</groupId>
+            <artifactId>jboss-vfs</artifactId>
+        </exclusion>
 
+      </exclusions>
+    </dependency>
+
     <!-- JBoss deployers -->
     <dependency>
       <groupId>org.jboss.deployers</groupId>
@@ -188,13 +217,27 @@
       <artifactId>jboss-ejb3-endpoint</artifactId>
       <version>0.1.0</version>
     </dependency>
+    
+    <dependency>
+      <groupId>org.jboss.ejb3</groupId>
+      <artifactId>jboss-ejb3-deployers</artifactId>
+      <version>${version.org.jboss.ejb3_deployers}</version>
+      <exclusions>
+        <exclusion>
+            <groupId>org.jboss.metadata</groupId>
+            <artifactId>jboss-metadata</artifactId>
+        </exclusion>
+      </exclusions>
+    </dependency>
 
 
       <!-- The EJB3.1 API support (ex: @LocalBean) -->
       <dependency>
        <groupId>org.jboss.javaee</groupId>
        <artifactId>jboss-ejb-api_3.1</artifactId>
+       <version>1.0-alpha-1</version>
       </dependency>
+
     
         <dependency>
           <groupId>org.jboss.naming</groupId>

Modified: projects/ejb3/trunk/nointerface/src/assembly/ivy.xml
===================================================================
--- projects/ejb3/trunk/nointerface/src/assembly/ivy.xml	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/assembly/ivy.xml	2010-01-14 08:44:34 UTC (rev 99385)
@@ -6,5 +6,9 @@
             <!-- We depend on "package" -->
             <artifact name="jboss-ejb3-api" type="jar" m:classifier="package"/>
         </dependency>
+        <dependency org="org.jboss.ejb3" name="jboss-ejb3-deployers" rev="1.1.0-SNAPSHOT" transitive="false">
+            <!-- We depend on "package" -->
+            <artifact name="jboss-ejb3-deployers" type="jar" m:classifier="package"/>
+        </dependency>
     </dependencies>
 </ivy-module>
\ No newline at end of file

Modified: projects/ejb3/trunk/nointerface/src/assembly/package-assembler.xml
===================================================================
--- projects/ejb3/trunk/nointerface/src/assembly/package-assembler.xml	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/assembly/package-assembler.xml	2010-01-14 08:44:34 UTC (rev 99385)
@@ -12,7 +12,7 @@
     <fileSet>
       <directory>src/main/resources/META-INF</directory>
       <includes>
-        <include>ejb31-nointerface-deployers-jboss-beans.xml</include>
+        <include>ejb31-nointerface-jboss-beans.xml</include>
       </includes>
       <outputDirectory>.</outputDirectory>
     </fileSet>
@@ -33,6 +33,7 @@
       <useProjectArtifact>true</useProjectArtifact>
       <includes>
         <include>org.jboss.ejb3:jboss-ejb3-nointerface:jar</include>
+        <include>org.jboss.metadata:jboss-metadata-ejb:jar</include>
       </includes>      
       
     </dependencySet>

Modified: projects/ejb3/trunk/nointerface/src/assembly/package.xml
===================================================================
--- projects/ejb3/trunk/nointerface/src/assembly/package.xml	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/assembly/package.xml	2010-01-14 08:44:34 UTC (rev 99385)
@@ -28,9 +28,11 @@
   <!-- Place the ejb3-nointerface jar in common/lib of AS -->
   <file name="jboss-ejb3-nointerface.jar" dest-path="common/lib" type="library"/>
   
+  <file name="jboss-metadata-ejb.jar" dest-path="common/lib" type="library"/>
+  
   <!--  The xml file containing the nointerface deployers -->
-  <file name="ejb31-nointerface-deployers-jboss-beans.xml" dest-path="server/default/deployers" type="config"/>
-  <file name="ejb31-nointerface-deployers-jboss-beans.xml" dest-path="server/all/deployers" type="config"/>
+  <file name="ejb31-nointerface-jboss-beans.xml" dest-path="server/default/deployers" type="config"/>
+  <file name="ejb31-nointerface-jboss-beans.xml" dest-path="server/all/deployers" type="config"/>
   
    <dependencies>
         <unprocessed-dependencies file="ivy.xml"/>

Modified: projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/deployers/EJB3NoInterfaceDeployer.java
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/deployers/EJB3NoInterfaceDeployer.java	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/deployers/EJB3NoInterfaceDeployer.java	2010-01-14 08:44:34 UTC (rev 99385)
@@ -42,12 +42,14 @@
 import org.jboss.deployers.spi.deployer.DeploymentStages;
 import org.jboss.deployers.spi.deployer.helpers.AbstractDeployer;
 import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.deployers.Ejb3MetadataProcessingDeployer;
 import org.jboss.ejb3.nointerface.mc.NoInterfaceViewJNDIBinder;
 import org.jboss.logging.Logger;
 import org.jboss.metadata.ear.jboss.JBossAppMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
 import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeansMetaData;
 import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
 import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
 
 /**
@@ -66,6 +68,11 @@
     * Logger
     */
    private static Logger logger = Logger.getLogger(EJB3NoInterfaceDeployer.class);
+   
+   /**
+    * We need processed metadata
+    */
+   private static final String INPUT = Ejb3MetadataProcessingDeployer.OUTPUT;
 
    /**
     * Constructor
@@ -74,6 +81,7 @@
    {
       setStage(DeploymentStages.REAL);
       setInput(JBossMetaData.class);
+      addInput(INPUT);
       // we deploy MC beans
       addOutput(BeanMetaData.class);
 
@@ -98,7 +106,8 @@
       {
          logger.trace("Deploying unit " + unit.getName());
       }
-      JBossMetaData metaData = unit.getAttachment(JBossMetaData.class);
+      // get processed metadata
+      JBossMetaData metaData = unit.getAttachment(INPUT, JBossMetaData.class);
       if (metaData == null)
       {
          if (logger.isTraceEnabled())
@@ -115,8 +124,12 @@
             {
                logger.trace("Found bean of type session: " + bean.getEjbClass() + " in unit " + unit.getName());
             }
-            // Process for no-interface view
-            deploy(unit, (JBossSessionBeanMetaData) bean);
+            // too bad
+            if (bean instanceof JBossSessionBean31MetaData)
+            {
+               // Process for no-interface view
+               deploy(unit, (JBossSessionBean31MetaData) bean);
+            }
          }
       }
 
@@ -136,11 +149,11 @@
     * @param sessionBeanMetaData Session bean metadata
     * @throws DeploymentException If any exceptions are encountered during processing of the deployment unit
     */
-   private void deploy(DeploymentUnit unit, JBossSessionBeanMetaData sessionBeanMetaData) throws DeploymentException
+   private void deploy(DeploymentUnit unit, JBossSessionBean31MetaData sessionBeanMetaData) throws DeploymentException
    {
       try
       {
-         if (!isEligibleForNoInterfaceView(unit, sessionBeanMetaData))
+         if (!sessionBeanMetaData.isNoInterfaceBean())
          {
             if (logger.isTraceEnabled())
             {
@@ -168,7 +181,7 @@
 
          // Create the NoInterfaceViewJNDIBinder (MC bean) and add a dependency on the DESCRIBED
          // state of the container (endpoint) MC bean
-         NoInterfaceViewJNDIBinder noInterfaceViewJNDIBinder = NoInterfaceViewJNDIBinder.getNoInterfaceViewJndiBinder(new InitialContext(), beanClass,
+         NoInterfaceViewJNDIBinder<JBossSessionBean31MetaData> noInterfaceViewJNDIBinder = NoInterfaceViewJNDIBinder.getNoInterfaceViewJndiBinder(new InitialContext(), beanClass,
                sessionBeanMetaData);
          String noInterfaceViewMCBeanName = unit.getName() + "$" + sessionBeanMetaData.getEjbName();
          BeanMetaDataBuilder builder = BeanMetaDataBuilder.createBuilder(noInterfaceViewMCBeanName, noInterfaceViewJNDIBinder.getClass()

Modified: projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/NoInterfaceViewJNDIBinder.java
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/NoInterfaceViewJNDIBinder.java	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/NoInterfaceViewJNDIBinder.java	2010-01-14 08:44:34 UTC (rev 99385)
@@ -30,7 +30,11 @@
 import org.jboss.beans.metadata.api.model.FromContext;
 import org.jboss.kernel.spi.dependency.KernelControllerContext;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
+import org.jboss.metadata.ejb.jboss.jndi.resolver.impl.JNDIPolicyBasedJNDINameResolverFactory;
+import org.jboss.metadata.ejb.jboss.jndi.resolver.spi.SessionBean31JNDINameResolver;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.DefaultJNDIBindingPolicyFactory;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DefaultJndiBindingPolicy;
 
 /**
  * NoInterfaceViewJNDIBinder
@@ -45,7 +49,7 @@
  * @author Jaikiran Pai
  * @version $Revision: $
  */
-public abstract class NoInterfaceViewJNDIBinder
+public abstract class NoInterfaceViewJNDIBinder<T extends JBossSessionBean31MetaData>
 {
 
    /**
@@ -72,20 +76,18 @@
    /**
     * The bean metadata
     */
-   protected JBossSessionBeanMetaData sessionBeanMetadata;
+   protected T sessionBeanMetadata;
 
    /**
     * JNDI naming context
     */
    protected Context jndiCtx;
 
+
    /**
-    * Suffix to be added to the ejb-name to form the jndi name of no-interface view
-    * 
-    * TODO: Until the no-interface jndi-name comes from metadata, we need to hardcode the jndi-name
-    * 
+    * JNDI name resolver for the bean
     */
-   protected static final String NO_INTERFACE_JNDI_SUFFIX = "/no-interface";
+   private SessionBean31JNDINameResolver jndiNameResolver;
 
    /**
     * Returns an appropriate instance of {@link NoInterfaceViewJNDIBinder} based on the 
@@ -97,12 +99,11 @@
     * @param sessionBeanMetadata Session bean metadata of the bean class
     * @return 
     */
-   public static NoInterfaceViewJNDIBinder getNoInterfaceViewJndiBinder(Context ctx, Class<?> beanClass,
-         JBossSessionBeanMetaData sessionBeanMetadata)
+   public static <T extends JBossSessionBean31MetaData> NoInterfaceViewJNDIBinder<T> getNoInterfaceViewJndiBinder(
+         Context ctx, Class<?> beanClass, T sessionBeanMetadata)
    {
-      return sessionBeanMetadata.isStateful()
-            ? new StatefulNoInterfaceJNDIBinder(ctx, beanClass, sessionBeanMetadata)
-            : new StatelessNoInterfaceJNDIBinder(ctx, beanClass, sessionBeanMetadata);
+      return sessionBeanMetadata.isStateful() ? new StatefulNoInterfaceJNDIBinder<T>(ctx, beanClass,
+            sessionBeanMetadata) : new StatelessNoInterfaceJNDIBinder<T>(ctx, beanClass, sessionBeanMetadata);
    }
 
    /**
@@ -111,7 +112,7 @@
     * @param beanClass
     * @param sessionBeanMetadata
     */
-   protected NoInterfaceViewJNDIBinder(Context ctx, Class<?> beanClass, JBossSessionBeanMetaData sessionBeanMetadata)
+   protected NoInterfaceViewJNDIBinder(Context ctx, Class<?> beanClass, T sessionBeanMetadata)
    {
       this.jndiCtx = ctx;
       this.beanClass = beanClass;
@@ -183,4 +184,18 @@
 
    }
 
+   /**
+    * Returns the jndi name resolver, which will be responsible for returning the
+    * appropriate jndi names for various views of the session bean
+    * @return
+    */
+   protected SessionBean31JNDINameResolver getJNDINameResolver()
+   {
+      if (this.jndiNameResolver != null)
+      {
+         return this.jndiNameResolver;
+      }
+      DefaultJndiBindingPolicy jndiBindingPolicy = DefaultJNDIBindingPolicyFactory.getDefaultJNDIBindingPolicy();
+      return JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver(this.sessionBeanMetadata, jndiBindingPolicy);
+   }
 }

Modified: projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatefulNoInterfaceJNDIBinder.java
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatefulNoInterfaceJNDIBinder.java	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatefulNoInterfaceJNDIBinder.java	2010-01-14 08:44:34 UTC (rev 99385)
@@ -31,7 +31,7 @@
 import org.jboss.ejb3.nointerface.objectfactory.NoInterfaceViewProxyFactoryRefAddrTypes;
 import org.jboss.ejb3.nointerface.objectfactory.StatefulNoInterfaceViewObjectFactory;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
 import org.jboss.util.naming.NonSerializableFactory;
 
 /**
@@ -43,7 +43,7 @@
  * @author Jaikiran Pai
  * @version $Revision: $
  */
-public class StatefulNoInterfaceJNDIBinder extends NoInterfaceViewJNDIBinder
+public class StatefulNoInterfaceJNDIBinder<T extends JBossSessionBean31MetaData> extends NoInterfaceViewJNDIBinder<T>
 {
 
    /**
@@ -63,7 +63,7 @@
     * @param beanClass The bean class
     * @param sessionBeanMetadata Metadata of the bean
     */
-   protected StatefulNoInterfaceJNDIBinder(Context ctx, Class<?> beanClass, JBossSessionBeanMetaData sessionBeanMetadata)
+   protected StatefulNoInterfaceJNDIBinder(Context ctx, Class<?> beanClass, T sessionBeanMetadata)
    {
       super(ctx, beanClass, sessionBeanMetadata);
 
@@ -108,9 +108,7 @@
       // add this refaddr to the reference which will be bound to jndi
       reference.add(refAddr);
 
-      // TODO: Again, the jndi-names for the no-interface view are a mess now. They need to come from
-      // the metadata. Let's just go ahead temporarily
-      String noInterfaceJndiName = sessionBeanMetadata.getEjbName() + NO_INTERFACE_JNDI_SUFFIX;
+      String noInterfaceJndiName = this.getJNDINameResolver().resolveNoInterfaceJNDIName(this.sessionBeanMetadata);
       this.jndiCtx.bind(noInterfaceJndiName, reference);
       logger.info("Bound the no-interface view for bean " + beanClass + " to jndi at " + noInterfaceJndiName);
 
@@ -125,7 +123,8 @@
    @Override
    public void unbindNoInterfaceView() throws NamingException
    {
-      this.jndiCtx.unbind(this.sessionBeanMetadata.getEjbName() + NO_INTERFACE_JNDI_SUFFIX);
+      String noInterfaceJndiName = this.getJNDINameResolver().resolveNoInterfaceJNDIName(this.sessionBeanMetadata);
+      this.jndiCtx.unbind(noInterfaceJndiName);
       this.jndiCtx.unbind(this.sessionBeanMetadata.getEjbName() + NO_INTERFACE_STATEFUL_PROXY_FACTORY_JNDI_NAME_SUFFIX);
       
    }

Modified: projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatelessNoInterfaceJNDIBinder.java
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatelessNoInterfaceJNDIBinder.java	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/mc/StatelessNoInterfaceJNDIBinder.java	2010-01-14 08:44:34 UTC (rev 99385)
@@ -30,7 +30,7 @@
 import org.jboss.ejb3.nointerface.factory.NoInterfaceViewFactory;
 import org.jboss.ejb3.nointerface.invocationhandler.MCAwareNoInterfaceViewInvocationHandler;
 import org.jboss.logging.Logger;
-import org.jboss.metadata.ejb.jboss.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossSessionBean31MetaData;
 import org.jboss.util.naming.NonSerializableFactory;
 
 /**
@@ -42,7 +42,7 @@
  * @author Jaikiran Pai
  * @version $Revision: $
  */
-public class StatelessNoInterfaceJNDIBinder extends NoInterfaceViewJNDIBinder
+public class StatelessNoInterfaceJNDIBinder<T extends JBossSessionBean31MetaData> extends NoInterfaceViewJNDIBinder<T>
 {
 
    /**
@@ -57,7 +57,7 @@
     * @param beanClass
     * @param sessionBeanMetadata
     */
-   protected StatelessNoInterfaceJNDIBinder(Context ctx, Class<?> beanClass, JBossSessionBeanMetaData sessionBeanMetadata)
+   protected StatelessNoInterfaceJNDIBinder(Context ctx, Class<?> beanClass, T sessionBeanMetadata)
    {
       super(ctx, beanClass, sessionBeanMetadata);
    }
@@ -86,9 +86,7 @@
          throw new RuntimeException("Could not create no-interface view for bean class: " + beanClass, e);
       }
       // bind
-      // TODO: Again, the jndi-names for the no-interface view are a mess now. They need to come from
-      // the metadata. Let's just go ahead temporarily
-      String noInterfaceJndiName = sessionBeanMetadata.getEjbName() + NO_INTERFACE_JNDI_SUFFIX;
+      String noInterfaceJndiName = this.getJNDINameResolver().resolveNoInterfaceJNDIName(this.sessionBeanMetadata);
       NonSerializableFactory.rebind(this.jndiCtx, noInterfaceJndiName, noInterfaceView, true);
 
       logger.info("Bound the no-interface view for bean " + beanClass + " to jndi at " + noInterfaceJndiName);
@@ -103,7 +101,8 @@
    @Override
    public void unbindNoInterfaceView() throws NamingException
    {
-      this.jndiCtx.unbind(this.sessionBeanMetadata.getEjbName() + NO_INTERFACE_JNDI_SUFFIX);
+      String noInterfaceJndiName = this.getJNDINameResolver().resolveNoInterfaceJNDIName(this.sessionBeanMetadata);
+      this.jndiCtx.unbind(noInterfaceJndiName);
       
    }
 

Added: projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/metadata/processor/ImplicitNoInterfaceViewMetadataProcessorFactory.java
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/metadata/processor/ImplicitNoInterfaceViewMetadataProcessorFactory.java	                        (rev 0)
+++ projects/ejb3/trunk/nointerface/src/main/java/org/jboss/ejb3/nointerface/metadata/processor/ImplicitNoInterfaceViewMetadataProcessorFactory.java	2010-01-14 08:44:34 UTC (rev 99385)
@@ -0,0 +1,54 @@
+/*
+* JBoss, Home of Professional Open Source
+* Copyright 2005, JBoss Inc., and individual contributors as indicated
+* by the @authors tag. See the copyright.txt in the distribution for a
+* full listing of individual contributors.
+*
+* This is free software; you can redistribute it and/or modify it
+* under the terms of the GNU Lesser General Public License as
+* published by the Free Software Foundation; either version 2.1 of
+* the License, or (at your option) any later version.
+*
+* This software is distributed in the hope that it will be useful,
+* but WITHOUT ANY WARRANTY; without even the implied warranty of
+* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+* Lesser General Public License for more details.
+*
+* You should have received a copy of the GNU Lesser General Public
+* License along with this software; if not, write to the Free
+* Software Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA
+* 02110-1301 USA, or see the FSF site: http://www.fsf.org.
+*/
+package org.jboss.ejb3.nointerface.metadata.processor;
+
+import org.jboss.deployers.structure.spi.DeploymentUnit;
+import org.jboss.ejb3.deployers.metadata.processor.JBossMetaDataProcessorFactory;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+import org.jboss.metadata.process.processor.JBossMetaDataProcessor;
+import org.jboss.metadata.process.processor.ejb.jboss.ImplicitNoInterfaceViewProcessor;
+
+
+
+/**
+ * ImplicitNoInterfaceViewMetadataProcessorFactory
+ * 
+ * Responsible for creating a {@link ImplicitNoInterfaceViewProcessor} for 
+ * processing the metadata with implicit nointerface bean rules (as defined in spec)
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class ImplicitNoInterfaceViewMetadataProcessorFactory implements JBossMetaDataProcessorFactory<JBossMetaData>
+{
+
+   /**
+    * @see org.jboss.ejb3.deployers.metadata.processor.JBossMetaDataProcessorFactory#create(org.jboss.deployers.structure.spi.DeploymentUnit)
+    * @throws NullPointerException If <code>deploymentUnit</code> is null
+    */
+   @Override
+   public JBossMetaDataProcessor<JBossMetaData> create(DeploymentUnit deploymentUnit)
+   {
+      return new ImplicitNoInterfaceViewProcessor(deploymentUnit.getClassLoader());
+   }
+
+}

Added: projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb3-nointerface-jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb3-nointerface-jboss-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb3-nointerface-jboss-beans.xml	2010-01-14 08:44:34 UTC (rev 99385)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+   <!-- No-interface view deployer - works on JBossMetadata and creates a NoInterfaceMCBean -->
+  <bean name="Ejb3NoInterfaceViewDeployer" class="org.jboss.ejb3.nointerface.deployers.EJB3NoInterfaceDeployer"/>
+  
+  <!--  A metadata processor factory responsible for creating a processor to apply implicit
+    nointerface bean rules (as defined by spec) on merged metadata. This processor factory
+    will be picked up by the Ejb3MetadataProcessingDeployer and added to a chain of processor factories -->
+  <bean name="ImplicitNoInterfaceViewMetadataProcessorFactory" 
+  class="org.jboss.ejb3.nointerface.metadata.processor.ImplicitNoInterfaceViewMetadataProcessorFactory"/>
+
+</deployment>
\ No newline at end of file

Deleted: projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb31-nointerface-deployers-jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb31-nointerface-deployers-jboss-beans.xml	2010-01-14 06:48:30 UTC (rev 99384)
+++ projects/ejb3/trunk/nointerface/src/main/resources/META-INF/ejb31-nointerface-deployers-jboss-beans.xml	2010-01-14 08:44:34 UTC (rev 99385)
@@ -1,8 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
-   <!-- No-interface view deployer - works on JBossMetadata and creates a NoInterfaceMCBean -->
-  <bean name="Ejb3NoInterfaceViewDeployer" class="org.jboss.ejb3.nointerface.deployers.EJB3NoInterfaceDeployer"/>
-
-</deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list