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);
                 }