Author: rmannibucau
Date: Tue Feb 19 07:41:05 2013
New Revision: 1447606

URL: http://svn.apache.org/r1447606
Log:
managing overriding even if the resource lost its real id

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=1447606&r1=1447605&r2=1447606&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
 Tue Feb 19 07:41:05 2013
@@ -105,6 +105,7 @@ import static org.apache.openejb.util.Pr
 public class AutoConfig implements DynamicDeployer, JndiConstants {
     public static final String ORIGIN_ANNOTATION = "Annotation";
     public static final String ORIGIN_FLAG = "Origin";
+    public static final String ORIGINAL_ID = "OriginalId";
 
     public static Logger logger = 
Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, AutoConfig.class);
 
@@ -886,9 +887,10 @@ public class AutoConfig implements Dynam
             final String originalId = value(resource.getId());
             final String modulePrefix = module.getModuleId() + "/";
 
-            if ("/".equals(modulePrefix)) {
+            if ("/".equals(modulePrefix) || originalId.startsWith("global") || 
originalId.startsWith("/global")) {
                 resource.setId(replaceJavaAndSlash(originalId));
             } else {
+                resource.getProperties().setProperty(ORIGINAL_ID, originalId);
                 resource.setId(modulePrefix + replaceJavaAndSlash(originalId));
             }
             resource.setJndi(value(resource.getJndi()));
@@ -921,10 +923,6 @@ public class AutoConfig implements Dynam
                     && 
resource.getProperties().getProperty(ORIGIN_FLAG).equals(ORIGIN_ANNOTATION)) {
                 properties.remove(ORIGIN_FLAG);
 
-                if (!(resourceInfo.id.startsWith("global") || 
resourceInfo.id.startsWith("/global"))) {
-                    resourceInfo.id = module.getModuleId() + "/" + 
resourceInfo.id;
-                }
-
                 if (properties.get("JdbcUrl") == null) {
                     final String url = getVendorUrl(properties);
                     if (url != 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=1447606&r1=1447605&r2=1447606&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
 Tue Feb 19 07:41:05 2013
@@ -1026,7 +1026,7 @@ public class ConfigurationFactory implem
             if (service.getId() == null)
                 service.setId(provider.getId());
 
-            final Properties overrides = 
trim(getSystemProperties(service.getId(), provider.getService()));
+            final Properties overrides = 
trim(getSystemProperties(overrideKey(service), provider.getService()));
 
             final Properties serviceProperties = service.getProperties();
 
@@ -1109,6 +1109,14 @@ public class ConfigurationFactory implem
         }
     }
 
+    private String overrideKey(final org.apache.openejb.config.Service 
service) {
+        final String origin = 
String.class.cast(service.getProperties().remove(AutoConfig.ORIGINAL_ID));
+        if (origin != null) {
+            return origin;
+        }
+        return service.getId();
+    }
+
     private static String getProviderType(final 
org.apache.openejb.config.Service service) {
 
         Class<?> clazz = service.getClass();


Reply via email to