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 2016/07/26 18:23:25 UTC
tomee git commit: TOMEE-1888 don't use tomee datasource factory if
tomcat one is a singleton and already there
Repository: tomee
Updated Branches:
refs/heads/master 6d4a0308a -> 9f91bbcf1
TOMEE-1888 don't use tomee datasource factory if tomcat one is a singleton and already there
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo
Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/9f91bbcf
Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/9f91bbcf
Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/9f91bbcf
Branch: refs/heads/master
Commit: 9f91bbcf186ccdfa2d07fadeb73a97bad96a8aa8
Parents: 6d4a030
Author: Romain manni-Bucau <rm...@gmail.com>
Authored: Tue Jul 26 20:23:13 2016 +0200
Committer: Romain manni-Bucau <rm...@gmail.com>
Committed: Tue Jul 26 20:23:13 2016 +0200
----------------------------------------------------------------------
.../org/apache/tomee/catalina/TomcatWebAppBuilder.java | 12 ++++++++++--
1 file changed, 10 insertions(+), 2 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/tomee/blob/9f91bbcf/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
----------------------------------------------------------------------
diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
index fb384d7..70bb209 100644
--- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
+++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatWebAppBuilder.java
@@ -1157,13 +1157,21 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
final AppModule appModule = loadApplication(standardContext);
appModule.getProperties().put("loader.from", "tomcat");
- if (standardContext.getNamingResources() instanceof OpenEJBNamingResource) {
+ final boolean skipTomeeResourceWrapping = !"true".equalsIgnoreCase(SystemInstance.get().getProperty("tomee.tomcat.resource.wrap", "true"));
+ if (!skipTomeeResourceWrapping && OpenEJBNamingResource.class.isInstance(standardContext.getNamingResources())) {
final Collection<String> importedNames = new ArrayList<>(); // we can get the same resource twice as in tomcat
// add them to the app as resource
+ final boolean forceDataSourceWrapping = "true".equalsIgnoreCase(SystemInstance.get().getProperty("tomee.tomcat.datasource.wrap", "false"));
final OpenEJBNamingResource nr = (OpenEJBNamingResource) standardContext.getNamingResources();
for (final ResourceBase resource : nr.getTomcatResources()) {
final String name = resource.getName();
+
+ // already init (org.apache.catalina.core.NamingContextListener.addResource())
+ // skip wrapping to ensure resource consistency
+ final boolean isDataSource = DataSource.class.getName().equals(resource.getType());
+ final boolean isAlreadyCreated = ContextResource.class.isInstance(resource) && ContextResource.class.cast(resource).getSingleton() && isDataSource;
+
if (!importedNames.contains(name)) {
importedNames.add(name);
} else {
@@ -1183,7 +1191,7 @@ public class TomcatWebAppBuilder implements WebAppBuilder, ContextListener, Pare
if (!found) {
final Resource newResource;
- if (DataSource.class.getName().equals(resource.getType())) { // we forward it to TomEE datasources
+ if (forceDataSourceWrapping || (!isAlreadyCreated && isDataSource)) { // we forward it to TomEE datasources
newResource = new Resource(name, resource.getType());
boolean jta = false;