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/fb_tomee8
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);
     }
 }

Reply via email to