[jboss-cvs] JBossAS SVN: r72383 - trunk/server/src/main/org/jboss/deployment.
jboss-cvs-commits at lists.jboss.org
jboss-cvs-commits at lists.jboss.org
Thu Apr 17 16:02:30 EDT 2008
Author: scott.stark at jboss.org
Date: 2008-04-17 16:02:29 -0400 (Thu, 17 Apr 2008)
New Revision: 72383
Modified:
trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
Log:
Include app client main in classes to scan
Modified: trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java
===================================================================
--- trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java 2008-04-17 20:01:39 UTC (rev 72382)
+++ trunk/server/src/main/org/jboss/deployment/AnnotationMetaDataDeployer.java 2008-04-17 20:02:29 UTC (rev 72383)
@@ -26,6 +26,8 @@
import java.util.HashMap;
import java.util.List;
import java.util.Map;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
import org.jboss.deployers.spi.DeploymentException;
import org.jboss.deployers.spi.deployer.DeploymentStages;
@@ -172,13 +174,42 @@
classpathClasses.putAll(classes);
}
}
+ // Always need to include a client app main class
+ Class clientMainClass = null;
+ if(ejbJarMetaData == null && webMetaData == null && clientMetaData == null)
+ {
+ VirtualFile mfvf = unit.getMetaDataFile("MANIFEST.MF");
+ if(mfvf != null)
+ {
+ Manifest mf = new Manifest(mfvf.openStream());
+ mfvf.close();
+ String mainClass = mf.getMainAttributes().getValue(Attributes.Name.MAIN_CLASS);
+ if(mainClass != null)
+ {
+ VirtualFile mainClassVF = unit.getFile(mainClass.replace('.', '/')+".class");
+ if(mainClassVF != null)
+ {
+ try
+ {
+ clientMainClass = loader.loadClass(mainClass);
+ log.info("Saw Main-Class: "+mainClass);
+ classpathClasses.put(mainClassVF, clientMainClass);
+ }
+ catch(ClassNotFoundException e)
+ {
+ log.debug("Ignoring invalid Main-Class: "+mainClass, e);
+ }
+ }
+ }
+ }
+ }
if(classpathClasses.size() > 0)
{
AnnotationFinder<AnnotatedElement> finder = new DefaultAnnotationFinder<AnnotatedElement>();
if(webMetaData != null)
processJBossWebMetaData(unit, finder, classpathClasses);
- else if(clientMetaData != null)
+ else if(clientMetaData != null || clientMainClass != null)
processJBossClientMetaData(unit, finder, classpathClasses);
else
processJBossMetaData(unit, finder, classpathClasses);
More information about the jboss-cvs-commits
mailing list