Removed MicroProfileClassLoaderEnricher. Using configuration to pass jar prefixes to scan in TomEEClassLoaderEnricher.
Project: http://git-wip-us.apache.org/repos/asf/tomee/repo Commit: http://git-wip-us.apache.org/repos/asf/tomee/commit/6c8604cd Tree: http://git-wip-us.apache.org/repos/asf/tomee/tree/6c8604cd Diff: http://git-wip-us.apache.org/repos/asf/tomee/diff/6c8604cd Branch: refs/heads/master Commit: 6c8604cdb54c1473d2f03b9044313ab527eb245c Parents: dd524e5 Author: Roberto Cortez <radcor...@yahoo.com> Authored: Tue Mar 6 00:48:06 2018 +0000 Committer: Roberto Cortez <radcor...@yahoo.com> Committed: Tue Mar 6 00:48:06 2018 +0000 ---------------------------------------------------------------------- .../org/apache/tomee/catalina/TomcatLoader.java | 4 +- .../MicroProfileClassLoaderEnricher.java | 53 -------------------- .../tomee/microprofile/MicroProfileService.java | 26 +++++----- 3 files changed, 15 insertions(+), 68 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/tomee/blob/6c8604cd/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java ---------------------------------------------------------------------- diff --git a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java index 22d9337..b8baad1 100644 --- a/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java +++ b/tomee/tomee-catalina/src/main/java/org/apache/tomee/catalina/TomcatLoader.java @@ -221,6 +221,8 @@ public class TomcatLoader implements Loader { // for compatibility purpose, no more used normally by our trunk SystemInstance.get().setComponent(WebDeploymentListeners.class, new WebDeploymentListeners()); + optionalService(properties, "org.apache.tomee.microprofile.MicroProfileService"); + // tomee webapp enricher final TomEEClassLoaderEnricher classLoaderEnricher = new TomEEClassLoaderEnricher(); SystemInstance.get().setComponent(WebAppEnricher.class, classLoaderEnricher); @@ -234,8 +236,6 @@ public class TomcatLoader implements Loader { } } - optionalService(properties, "org.apache.tomee.microprofile.MicroProfileService"); - // optional services if (optionalService(properties, "org.apache.tomee.webservices.TomeeJaxRsService")) { // in embedded mode we use regex, in tomcat we use tomcat servlet mapping http://git-wip-us.apache.org/repos/asf/tomee/blob/6c8604cd/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileClassLoaderEnricher.java ---------------------------------------------------------------------- diff --git a/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileClassLoaderEnricher.java b/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileClassLoaderEnricher.java deleted file mode 100644 index 7100f87..0000000 --- a/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileClassLoaderEnricher.java +++ /dev/null @@ -1,53 +0,0 @@ -/* - * Licensed to the Apache Software Foundation (ASF) under one or more - * contributor license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright ownership. - * The ASF licenses this file to You under the Apache License, Version 2.0 - * (the "License"); you may not use this file except in compliance with - * the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ -package org.apache.tomee.microprofile; - -import org.apache.openejb.classloader.WebAppEnricher; -import org.apache.tomee.installer.Paths; - -import java.io.File; -import java.net.MalformedURLException; -import java.net.URL; -import java.util.Collection; -import java.util.HashSet; - -public class MicroProfileClassLoaderEnricher implements WebAppEnricher { - private static final String[] MICROPROFILE_LIBS_IMPLS_PREFIXES = new String[]{ - "geronimo-config-impl" - }; - - @SuppressWarnings("Duplicates") - @Override - public URL[] enrichment(final ClassLoader webappClassLaoder) { - final Collection<URL> urls = new HashSet<>(); - - // from prefix - final Paths paths = new Paths(new File(System.getProperty("openejb.home"))); // parameter is useless - for (final String prefix : MICROPROFILE_LIBS_IMPLS_PREFIXES) { - final File file = paths.findTomEELibJar(prefix); - if (file != null) { - try { - urls.add(file.toURI().toURL()); - } catch (final MalformedURLException e) { - // ignored - } - } - } - - return urls.toArray(new URL[urls.size()]); - } -} http://git-wip-us.apache.org/repos/asf/tomee/blob/6c8604cd/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileService.java ---------------------------------------------------------------------- diff --git a/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileService.java b/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileService.java index 94a4bc4..d669b88 100644 --- a/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileService.java +++ b/tomee/tomee-microprofile/src/main/java/org/apache/tomee/microprofile/MicroProfileService.java @@ -16,31 +16,31 @@ */ package org.apache.tomee.microprofile; -import org.apache.openejb.component.ClassLoaderEnricher; import org.apache.openejb.loader.SystemInstance; import org.apache.openejb.spi.Service; -import java.net.URL; import java.util.Properties; +import static org.apache.tomee.catalina.TomEEClassLoaderEnricher.TOMEE_WEBAPP_CLASSLOADER_ENRICHMENT_PREFIXES; + /** * This is used as an optional service in org.apache.tomee.catalina.TomcatLoader */ @SuppressWarnings("unused") public class MicroProfileService implements Service { + // Separate with comma + private static final String MICROPROFILE_LIBS_IMPLS_PREFIXES = "geronimo-config-impl"; + @Override public void init(final Properties props) throws Exception { - enrichClassLoaderWithMicroProfile(); - } + String prefixes = SystemInstance.get().getOptions().get(TOMEE_WEBAPP_CLASSLOADER_ENRICHMENT_PREFIXES, ""); + prefixes = prefixes.isEmpty() ? + MICROPROFILE_LIBS_IMPLS_PREFIXES : + MICROPROFILE_LIBS_IMPLS_PREFIXES + "," + prefixes; - private void enrichClassLoaderWithMicroProfile() { - final ClassLoaderEnricher enricher = SystemInstance.get().getComponent(ClassLoaderEnricher.class); - if (null != enricher) { - final MicroProfileClassLoaderEnricher classLoaderEnricher = new MicroProfileClassLoaderEnricher(); - for (final URL url : classLoaderEnricher.enrichment(null)) { - enricher.addUrl(url); - } - } - SystemInstance.get().removeObserver(this); + SystemInstance.get() + .getOptions() + .getProperties() + .setProperty(TOMEE_WEBAPP_CLASSLOADER_ENRICHMENT_PREFIXES, prefixes); } }