[jboss-cvs] JBossAS SVN: r65003 - in trunk/ejb3/src: resources/META-INF and 1 other directory.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Sat Sep 1 01:11:22 EDT 2007
Author: ALRubinger
Date: 2007-09-01 01:11:21 -0400 (Sat, 01 Sep 2007)
New Revision: 65003
Modified:
trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java
trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml
Log:
EJBTHREE-1040: Added flag to indicate whether deployer should require ejb-jar.xml or jboss.xml for deployment units.
Modified: trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java
===================================================================
--- trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java 2007-09-01 03:14:51 UTC (rev 65002)
+++ trunk/ejb3/src/main/org/jboss/ejb3/deployers/EJBRegistrationDeployer.java 2007-09-01 05:11:21 UTC (rev 65003)
@@ -56,6 +56,7 @@
private Kernel kernel;
private Properties defaultPersistenceProperties;
private List<String> allowedSuffixes;
+ private boolean requireDeploymentDescriptor;
/**
* Create a new EJBRegistrationDeployer.
@@ -117,12 +118,26 @@
this.defaultPersistenceProperties = defaultPersistenceProperties;
}
+ public boolean getRequireDeploymentDescriptor()
+ {
+ return requireDeploymentDescriptor;
+ }
+
+ public void setRequireDeploymentDescriptor(boolean requireDeploymentDescriptor)
+ {
+ this.requireDeploymentDescriptor = requireDeploymentDescriptor;
+ }
+
public void deploy(VFSDeploymentUnit unit) throws DeploymentException
{
try
{
+ // Initialize
+ boolean hasEjbDd = false;
+ boolean hasJbossDd = false;
+
VirtualFile jar = unit.getRoot();
- if (jar.isLeaf() || ignoredJarsSet.contains(jar.getName()) )
+ if (jar.isLeaf() || ignoredJarsSet.contains(jar.getName()))
{
log.trace("EJBRegistrationDeployer ignoring: " + jar.getName());
return;
@@ -132,15 +147,35 @@
log.trace("EJBRegistrationDeployer suffix not allowed: " + jar.getName());
return;
}
- log.debug("********* EJBRegistrationDepoyer Begin Unit: " + unit.getSimpleName() + " jar: " + jar.getName());
+
VirtualFile ejbjar = unit.getMetaDataFile("ejb-jar.xml");
if (ejbjar != null)
{
InputStream is = ejbjar.openStream();
boolean has30EjbJarXml = EJB3Deployer.has30EjbJarXml(is);
is.close();
- if (!has30EjbJarXml) return;
+ if (!has30EjbJarXml) {
+ return;
+ }
+ else {
+ hasEjbDd = true;
+ }
}
+
+ // Determine if jboss.xml is specified
+ hasJbossDd = unit.getMetaDataFile("jboss.xml")!=null;
+
+ // If DDs are required and none are present, skip deployment
+ // EJBTHREE-1040
+ if (this.getRequireDeploymentDescriptor() && !(hasJbossDd || hasEjbDd))
+ {
+ log.trace(EJBRegistrationDeployer.class.getSimpleName() + " skipping deployment \"" + unit.getSimpleName()
+ + "\", jar: \"" + jar.getName()
+ + "\" - either EJB3 Deployment Descriptor or \"jboss.xml\" is required and neither were found.");
+ return;
+ }
+
+ log.debug("********* EJBRegistrationDepoyer Begin Unit: " + unit.getSimpleName() + " jar: " + jar.getName());
DeploymentScope scope = null;
VFSDeploymentUnit parent = unit.getParent();
if (parent != null && parent.getSimpleName().endsWith(".ear")) // todo should look for metadata instead of ".ear"
Modified: trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml
===================================================================
--- trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml 2007-09-01 03:14:51 UTC (rev 65002)
+++ trunk/ejb3/src/resources/META-INF/ejb3-deployers-beans.xml 2007-09-01 05:11:21 UTC (rev 65003)
@@ -13,7 +13,21 @@
<property name="type">ejb3x</property>
<property name="kernel"><inject bean="jboss.kernel:service=Kernel"/></property>
<property name="mbeanServer"><inject bean="JMXKernel" property="mbeanServer"/></property>
- <property name="defaultPersistenceProperties"><inject bean="DefaultPersistenceProperties" property="properties"/></property>
+ <property name="defaultPersistenceProperties"><inject bean="DefaultPersistenceProperties" property="properties"/></property>
+
+ <!--
+
+ Configure the deployer to optionally require a deployment
+ descriptor for deployable units. By turning this switch to "true",
+ "META-INF/jboss.xml" or the EJB3 Deployment Descriptor "META-INF/ejb-jar.xml"
+ will be required for deployment, enabling a performance increace in deployment by
+ not scanning for annotations in non-deployable EJB3 JARs.
+
+ Default for this value is "false".
+
+ -->
+ <property name="requireDeploymentDescriptor">false</property>
+
<property name="ignoredJarsSet">
<set elementClass="java.lang.String">
<value>snmp-adaptor.jar</value>
More information about the jboss-cvs-commits
mailing list