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