[jboss-cvs] JBossAS SVN: r99117 - in projects/ejb3/trunk/deployers: src/main/java/org/jboss/ejb3/deployers and 1 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Thu Jan 7 09:40:46 EST 2010


Author: jaikiran
Date: 2010-01-07 09:40:46 -0500 (Thu, 07 Jan 2010)
New Revision: 99117

Added:
   projects/ejb3/trunk/deployers/src/main/java/org/jboss/ejb3/deployers/EJBsDeployer.java
   projects/ejb3/trunk/deployers/src/main/resources/META-INF/ejb3-deployers-jboss-beans.xml
Removed:
   projects/ejb3/trunk/deployers/src/main/resources/META-INF/jboss-beans.xml
Modified:
   projects/ejb3/trunk/deployers/pom.xml
Log:
EJBTHREE-1980 Copied over the EJBsDeployer from the JBPAPP_5_0 branch

Modified: projects/ejb3/trunk/deployers/pom.xml
===================================================================
--- projects/ejb3/trunk/deployers/pom.xml	2010-01-07 14:30:54 UTC (rev 99116)
+++ projects/ejb3/trunk/deployers/pom.xml	2010-01-07 14:40:46 UTC (rev 99117)
@@ -4,7 +4,7 @@
   <parent>
     <groupId>org.jboss.ejb3</groupId>
     <artifactId>jboss-ejb3-build</artifactId>
-    <version>1.0.0</version>
+    <version>1.0.9-SNAPSHOT</version>
   </parent>
 
   <!-- Model Version -->

Copied: projects/ejb3/trunk/deployers/src/main/java/org/jboss/ejb3/deployers/EJBsDeployer.java (from rev 99034, branches/JBPAPP_5_0/ejb3/src/main/org/jboss/as/ejb3/deployers/EJBsDeployer.java)
===================================================================
--- projects/ejb3/trunk/deployers/src/main/java/org/jboss/ejb3/deployers/EJBsDeployer.java	                        (rev 0)
+++ projects/ejb3/trunk/deployers/src/main/java/org/jboss/ejb3/deployers/EJBsDeployer.java	2010-01-07 14:40:46 UTC (rev 99117)
@@ -0,0 +1,135 @@
+/*
+ * 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.ejb3.deployers;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import org.jboss.deployers.spi.DeploymentException;
+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.ejb3.common.deployers.spi.AttachmentNames;
+import org.jboss.logging.Logger;
+import org.jboss.metadata.ejb.jboss.JBossEnterpriseBeanMetaData;
+import org.jboss.metadata.ejb.jboss.JBossMetaData;
+
+/**
+ * Create components out of EJB 3 JBossMetaData.
+ * 
+ * @author <a href="mailto:cdewolf at redhat.com">Carlo de Wolf</a>
+ * @version $Revision: $
+ */
+public class EJBsDeployer extends AbstractComponentDeployer<JBossMetaData, JBossEnterpriseBeanMetaData>
+{
+   private static final Logger log = Logger.getLogger(EJBsDeployer.class);
+   
+   private static final JBossDeploymentVisitor deploymentVisitor = new JBossDeploymentVisitor();
+   
+   /**
+    * 
+    */
+   public EJBsDeployer()
+   {
+      // Since we don't set component visitor
+      addInput(deploymentVisitor.getVisitorType());
+      setOutput(deploymentVisitor.getComponentType());
+      
+      // for ordering
+      addInput(AttachmentNames.PROCESSED_METADATA);
+      
+      setDeploymentVisitor(deploymentVisitor);
+   }
+   
+   private static class JBossDeploymentVisitor extends AbstractDeploymentVisitor<JBossEnterpriseBeanMetaData, JBossMetaData>
+   {
+      @Override
+      public Class<JBossEnterpriseBeanMetaData> getComponentType()
+      {
+         return JBossEnterpriseBeanMetaData.class;
+      }
+
+      @Override
+      protected List<? extends JBossEnterpriseBeanMetaData> getComponents(JBossMetaData deployment)
+      {
+         return new ArrayList<JBossEnterpriseBeanMetaData>(deployment.getEnterpriseBeans());
+      }
+
+      @Override
+      protected String getComponentName(JBossEnterpriseBeanMetaData attachment)
+      {
+         return JBossEnterpriseBeanMetaData.class.getName() + "." + attachment.getEjbName();
+      }
+
+      public Class<JBossMetaData> getVisitorType()
+      {
+         return JBossMetaData.class;
+      }
+   }
+   
+   @Override
+   protected <U> void deploy(DeploymentUnit unit, DeploymentVisitor<U> visitor) throws DeploymentException
+   {
+      // I only want a single attachment deployed
+      
+      U deployment = unit.getAttachment(visitor.getVisitorType());
+      try
+      {
+         visitor.deploy(unit, deployment);
+      }
+      catch(Throwable t)
+      {
+         throw DeploymentException.rethrowAsDeploymentException("Error deploying: " + unit.getName(), t);
+      }
+   }
+   
+   @Override
+   public void internalDeploy(DeploymentUnit unit) throws DeploymentException
+   {
+      if(!isValid(unit))
+         return;
+      
+      log.debug("Processing " + unit);
+      
+      super.internalDeploy(unit);
+   }
+   
+   @Override
+   public void internalUndeploy(DeploymentUnit unit)
+   {
+      // if we don't check then undeploy will be done for stuff that was never deployed.
+      if(!isValid(unit))
+         return;
+      
+      super.internalUndeploy(unit);
+   }
+   
+   protected boolean isValid(DeploymentUnit unit)
+   {
+      // for good measure, we only do this for EJB 3 deployments
+      JBossMetaData md = unit.getAttachment(JBossMetaData.class);
+      if(md == null || !md.isEJB3x())
+         return false;
+      return true;
+   }
+}

Added: projects/ejb3/trunk/deployers/src/main/resources/META-INF/ejb3-deployers-jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/deployers/src/main/resources/META-INF/ejb3-deployers-jboss-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/deployers/src/main/resources/META-INF/ejb3-deployers-jboss-beans.xml	2010-01-07 14:40:46 UTC (rev 99117)
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+    <!--  We don't want the AOPDependencyBuilder  -->
+    <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP</annotation>
+    
+    <!-- EJB3 ProcessorChain Deployer -->
+    <bean name="Ejb3MetadataProcessingDeployer"    class="org.jboss.ejb3.deployers.Ejb3MetadataProcessingDeployer">
+        <!-- Allow for addition/removal of processor factories -->
+        <incallback method="addProcessorFactory"/>
+        <uncallback method="removeProcessorFactory" />
+        
+        <!-- A validator chain for validating the processed metadata -->
+        <property name="validatorChain"><inject bean="EJBMetadataValidatorChain"/></property>
+    </bean>
+    
+    <!-- Validator chain for validating EJB3 metadata (right now uses default validators which
+    are not configured here -->
+    <bean name="EJBMetadataValidatorChain" class="org.jboss.metadata.validation.chain.ejb.jboss.JBossMetaDataValidatorChain"/>
+    
+    <!--  EJBsDeployer -->
+    <bean name="EJBsDeployer" class="org.jboss.ejb3.deployers.EJBsDeployer"/>
+    
+</deployment>
\ No newline at end of file

Deleted: projects/ejb3/trunk/deployers/src/main/resources/META-INF/jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/deployers/src/main/resources/META-INF/jboss-beans.xml	2010-01-07 14:30:54 UTC (rev 99116)
+++ projects/ejb3/trunk/deployers/src/main/resources/META-INF/jboss-beans.xml	2010-01-07 14:40:46 UTC (rev 99117)
@@ -1,36 +0,0 @@
-<?xml version="1.0" encoding="UTF-8"?>
-<deployment xmlns="urn:jboss:bean-deployer:2.0">
-
-    <!--  We don't want the AOPDependencyBuilder  -->
-    <annotation>@org.jboss.aop.microcontainer.annotations.DisableAOP</annotation>
-    
-    <!-- EJB3 ProcessorChain Deployer -->
-    <bean name="Ejb3MetadataProcessingDeployer"    class="org.jboss.ejb3.deployers.Ejb3MetadataProcessingDeployer">
-        <!-- Allow for addition/removal of processor factories -->
-        <incallback method="addProcessorFactory"/>
-        <uncallback method="removeProcessorFactory"/>
-        
-        <!-- A validator chain for validating the processed metadata -->
-        <property name="validatorChain"><inject bean="EJBMetadataValidatorChain"/></property>
-    </bean>
-    
-    <!-- Validator chain for validating EJB3 metadata (right now uses default validators which
-    are not configured here -->
-    <bean name="EJBMetadataValidatorChain" class="org.jboss.metadata.validation.chain.ejb.jboss.JBossMetaDataValidatorChain"/>
-    
-    <!-- Processor factory for setting the implicit default business local interface(JBMETA-122) -->
-    <bean name="SetDefaultLocalBusinessInterfaceProcessorFactory" 
-    class="org.jboss.ejb3.deployers.metadata.processor.SetDefaultLocalBusinessInterfaceProcessorFactory"/>
-
-    <!-- Processor factory for setting default ClusterConfig (JBMETA-133, EJBTHREE-1539)-->
-    <bean name="ClusterConfigDefaultValueProcessorFactory" 
-    class="org.jboss.ejb3.deployers.metadata.processor.ClusterConfigDefaultValueProcessorFactory"/>
-    
-    <!-- Processor factory for setting  explicit local JNDI name from @LocalBinding.jndiBinding (JBMETA-143) -->
-    <bean name="SetExplicitLocalJNDINameProcessorFactory" 
-    class="org.jboss.ejb3.deployers.metadata.processor.SetExplicitLocalJNDINameProcessorFactory"/>
-        
-    <!-- EJB3 JNDI Policy Decorator Deployer -->
-    <bean name="EjbMetadataJndiPolicyDecoratorDeployer" class="org.jboss.ejb3.deployers.EjbMetadataJndiPolicyDecoratorDeployer" />
-    
-</deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list