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


Reply via email to