You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by dj...@apache.org on 2010/08/08 07:42:46 UTC
svn commit: r983346 -
/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
Author: djencks
Date: Sun Aug 8 05:42:45 2010
New Revision: 983346
URL: http://svn.apache.org/viewvc?rev=983346&view=rev
Log:
Add a flag, preferEjb, to determine if annotated ejbs are searched for before a web.xml file
Modified:
openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
Modified: openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java?rev=983346&r1=983345&r2=983346&view=diff
==============================================================================
--- openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java (original)
+++ openejb/trunk/openejb3/container/openejb-core/src/main/java/org/apache/openejb/config/DeploymentLoader.java Sun Aug 8 05:42:45 2010
@@ -79,14 +79,16 @@ import org.xml.sax.SAXException;
public class DeploymentLoader {
public static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, "org.apache.openejb.util.resources");
private static final String OPENEJB_ALTDD_PREFIX = "openejb.altdd.prefix";
- private String ddDir;
+ private final String ddDir;
+ private final boolean preferEjb;
public DeploymentLoader() {
- this("META-INF/");
+ this("META-INF/", false);
}
- public DeploymentLoader(String ddDir) {
+ public DeploymentLoader(String ddDir, boolean preferEjb) {
this.ddDir = ddDir;
+ this.preferEjb = preferEjb;
}
public AppModule load(File jarFile) throws OpenEJBException {
@@ -1170,6 +1172,10 @@ public class DeploymentLoader {
if (descriptors.containsKey("ejb-jar.xml")) {
return EjbModule.class;
}
+ if (preferEjb) {
+ Class<? extends DeploymentModule> cls = checkAnnotations(baseUrl, classLoader, scanPotentialEjbModules, scanPotentialClientModules);
+ if (cls != null) return cls;
+ }
if (descriptors.containsKey("application-client.xml")) {
return ClientModule.class;
@@ -1195,6 +1201,20 @@ public class DeploymentLoader {
}
}
+ if (!preferEjb) {
+ Class<? extends DeploymentModule> cls = checkAnnotations(baseUrl, classLoader, scanPotentialEjbModules, scanPotentialClientModules);
+ if (cls != null) return cls;
+ }
+
+ if (descriptors.containsKey("persistence.xml")) {
+ return PersistenceModule.class;
+ }
+
+ throw new UnknownModuleTypeException("Unknown module type: url=" + baseUrl.toExternalForm());
+ }
+
+ private Class<? extends DeploymentModule> checkAnnotations(URL baseUrl, ClassLoader classLoader, final boolean scanPotentialEjbModules, final boolean scanPotentialClientModules) {
+ Class<? extends DeploymentModule> cls = null;
if (scanPotentialEjbModules || scanPotentialClientModules) {
AnnotationFinder classFinder = new AnnotationFinder(classLoader, baseUrl);
@@ -1217,20 +1237,15 @@ public class DeploymentLoader {
};
if (classFinder.find(filter)) {
- return EjbModule.class;
+ cls = EjbModule.class;
}
if (otherTypes.size() > 0){
// We may want some ordering/sorting if we add more type scanning
- return otherTypes.iterator().next();
+ cls =otherTypes.iterator().next();
}
}
-
- if (descriptors.containsKey("persistence.xml")) {
- return PersistenceModule.class;
- }
-
- throw new UnknownModuleTypeException("Unknown module type: url=" + baseUrl.toExternalForm());
+ return cls;
}
private static File unpack(File jarFile) throws OpenEJBException {