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 2012/06/07 18:00:02 UTC
svn commit: r1347695 - in /openejb/trunk/openejb:
container/openejb-core/src/main/java/org/apache/openejb/config/
container/openejb-core/src/main/resources/META-INF/org.apache.openejb.embedded/
container/openejb-core/src/main/resources/META-INF/org.apa...
Author: rmannibucau
Date: Thu Jun 7 16:00:01 2012
New Revision: 1347695
URL: http://svn.apache.org/viewvc?rev=1347695&view=rev
Log:
sometimes default values are just not what we want so allow to skip them
Added:
openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java
Modified:
openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.embedded/service-jar.xml
openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml
openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.tomee/service-jar.xml
openejb/trunk/openejb/tomee/tomee-webapp/src/main/resources/META-INF/org.apache.tomee/service-jar.xml
Modified: openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java?rev=1347695&r1=1347694&r2=1347695&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java Thu Jun 7 16:00:01 2012
@@ -114,6 +114,8 @@ public class ConfigurationFactory implem
private static final Logger logger = Logger.getInstance(LogCategory.OPENEJB_STARTUP_CONFIG, ConfigurationFactory.class);
private static final Messages messages = new Messages(ConfigurationFactory.class);
+ private static final String IGNORE_DEFAULT_VALUES_PROP = "IgnoreDefaultValues";
+
private String configLocation;
private OpenEjbConfiguration sys;
private Openejb openejb;
@@ -956,10 +958,17 @@ public class ConfigurationFactory implem
}
final Properties props = new SuperProperties();
- props.putAll(provider.getProperties());
+
+ // weird hack but sometimes we don't want default values when we want null for instance
+ if (service.getProperties() == null || "false".equals(service.getProperties().getProperty(IGNORE_DEFAULT_VALUES_PROP, "false"))) {
+ props.putAll(provider.getProperties());
+ }
+
props.putAll(service.getProperties());
props.putAll(overrides);
+ props.remove(IGNORE_DEFAULT_VALUES_PROP);
+
if (providerType != null && !provider.getService().equals(providerType)) {
throw new OpenEJBException(messages.format("configureService.wrongProviderType", service.getId(), providerType));
}
Modified: openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.embedded/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.embedded/service-jar.xml?rev=1347695&r1=1347694&r2=1347695&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.embedded/service-jar.xml (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb.embedded/service-jar.xml Thu Jun 7 16:00:01 2012
@@ -714,6 +714,10 @@
# original logical connection wrapper.
AccessToUnderlyingConnectionAllowed false
+
+ # use only all set values in this config
+ # will need a lot of properties but allow to not set some values
+ IgnoreDefaultValues = false
</ServiceProvider>
<ServiceProvider
Modified: openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml?rev=1347695&r1=1347694&r2=1347695&view=diff
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml (original)
+++ openejb/trunk/openejb/container/openejb-core/src/main/resources/META-INF/org.apache.openejb/service-jar.xml Thu Jun 7 16:00:01 2012
@@ -748,6 +748,10 @@
# original logical connection wrapper.
AccessToUnderlyingConnectionAllowed false
+
+ # use only all set values in this config
+ # will need a lot of properties but allow to not set some values
+ IgnoreDefaultValues = false
</ServiceProvider>
<ServiceProvider
Added: openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java?rev=1347695&view=auto
==============================================================================
--- openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java (added)
+++ openejb/trunk/openejb/container/openejb-core/src/test/java/org/apache/openejb/resource/jdbc/IgnoreDefaultTest.java Thu Jun 7 16:00:01 2012
@@ -0,0 +1,49 @@
+package org.apache.openejb.resource.jdbc;
+
+import javax.naming.NamingException;
+import javax.sql.DataSource;
+import org.apache.openejb.OpenEJBException;
+import org.apache.openejb.assembler.classic.Assembler;
+import org.apache.openejb.assembler.classic.ResourceInfo;
+import org.apache.openejb.config.ConfigurationFactory;
+import org.apache.openejb.config.sys.Resource;
+import org.hsqldb.jdbcDriver;
+import org.junit.Test;
+
+import static org.hamcrest.CoreMatchers.instanceOf;
+import static org.junit.Assert.assertEquals;
+import static org.junit.Assert.assertThat;
+
+public class IgnoreDefaultTest {
+ private static Assembler assembler = new Assembler();
+ private static ConfigurationFactory configurationFactory = new ConfigurationFactory();
+
+ @Test
+ public void createNormalDs() throws OpenEJBException, NamingException {
+ final Resource resource = new Resource(IgnoreDefaultTest.class.getName() + "#normal");
+ resource.setType(DataSource.class.getName());
+ final ResourceInfo info = configurationFactory.configureService(resource, ResourceInfo.class);
+ assembler.createResource(info);
+
+ check(resource.getId(), "sa", "");
+ }
+
+ @Test
+ public void createWithoutDefaultDs() throws OpenEJBException, NamingException {
+ final Resource resource = new Resource(IgnoreDefaultTest.class.getName() + "#without-default");
+ resource.setType(DataSource.class.getName());
+ resource.getProperties().setProperty("IgnoreDefaultValues", "true");
+ resource.getProperties().setProperty("JdbcDriver", jdbcDriver.class.getName());
+ final ResourceInfo info = configurationFactory.configureService(resource, ResourceInfo.class);
+ assembler.createResource(info);
+
+ check(resource.getId(), null, null);
+ }
+
+ private void check(String id, String user, String password) throws NamingException {
+ final DataSource ds = (DataSource) assembler.getContainerSystem().getJNDIContext().lookup("openejb/Resource/" + id);
+ assertThat(ds, instanceOf(org.apache.commons.dbcp.BasicDataSource.class));
+ assertEquals(user, ((org.apache.commons.dbcp.BasicDataSource) ds).getUsername());
+ assertEquals(password, ((org.apache.commons.dbcp.BasicDataSource) ds).getPassword());
+ }
+}
Modified: openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml?rev=1347695&r1=1347694&r2=1347695&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.openejb.tomcat/service-jar.xml Thu Jun 7 16:00:01 2012
@@ -721,6 +721,10 @@
# original logical connection wrapper.
AccessToUnderlyingConnectionAllowed false
+
+ # use only all set values in this config
+ # will need a lot of properties but allow to not set some values
+ IgnoreDefaultValues = false
</ServiceProvider>
<ServiceProvider
Modified: openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.tomee/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.tomee/service-jar.xml?rev=1347695&r1=1347694&r2=1347695&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.tomee/service-jar.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-embedded/src/main/resources/META-INF/org.apache.tomee/service-jar.xml Thu Jun 7 16:00:01 2012
@@ -721,6 +721,10 @@
# original logical connection wrapper.
AccessToUnderlyingConnectionAllowed false
+
+ # use only all set values in this config
+ # will need a lot of properties but allow to not set some values
+ IgnoreDefaultValues = false
</ServiceProvider>
<ServiceProvider
Modified: openejb/trunk/openejb/tomee/tomee-webapp/src/main/resources/META-INF/org.apache.tomee/service-jar.xml
URL: http://svn.apache.org/viewvc/openejb/trunk/openejb/tomee/tomee-webapp/src/main/resources/META-INF/org.apache.tomee/service-jar.xml?rev=1347695&r1=1347694&r2=1347695&view=diff
==============================================================================
--- openejb/trunk/openejb/tomee/tomee-webapp/src/main/resources/META-INF/org.apache.tomee/service-jar.xml (original)
+++ openejb/trunk/openejb/tomee/tomee-webapp/src/main/resources/META-INF/org.apache.tomee/service-jar.xml Thu Jun 7 16:00:01 2012
@@ -726,6 +726,10 @@
# original logical connection wrapper.
AccessToUnderlyingConnectionAllowed false
+
+ # use only all set values in this config
+ # will need a lot of properties but allow to not set some values
+ IgnoreDefaultValues = false
</ServiceProvider>
<ServiceProvider