Author: rmannibucau
Date: Sat Jul 21 22:01:10 2012
New Revision: 1364179
URL: http://svn.apache.org/viewvc?rev=1364179&view=rev
Log:
don't override definition if already processed
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java?rev=1364179&r1=1364178&r2=1364179&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/assembler/classic/Assembler.java
Sat Jul 21 22:01:10 2012
@@ -143,6 +143,7 @@ import org.apache.openejb.util.Logger;
import org.apache.openejb.util.Messages;
import org.apache.openejb.util.OpenEJBErrorHandler;
import org.apache.openejb.util.PropertiesHelper;
+import org.apache.openejb.util.PropertyPlaceHolderHelper;
import org.apache.openejb.util.References;
import org.apache.openejb.util.SafeToolkit;
import org.apache.openejb.util.proxy.ProxyFactory;
@@ -1575,13 +1576,14 @@ public class Assembler extends Assembler
serviceRecipe.setProperty("transactionManager", transactionManager);
serviceRecipe.setProperty("ServiceId", serviceInfo.id);
serviceRecipe.setProperty("properties", new UnsetPropertiesRecipe());
- serviceRecipe.setProperty("Definition",
PropertiesHelper.propertiesToString(serviceInfo.properties));
+ if (!serviceRecipe.getProperties().containsKey("Definition")) {
+ serviceRecipe.setProperty("Definition",
PropertiesHelper.propertiesToString(PropertyPlaceHolderHelper.holds(serviceInfo.properties)));
+ }
replaceResourceAdapterProperty(serviceRecipe);
Object service = serviceRecipe.create();
-
// Java Connector spec ResourceAdapters and ManagedConnectionFactories
need special activation
if (service instanceof ResourceAdapter) {
ResourceAdapter resourceAdapter = (ResourceAdapter) service;
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java?rev=1364179&r1=1364178&r2=1364179&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/resource/jdbc/DataSourceFactory.java
Sat Jul 21 22:01:10 2012
@@ -46,9 +46,9 @@ public class DataSourceFactory {
final DataSource ds;
- if (DataSource.class.isAssignableFrom(impl) &&
!SystemInstance.get().getOptions().get("org.apache.openejb.resource.jdbc.hot.deploy",
false)) {
+ final Properties properties = asProperties(definition);
- final Properties properties = asProperties(definition);
+ if (createDataSourceFromClass(impl)) { // opposed to "by driver"
final ObjectRecipe recipe = new ObjectRecipe(impl);
recipe.allow(Option.CASE_INSENSITIVE_PROPERTIES);
@@ -68,12 +68,16 @@ public class DataSourceFactory {
}
}
} else {
- ds = create(name, managed, impl.getName());
+ ds = create(name, managed, impl.getName(), properties);
}
return ds;
}
+ private static boolean createDataSourceFromClass(final Class<?> impl) {
+ return DataSource.class.isAssignableFrom(impl) &&
!SystemInstance.get().getOptions().get("org.apache.openejb.resource.jdbc.hot.deploy",
false);
+ }
+
private static boolean useDbcp(final Properties properties) {
return "true".equalsIgnoreCase(properties.getProperty(POOL_PROPERTY,
"true"));
}
@@ -88,7 +92,7 @@ public class DataSourceFactory {
properties.remove("LoginTimeout");
}
- public static DataSource create(String name, boolean managed, String
driver) {
+ public static DataSource create(String name, boolean managed, String
driver, Properties properties) {
org.apache.commons.dbcp.BasicDataSource ds;
if (managed) {
XAResourceWrapper xaResourceWrapper =
SystemInstance.get().getComponent(XAResourceWrapper.class);
@@ -100,8 +104,10 @@ public class DataSourceFactory {
} else {
ds = new BasicDataSource(name);
}
+
// force the driver class to be set
ds.setDriverClassName(driver);
+
return ds;
}
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java
URL:
http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java?rev=1364179&r1=1364178&r2=1364179&view=diff
==============================================================================
---
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java
(original)
+++
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/util/PropertyPlaceHolderHelper.java
Sat Jul 21 22:01:10 2012
@@ -46,6 +46,8 @@ public final class PropertyPlaceHolderHe
final Object rawValue = entry.getValue();
if (rawValue instanceof String) {
updated.put(entry.getKey(), value(rawValue.toString()));
+ } else {
+ updated.put(entry.getKey(), rawValue);
}
}
return updated;