[jboss-cvs] JBossAS SVN: r99338 - in projects/ejb3/trunk: metadata-deployers and 11 other directories.

jboss-cvs-commits at lists.jboss.org jboss-cvs-commits at lists.jboss.org
Wed Jan 13 08:31:40 EST 2010


Author: jaikiran
Date: 2010-01-13 08:31:40 -0500 (Wed, 13 Jan 2010)
New Revision: 99338

Added:
   projects/ejb3/trunk/metadata-deployers/
   projects/ejb3/trunk/metadata-deployers/pom.xml
   projects/ejb3/trunk/metadata-deployers/src/
   projects/ejb3/trunk/metadata-deployers/src/main/
   projects/ejb3/trunk/metadata-deployers/src/main/java/
   projects/ejb3/trunk/metadata-deployers/src/main/java/org/
   projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/
   projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/
   projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/metadata/
   projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/metadata/deployers/
   projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/metadata/deployers/JBossMetaDataResolvedJNDINameDeployer.java
   projects/ejb3/trunk/metadata-deployers/src/main/resources/
   projects/ejb3/trunk/metadata-deployers/src/main/resources/META-INF/
   projects/ejb3/trunk/metadata-deployers/src/main/resources/META-INF/ejb3-metadata-deployers-jboss-beans.xml
   projects/ejb3/trunk/metadata-deployers/src/test/
   projects/ejb3/trunk/metadata-deployers/src/test/java/
   projects/ejb3/trunk/metadata-deployers/src/test/resources/
Log:
Initial commit for metadata-deployers module

Added: projects/ejb3/trunk/metadata-deployers/pom.xml
===================================================================
--- projects/ejb3/trunk/metadata-deployers/pom.xml	                        (rev 0)
+++ projects/ejb3/trunk/metadata-deployers/pom.xml	2010-01-13 13:31:40 UTC (rev 99338)
@@ -0,0 +1,162 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0"
+xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+
+  <!-- Parent -->
+  <parent>
+    <groupId>org.jboss.ejb3</groupId>
+    <artifactId>jboss-ejb3-build</artifactId>
+    <version>1.0.9-SNAPSHOT</version>
+    <relativePath>../build/pom.xml</relativePath>
+  </parent>
+
+  <!-- POM Model Version -->
+  <modelVersion>4.0.0</modelVersion>
+
+  <!-- Artifact Information -->
+  <artifactId>jboss-ejb3-metadata-deployers</artifactId>
+  <packaging>jar</packaging>
+  <version>1.0.0-SNAPSHOT</version>
+  <name>JBoss EJB3 Metadata deployers</name>
+  <url>http://labs.jboss.com/jbossejb3</url>
+  <description>Virtual deployment framework based JBossMetaData (JBMETA 2.x) deployers</description>
+
+  <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.metadata_ejb>2.0.0-SNAPSHOT</version.metadata_ejb>
+  </properties>
+
+ <build>
+ 
+
+   <plugins>
+        <!-- Enforce JDK6 -->
+	<plugin>
+		<artifactId>maven-enforcer-plugin</artifactId>
+		<executions>
+			<!--  Enforce JDK6 -->
+			<execution>
+				<id>enforce-jdk6</id>
+				<goals>
+					<goal>enforce</goal>
+				</goals>
+				<configuration>
+					<rules>
+						<requireJavaVersion>
+							<version>1.6</version>
+						</requireJavaVersion>
+					</rules>
+				</configuration>
+			</execution>
+		</executions>
+        </plugin>
+
+        <plugin>
+            <groupId>org.apache.maven.plugins</groupId>
+            <artifactId>maven-surefire-plugin</artifactId>
+            <configuration>
+              <forkMode>once</forkMode>
+              <jvm>${JAVA_HOME}/bin/java</jvm>
+                <argLine>-Dxb.builder.useUnorderedSequence=true</argLine>
+            </configuration>
+        </plugin>
+
+
+        <plugin>
+            <artifactId>maven-compiler-plugin</artifactId>
+            <configuration>
+              <source>1.6</source>
+              <target>1.6</target>
+              <executable>${JAVA_HOME}/bin/javac</executable>
+            </configuration>
+        </plugin>
+
+    </plugins>
+
+  </build>
+
+
+ <!-- Dependencies -->
+  <dependencies>
+
+    <!-- JUnit support -->
+    <dependency>
+      <groupId>junit</groupId>
+      <artifactId>junit</artifactId>
+      <scope>test</scope>
+    </dependency>
+
+
+
+  <!-- JBoss logging -->
+   <dependency>
+        <groupId>org.jboss.logging</groupId>
+        <artifactId>jboss-logging-spi</artifactId>
+    </dependency>
+
+   <!--  JBoss Metadata -->
+   <dependency>
+      <groupId>org.jboss.metadata</groupId>
+      <artifactId>jboss-metadata-ejb</artifactId>
+      <version>${version.metadata_ejb}</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>
+      <artifactId>jboss-deployers-core-spi</artifactId>
+      <version>${version.org.jboss.deployers}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.deployers</groupId>
+      <artifactId>jboss-deployers-impl</artifactId>
+      <version>${version.org.jboss.deployers}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.deployers</groupId>
+      <artifactId>jboss-deployers-vfs</artifactId>
+      <version>${version.org.jboss.deployers}</version>
+    </dependency>
+    <dependency>
+      <groupId>org.jboss.deployers</groupId>
+      <artifactId>jboss-deployers-structure-spi</artifactId>
+      <version>${version.org.jboss.deployers}</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>
+
+    </dependencies>
+    
+</project>

Added: projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/metadata/deployers/JBossMetaDataResolvedJNDINameDeployer.java
===================================================================
--- projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/metadata/deployers/JBossMetaDataResolvedJNDINameDeployer.java	                        (rev 0)
+++ projects/ejb3/trunk/metadata-deployers/src/main/java/org/jboss/ejb3/metadata/deployers/JBossMetaDataResolvedJNDINameDeployer.java	2010-01-13 13:31:40 UTC (rev 99338)
@@ -0,0 +1,155 @@
+/*
+* 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.metadata.deployers;
+
+import org.jboss.deployers.spi.DeploymentException;
+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.logging.Logger;
+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.JBossSessionBeanMetaData;
+import org.jboss.metadata.ejb.jboss.jndi.resolver.impl.JNDIPolicyBasedJNDINameResolverFactory;
+import org.jboss.metadata.ejb.jboss.jndi.resolver.spi.SessionBeanJNDINameResolver;
+import org.jboss.metadata.ejb.jboss.jndipolicy.plugins.DefaultJNDIBindingPolicyFactory;
+import org.jboss.metadata.ejb.jboss.jndipolicy.spi.DefaultJndiBindingPolicy;
+
+/**
+ * JBossMetaDataResolvedJNDINameDeployer
+ * 
+ * Responsible for setting the resolved JNDI names on the metadata, so 
+ * that the code relying on calls like metadata.getJNDIName will 
+ * get the resolved jndi name.
+ * 
+ * Note that this deployer is here to provide backward compatibility
+ * and any new code which expects resolved JNDI names, is expected
+ * to use the JNDI name resolvers (ex: an implementation of {@link SessionBeanJNDINameResolver})  
+ *
+ * Calls to 
+ * <ul>
+ *  <li>{@link JBossSessionBeanMetaData#getJndiName()}</li>
+ *  <li>{@link JBossSessionBeanMetaData#getLocalJndiName()} </li>
+ *  <li> {@link JBossSessionBeanMetaData#getLocalHomeJndiName()} </li>
+ *  <li> {@link JBossSessionBeanMetaData#getHomeJndiName()} </li>
+ * </ul>
+ * will return the corresponding resolved jndi names, after this deployer processes the metadata 
+ *
+ * @author Jaikiran Pai
+ * @version $Revision: $
+ */
+public class JBossMetaDataResolvedJNDINameDeployer extends AbstractDeployer
+{
+
+   /**
+    * Logger
+    */
+   private static final Logger logger = Logger.getLogger(JBossMetaDataResolvedJNDINameDeployer.class);
+
+   /**
+    * Deployer Output flag signaling that this deployer has been run
+    */
+   public static final String OUTPUT = JBossMetaDataResolvedJNDINameDeployer.class.getSimpleName();
+
+   /**
+    * Constructor; sets deployment stage and requisite input/output chain
+    */
+   public JBossMetaDataResolvedJNDINameDeployer()
+   {
+      // Set the Stage to post-CL
+      this.setStage(DeploymentStages.PRE_REAL);
+
+      // Input is the JBossMetaData post-merge
+      this.addInput(Ejb3MetadataProcessingDeployer.OUTPUT);
+
+      // Output is a flag upon which other deployers may rely
+      this.addOutput(OUTPUT);
+   }
+
+   /**
+    * @see org.jboss.deployers.spi.deployer.Deployer#deploy(org.jboss.deployers.structure.spi.DeploymentUnit)
+    */
+   public void deploy(DeploymentUnit du) throws DeploymentException
+   {
+      // Obtain the Merged Metadata
+      JBossMetaData md = du.getAttachment(Ejb3MetadataProcessingDeployer.OUTPUT, JBossMetaData.class);
+
+      // If metadata's not present as an attachment, return
+      if (md == null)
+      {
+         return;
+      }
+
+      // If this is not an EJB3 Deployment, return
+      if (!md.isEJB3x())
+      {
+         return;
+      }
+
+      // Decorate
+      logger.debug("Decorating EJB3 beans in unit " + du + " with JNDI Policy");
+      JBossEnterpriseBeansMetaData beans = md.getEnterpriseBeans();
+      if (beans == null)
+      {
+         return;
+      }
+      DefaultJndiBindingPolicy jndiBindingPolicy = DefaultJNDIBindingPolicyFactory.getDefaultJNDIBindingPolicy();
+      for (JBossEnterpriseBeanMetaData bean : beans)
+      {
+         // let's only do this for SLSB, SFSB and @Service
+         // Ignore Entity beans or MDB
+         if (bean.isSession() || bean.isService())
+         {
+            JBossSessionBeanMetaData sessionBean = (JBossSessionBeanMetaData) bean;
+            SessionBeanJNDINameResolver sessionBeanJNDINameResolver = JNDIPolicyBasedJNDINameResolverFactory.getJNDINameResolver(sessionBean, jndiBindingPolicy);
+            // set jndi-name (default remote business jndi-name)
+            String defaultBusinessRemoteJNDIName = sessionBeanJNDINameResolver.resolveRemoteBusinessDefaultJNDIName(sessionBean);
+            if (defaultBusinessRemoteJNDIName != null)
+            {
+               sessionBean.setJndiName(defaultBusinessRemoteJNDIName);
+            }
+            // set local-jndi-name
+            String defaultBusinessLocalJNDIName = sessionBeanJNDINameResolver.resolveLocalBusinessDefaultJNDIName(sessionBean);
+            if (defaultBusinessLocalJNDIName != null)
+            {
+               sessionBean.setLocalJndiName(defaultBusinessLocalJNDIName);
+            }
+            // set local-home-jndi-name
+            String localHomeJNDIName = sessionBeanJNDINameResolver.resolveLocalHomeJNDIName(sessionBean);
+            if (localHomeJNDIName != null)
+            {
+               sessionBean.setLocalHomeJndiName(localHomeJNDIName);
+            }
+            // set remote-home-jndi-name
+            String remoteHomeJNDIName = sessionBeanJNDINameResolver.resolveRemoteHomeJNDIName(sessionBean);
+            if (remoteHomeJNDIName != null)
+            {
+               sessionBean.setHomeJndiName(remoteHomeJNDIName);
+            }
+         }
+      }
+      // Output
+      du.addAttachment(OUTPUT, true, Boolean.class);
+   }
+}

Added: projects/ejb3/trunk/metadata-deployers/src/main/resources/META-INF/ejb3-metadata-deployers-jboss-beans.xml
===================================================================
--- projects/ejb3/trunk/metadata-deployers/src/main/resources/META-INF/ejb3-metadata-deployers-jboss-beans.xml	                        (rev 0)
+++ projects/ejb3/trunk/metadata-deployers/src/main/resources/META-INF/ejb3-metadata-deployers-jboss-beans.xml	2010-01-13 13:31:40 UTC (rev 99338)
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<deployment xmlns="urn:jboss:bean-deployer:2.0">
+
+    <bean name="JBossMetaDataResolvedJNDINameDeployer" class="org.jboss.ejb3.metadata.deployers.JBossMetaDataResolvedJNDINameDeployer" />
+    
+</deployment>
\ No newline at end of file




More information about the jboss-cvs-commits mailing list