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/12/14 15:54:20 UTC

svn commit: r1421908 - /openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java

Author: rmannibucau
Date: Fri Dec 14 14:54:19 2012
New Revision: 1421908

URL: http://svn.apache.org/viewvc?rev=1421908&view=rev
Log:
TOMEE-651 resource type can sometimes be optional - doing it for datasource as a first step

Modified:
    openejb/trunk/openejb/container/openejb-core/src/main/java/org/apache/openejb/config/ConfigurationFactory.java

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=1421908&r1=1421907&r2=1421908&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 Fri Dec 14 14:54:19 2012
@@ -104,6 +104,8 @@ public class ConfigurationFactory implem
     private DynamicDeployer deployer;
     private final DeploymentLoader deploymentLoader;
     private final boolean offline;
+    private final boolean serviceTypeIsAdjustable; // offline is a bit different from this and offline could be off and this on
+
     private static final String CLASSPATH_AS_EAR = "openejb.deployments.classpath.ear";
     static final String WEBSERVICES_ENABLED = "openejb.webservices.enabled";
     static final String OFFLINE_PROPERTY = "openejb.offline";
@@ -124,6 +126,7 @@ public class ConfigurationFactory implem
 
     public ConfigurationFactory(final boolean offline, final DynamicDeployer preAutoConfigDeployer) {
         this.offline = offline;
+        this.serviceTypeIsAdjustable = SystemInstance.get().getOptions().get("openejb.service-type-adjustement", true);
         this.deploymentLoader = new DeploymentLoader();
 
         LocalMBeanServer.reset();
@@ -261,6 +264,7 @@ public class ConfigurationFactory implem
         this.deploymentLoader = new DeploymentLoader();
         this.deployer = deployerChain;
         this.sys = configuration;
+        this.serviceTypeIsAdjustable = true;
     }
 
     public static List<HandlerChainInfo> toHandlerChainInfo(final HandlerChains chains) {
@@ -812,7 +816,7 @@ public class ConfigurationFactory implem
         for (final EjbModule ejb : appModule.getEjbModules()) {
             try {
                 final URL url = ejb.getModuleUri().toURL();
-                if (!libs.contains(url)) {
+                if (libs != null && !libs.contains(url)) {
                     EventHelper.installExtensions(new ResourceFinder("META-INF", url));
                 }
             } catch (IllegalArgumentException iae) {
@@ -1096,6 +1100,15 @@ public class ConfigurationFactory implem
             return ServiceUtils.getServiceProvider(service.getProvider());
         }
 
+        if (service.getType() == null && serviceTypeIsAdjustable) {
+            // try to guess quickly for know type
+            // DataSource
+            if ((service.getProperties().containsKey("JdbcDriver") || service.getProperties().containsKey("url"))
+                    && service.getProperties().containsKey("JtaManaged")) {
+                service.setType("javax.sql.DataSource");
+            }
+        }
+
         if (service.getType() != null) {
             return ServiceUtils.getServiceProviderByType(getProviderType(service), service.getType());
         }