[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