You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@tomee.apache.org by rm...@apache.org on 2013/02/17 23:25:34 UTC
svn commit: r1447092 - in
/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config:
AutoConfig.java ConfigurationFactory.java
Author: rmannibucau
Date: Sun Feb 17 22:25:34 2013
New Revision: 1447092
URL: http://svn.apache.org/r1447092
Log:
more app scoped management
Modified:
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java?rev=1447092&r1=1447091&r2=1447092&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java Sun Feb 17 22:25:34 2013
@@ -1097,7 +1097,17 @@ public class AutoConfig implements Dynam
id = id.substring("java:".length());
}
try {
- id = getResourceId(ejbDeployment.getDeploymentId(), id, refType, appResources);
+ final AppModule appModule = ejbModule.getAppModule();
+ if (appModule != null) {
+ final String newId = findResourceId(appModule.getModuleId() + '/' + id.replace("java:", "").replaceAll("^comp/env/", ""), refType, new Properties(), appResources);
+ if (newId != null) { // app scoped resources, try to find it without creating it first
+ id = getResourceId(ejbModule.getModuleId(), newId, refType, appResources);
+ } else {
+ id = getResourceId(ejbDeployment.getDeploymentId(), id, refType, appResources);
+ }
+ } else {
+ id = getResourceId(ejbDeployment.getDeploymentId(), id, refType, appResources);
+ }
} catch (OpenEJBException e) { // changing the message to be explicit
throw new OpenEJBException("Can't find resource for " + ref.getOrigin() + ". (" + e.getMessage() + ")", e.getCause());
}
@@ -1819,15 +1829,15 @@ public class AutoConfig implements Dynam
List<String> resourceIds = getResourceIds(appResources, type, required);
Collections.sort(resourceIds, new Comparator<String>() { // sort from webapp to global resources
@Override
- public int compare(String o1, String o2) {
+ public int compare(String o1, String o2) { // don't change global order, just put app scoped resource before others
if (o1.startsWith(prefix) && o2.startsWith(prefix)) {
- return o1.compareTo(o2);
+ return 1;
} else if (o1.startsWith(prefix)) {
return 1;
} else if (o2.startsWith(prefix)) {
return -1;
}
- return o1.compareTo(o2);
+ return 1;
}
});
String idd = null;
Modified: tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1447092&r1=1447091&r2=1447092&view=diff
==============================================================================
--- tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Sun Feb 17 22:25:34 2013
@@ -1318,7 +1318,7 @@ public class ConfigurationFactory implem
final OpenEjbConfiguration runningConfig = getRunningConfig();
if (runningConfig != null) {
for (final ResourceInfo resourceInfo : runningConfig.facilities.resources) {
- if (isResourceType(resourceInfo.service, resourceInfo.types, type) && implies(required, resourceInfo.properties)) {
+ if (((type != null && type.equals(resourceInfo.className)) || isResourceType(resourceInfo.service, resourceInfo.types, type)) && implies(required, resourceInfo.properties)) {
resourceIds.add(resourceInfo.id);
resourceIds.addAll(resourceInfo.aliases);
}