[jboss-cvs] JBossAS SVN: r86258 - in trunk: server/src/main/org/jboss/ejb/deployers and 8 other directories.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Tue Mar 24 10:10:52 EDT 2009
Author: alex.loubyansky at jboss.com
Date: 2009-03-24 10:10:51 -0400 (Tue, 24 Mar 2009)
New Revision: 86258
Modified:
trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml
trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployerMBean.java
trunk/testsuite/imports/sections/cmp.xml
trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntity.java
trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntityHome.java
trunk/testsuite/src/main/org/jboss/test/cmp2/lob/LOBHome.java
trunk/testsuite/src/main/org/jboss/test/refs/ejbs2x/interfaces/Session.java
trunk/testsuite/src/resources/cluster/ejb2/basic/META-INF/ejb-jar.xml
trunk/testsuite/src/resources/jca/bank/META-INF/ejb-jar.xml
trunk/testsuite/src/resources/testbean/META-INF/ejb-jar.xml
trunk/testsuite/src/resources/testbyvalue/META-INF/ejb-jar.xml
Log:
JBAS-4666
Modified: trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml
===================================================================
--- trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/server/src/etc/deployers/ejb-deployer-jboss-beans.xml 2009-03-24 14:10:51 UTC (rev 86258)
@@ -72,6 +72,19 @@
<!-- Specify a SecurityDomain as fallback -->
<property name="defaultSecurityDomain">jboss-ejb-policy</property>
+ <!-- A flag indicating if the deployer should validate the ejb-jar.xml/jboss.xml descriptors and components -->
+ <property name="verifyDeployments">true</property>
+
+ <!-- A flag indicating if the verifier should be verbose about its operation -->
+ <property name="verifierVerbose">true</property>
+
+ <!-- Setting this to 'true' will cause all deployments
+ to fail when the Verifier detected a problem with the contained
+ Beans. If false, warnings/errors will be logged but the deployment
+ will not fail.
+ -->
+ <property name="strictVerifier">true</property>
+
</bean>
<bean name="MergedJBossMetaDataDeployer" class="org.jboss.ejb.deployers.MergedJBossMetaDataDeployer">
Modified: trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployer.java 2009-03-24 14:10:51 UTC (rev 86258)
@@ -32,13 +32,8 @@
import javax.management.ObjectName;
import org.jboss.aop.microcontainer.aspects.jmx.JMX;
-import org.jboss.beans.metadata.plugins.AbstractBeanMetaData;
-import org.jboss.beans.metadata.plugins.AbstractDemandMetaData;
-import org.jboss.beans.metadata.plugins.AbstractSupplyMetaData;
import org.jboss.beans.metadata.plugins.builder.BeanMetaDataBuilderFactory;
import org.jboss.beans.metadata.spi.BeanMetaData;
-import org.jboss.beans.metadata.spi.BeanMetaDataFactory;
-import org.jboss.beans.metadata.spi.DemandMetaData;
import org.jboss.beans.metadata.spi.SupplyMetaData;
import org.jboss.beans.metadata.spi.builder.BeanMetaDataBuilder;
import org.jboss.deployers.spi.DeploymentException;
@@ -50,6 +45,7 @@
import org.jboss.ejb.EjbModule;
import org.jboss.kernel.plugins.deployment.AbstractKernelDeployment;
import org.jboss.kernel.spi.deployment.KernelDeployment;
+import org.jboss.logging.Logger;
import org.jboss.metadata.ApplicationMetaData;
import org.jboss.metadata.ejb.jboss.ContainerConfigurationMetaData;
import org.jboss.metadata.ejb.jboss.InvokerProxyBindingMetaData;
@@ -62,6 +58,9 @@
import org.jboss.system.metadata.ServiceDependencyValueMetaData;
import org.jboss.system.metadata.ServiceInjectionValueMetaData;
import org.jboss.system.metadata.ServiceMetaData;
+import org.jboss.verifier.BeanVerifier;
+import org.jboss.verifier.event.VerificationEvent;
+import org.jboss.verifier.event.VerificationListener;
/**
* A real deployer that translates JBossMetaData into ServiceMetaData for
@@ -94,7 +93,17 @@
* Inject Policy Registration Bean Name
*/
private String policyRegistrationName;
-
+
+ /** Verify EJB-jar contents on deployments */
+ private boolean verifyDeployments;
+
+ /** Enable verbose verification. */
+ private boolean verifierVerbose;
+
+ /** Enable strict verification: deploy JAR only if Verifier reports
+ * no problems */
+ private boolean strictVerifier;
+
/**
* Create a new EjbDeployer.
*/
@@ -214,12 +223,59 @@
public void deploy(VFSDeploymentUnit unit, JBossMetaData deployment)
throws DeploymentException
{
- // TODO: use BeanVerifier to validate the metadata in the DDs
-
// If it is a deployment with ejbVersion unknown or 3
if (!deployment.isEJB2x() && !deployment.isEJB1x())
return; // let EJB3 deployer handle this
+ ApplicationMetaData legacyMD = new ApplicationMetaData(deployment);
+
+ if( verifyDeployments )
+ {
+ // we have a positive attitude
+ boolean allOK = true;
+
+ // wrapping this into a try - catch block to prevent errors in
+ // verifier from stopping the deployment
+ try
+ {
+ BeanVerifier verifier = new BeanVerifier();
+
+ // add a listener so we can log the results
+ verifier.addVerificationListener(new VerificationListener()
+ {
+ Logger verifierLog = Logger.getLogger(EjbDeployer.class, "verifier");
+
+ public void beanChecked(VerificationEvent event)
+ {
+ verifierLog.debug( "Bean checked: " + event.getMessage() );
+ }
+
+ public void specViolation(VerificationEvent event)
+ {
+ verifierLog.warn( "EJB spec violation: " + (verifierVerbose ? event.getVerbose() : event.getMessage()));
+ }
+ });
+
+ log.debug("Verifying " + unit.getRoot().toURL());
+ verifier.verify(unit.getRoot().toURL(), legacyMD, unit.getClassLoader());
+
+ allOK = verifier.getSuccess();
+ }
+ catch (Throwable t)
+ {
+ log.warn("Verify failed; continuing", t );
+ allOK = false;
+ }
+
+ // If the verifier is in strict mode and an error/warning
+ // was found in the Verification process, throw a Deployment
+ // Exception
+ if( strictVerifier && !allOK )
+ {
+ throw new DeploymentException("Verification of Enterprise Beans failed, see above for error messages.");
+ }
+ }
+
ServiceMetaData ejbModule = new ServiceMetaData();
ejbModule.setCode(EjbModule.class.getName());
@@ -242,7 +298,6 @@
ctor.setSignature(
new String[]{VFSDeploymentUnit.class.getName(), ApplicationMetaData.class.getName()}
);
- ApplicationMetaData legacyMD = new ApplicationMetaData(deployment);
ctor.setParameters(new Object[]{unit, legacyMD});
ejbModule.setConstructor(ctor);
@@ -452,4 +507,34 @@
return new ObjectName(name);
}
+
+ public boolean getStrictVerifier()
+ {
+ return strictVerifier;
+ }
+
+ public boolean getVerifierVerbose()
+ {
+ return verifierVerbose;
+ }
+
+ public boolean getVerifyDeployments()
+ {
+ return verifyDeployments;
+ }
+
+ public void setStrictVerifier(boolean strictVerifier)
+ {
+ this.strictVerifier = strictVerifier;
+ }
+
+ public void setVerifierVerbose(boolean verbose)
+ {
+ this.verifierVerbose = verbose;
+ }
+
+ public void setVerifyDeployments(boolean verify)
+ {
+ this.verifyDeployments = verify;
+ }
}
Modified: trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployerMBean.java
===================================================================
--- trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployerMBean.java 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/server/src/main/org/jboss/ejb/deployers/EjbDeployerMBean.java 2009-03-24 14:10:51 UTC (rev 86258)
@@ -44,21 +44,21 @@
/**
* Enables/disables the application bean verification upon deployment.
+ */
void setVerifyDeployments(boolean verify);
boolean getVerifyDeployments();
- */
/**
* Enables/disables the verbose mode on the verifier.
+ */
void setVerifierVerbose(boolean verbose);
boolean getVerifierVerbose();
- */
/**
* Enables/disables the strict mode on the verifier.
+ */
void setStrictVerifier(boolean strictVerifier);
boolean getStrictVerifier();
- */
/**
* Enables/disables the metrics interceptor for containers.
Modified: trunk/testsuite/imports/sections/cmp.xml
===================================================================
--- trunk/testsuite/imports/sections/cmp.xml 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/imports/sections/cmp.xml 2009-03-24 14:10:51 UTC (rev 86258)
@@ -133,6 +133,12 @@
overwrite="true"/>
<!-- build cmp2-jdbc2pm-ageout.jar -->
+ <copy file="${build.resources}/cmp2/ejbselect/META-INF/ejb-jar.xml"
+ tofile="${build.resources}/cmp2/ageout/META-INF/ejb-jar.xml"
+ overwrite="true"/>
+ <copy file="${build.resources}/cmp2/ejbselect/META-INF/jbosscmp-jdbc.xml"
+ tofile="${build.resources}/cmp2/ageout/META-INF/jbosscmp-jdbc.xml"
+ overwrite="true"/>
<jar destfile="${build.lib}/cmp2-jdbc2pm-ageout.jar">
<fileset dir="${build.classes}">
<patternset refid="common.test.client.classes"/>
Modified: trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntity.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntity.java 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntity.java 2009-03-24 14:10:51 UTC (rev 86258)
@@ -22,8 +22,9 @@
package org.jboss.test.bootstrapdependencies.jbas5349.ejb2;
import javax.ejb.EJBObject;
+import java.rmi.RemoteException;
public interface SimpleEntity extends EJBObject
{
- public Long getId();
+ public Long getId() throws RemoteException;
}
Modified: trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntityHome.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntityHome.java 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/main/org/jboss/test/bootstrapdependencies/jbas5349/ejb2/SimpleEntityHome.java 2009-03-24 14:10:51 UTC (rev 86258)
@@ -21,12 +21,13 @@
*/
package org.jboss.test.bootstrapdependencies.jbas5349.ejb2;
+import java.rmi.RemoteException;
import javax.ejb.EJBHome;
import javax.ejb.FinderException;
import javax.ejb.CreateException;
public interface SimpleEntityHome extends EJBHome
{
- public SimpleEntity create(Long id) throws CreateException;
- public SimpleEntity findByPrimaryKey(Long id) throws FinderException;
+ public SimpleEntity create(Long id) throws CreateException, RemoteException;
+ public SimpleEntity findByPrimaryKey(Long id) throws FinderException, RemoteException;
}
Modified: trunk/testsuite/src/main/org/jboss/test/cmp2/lob/LOBHome.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/cmp2/lob/LOBHome.java 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/main/org/jboss/test/cmp2/lob/LOBHome.java 2009-03-24 14:10:51 UTC (rev 86258)
@@ -51,5 +51,5 @@
throws FinderException, RemoteException;
public java.util.Collection select(java.lang.String query , java.lang.Object[] params)
- throws javax.ejb.FinderException;
+ throws javax.ejb.FinderException, RemoteException;
}
Modified: trunk/testsuite/src/main/org/jboss/test/refs/ejbs2x/interfaces/Session.java
===================================================================
--- trunk/testsuite/src/main/org/jboss/test/refs/ejbs2x/interfaces/Session.java 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/main/org/jboss/test/refs/ejbs2x/interfaces/Session.java 2009-03-24 14:10:51 UTC (rev 86258)
@@ -21,11 +21,13 @@
*/
package org.jboss.test.refs.ejbs2x.interfaces;
+import java.rmi.RemoteException;
+
/**
* @author Scott.Stark at jboss.org
* @version $Revision$
*/
public interface Session extends javax.ejb.EJBObject
{
- public void checkRefs(String[] encNames) throws Exception;
+ public void checkRefs(String[] encNames) throws Exception, RemoteException;
}
Modified: trunk/testsuite/src/resources/cluster/ejb2/basic/META-INF/ejb-jar.xml
===================================================================
--- trunk/testsuite/src/resources/cluster/ejb2/basic/META-INF/ejb-jar.xml 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/resources/cluster/ejb2/basic/META-INF/ejb-jar.xml 2009-03-24 14:10:51 UTC (rev 86258)
@@ -94,7 +94,6 @@
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
- <primkey-field>name</primkey-field>
<ejb-ref>
<description>An EJB ref for this bean to test</description>
<ejb-ref-name>ejb/myEJBRef</ejb-ref-name>
Modified: trunk/testsuite/src/resources/jca/bank/META-INF/ejb-jar.xml
===================================================================
--- trunk/testsuite/src/resources/jca/bank/META-INF/ejb-jar.xml 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/resources/jca/bank/META-INF/ejb-jar.xml 2009-03-24 14:10:51 UTC (rev 86258)
@@ -43,7 +43,6 @@
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
- <primkey-field>id</primkey-field>
</entity>
@@ -61,7 +60,6 @@
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.Integer</prim-key-class>
<reentrant>False</reentrant>
- <primkey-field>id</primkey-field>
</entity>
Modified: trunk/testsuite/src/resources/testbean/META-INF/ejb-jar.xml
===================================================================
--- trunk/testsuite/src/resources/testbean/META-INF/ejb-jar.xml 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/resources/testbean/META-INF/ejb-jar.xml 2009-03-24 14:10:51 UTC (rev 86258)
@@ -93,11 +93,10 @@
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
- <primkey-field>name</primkey-field>
<ejb-ref>
<description>An EJB ref for this bean to test</description>
<ejb-ref-name>ejb/myEJBRef</ejb-ref-name>
- <ejb-ref-type>Session</ejb-ref-type>
+ <ejb-ref-type>Session</ejb-ref-type>
<home>org.jboss.test.testbean.interfaces.StatelessSessionHome</home>
<remote>org.jboss.test.testbean.interfaces.StatelessSession</remote>
<ejb-link>nextgen.StatelessSession</ejb-link>
Modified: trunk/testsuite/src/resources/testbyvalue/META-INF/ejb-jar.xml
===================================================================
--- trunk/testsuite/src/resources/testbyvalue/META-INF/ejb-jar.xml 2009-03-24 14:00:57 UTC (rev 86257)
+++ trunk/testsuite/src/resources/testbyvalue/META-INF/ejb-jar.xml 2009-03-24 14:10:51 UTC (rev 86258)
@@ -68,7 +68,6 @@
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
- <primkey-field>name</primkey-field>
</entity>
<entity>
<description>TestByValue beans</description>
@@ -79,7 +78,6 @@
<persistence-type>Bean</persistence-type>
<prim-key-class>java.lang.String</prim-key-class>
<reentrant>False</reentrant>
- <primkey-field>name</primkey-field>
</entity>
</enterprise-beans>
<assembly-descriptor>
More information about the jboss-cvs-commits
mailing list