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());
}