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/09/20 10:06:38 UTC

svn commit: r1524933 - /tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.java

Author: rmannibucau
Date: Fri Sep 20 08:06:38 2013
New Revision: 1524933

URL: http://svn.apache.org/r1524933
Log:
TOMEE-1039 derby embeddeddatasource handling through @DataSourceDefinition

Modified:
    tomee/tomee/trunk/container/openejb-core/src/main/java/org/apache/openejb/config/AutoConfig.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=1524933&r1=1524932&r2=1524933&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 Fri Sep 20 08:06:38 2013
@@ -936,23 +936,24 @@ public class AutoConfig implements Dynam
                 trimNotSupportedDataSourceProperties(properties);
             }
 
+            final boolean shouldGenerateJdbcUrl = DataSource.class.getName().equals(resource.getType())
+                && resource.getProperties().containsKey(ORIGIN_FLAG)
+                && resource.getProperties().getProperty(ORIGIN_FLAG).equals(ORIGIN_ANNOTATION);
+
+            if (shouldGenerateJdbcUrl && properties.get("JdbcUrl") == null) {
+                final String url = getVendorUrl(properties);
+                if (url != null) {
+                    properties.put("JdbcUrl", url);
+                }
+            }
+
             final ResourceInfo resourceInfo = configFactory.configureService(resource, ResourceInfo.class);
             resourceInfo.originAppName = module.getModuleId();
             final ResourceRef resourceRef = new ResourceRef();
             resourceRef.setResType(chooseType(module.getClassLoader(), resourceInfo.types, resource.getType()));
 
-            if (DataSource.class.getName().equals(resource.getType())
-                && resource.getProperties().containsKey(ORIGIN_FLAG)
-                && resource.getProperties().getProperty(ORIGIN_FLAG).equals(ORIGIN_ANNOTATION)) {
+            if (shouldGenerateJdbcUrl) {
                 properties.remove(ORIGIN_FLAG);
-
-                if (properties.get("JdbcUrl") == null) {
-                    final String url = getVendorUrl(properties);
-                    if (url != null) {
-                        properties.put("JdbcUrl", url);
-                    }
-                }
-
                 resourceRef.setResRefName(dataSourceLookupName(resource));
             } else {
                 resourceRef.setResRefName(OPENEJB_RESOURCE_JNDI_PREFIX + resourceInfo.id);
@@ -1058,12 +1059,12 @@ public class AutoConfig implements Dynam
             }
         }
 
-        if (driver.equals("org.apache.derby.jdbc.EmbeddedDriver")) {
-            return String.format("jdbc:derby:%s;create=true", databaseName);
+        if (driver.startsWith("org.apache.derby.jdbc.Embedded")) { // Driver or DataSource
+            return String.format("jdbc:derby:%s%s", databaseName, properties.getProperty("connectionAttributes", ";create=true"));
         }
 
         if (driver.equals("org.apache.derby.jdbc.ClientDriver")) {
-            return String.format("jdbc:derby://%s:%s/%s;create=true", serverName, port, databaseName);
+            return String.format("jdbc:derby://%s:%s/%s%s", serverName, port, databaseName, properties.getProperty("connectionAttributes", ";create=true"));
         }
 
         if (driver.equals("com.mysql.jdbc.Driver")) {