You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@openwebbeans.apache.org by rm...@apache.org on 2020/01/17 14:57:11 UTC

[openwebbeans-meecrowave] branch master updated: MEECROWAVE-231 enhance @WebXXX scanning for java 11

This is an automated email from the ASF dual-hosted git repository.

rmannibucau pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/openwebbeans-meecrowave.git


The following commit(s) were added to refs/heads/master by this push:
     new e2acf19  MEECROWAVE-231 enhance @WebXXX scanning for java 11
e2acf19 is described below

commit e2acf19e22ea77503bd49fa639bb6cfd7234404a
Author: Romain Manni-Bucau <rm...@gmail.com>
AuthorDate: Fri Jan 17 15:57:06 2020 +0100

    MEECROWAVE-231 enhance @WebXXX scanning for java 11
---
 .../apache/meecrowave/tomcat/MeecrowaveContextConfig.java | 15 ++++++++++++---
 1 file changed, 12 insertions(+), 3 deletions(-)

diff --git a/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/MeecrowaveContextConfig.java b/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/MeecrowaveContextConfig.java
index 466f09f..ccbb43b 100644
--- a/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/MeecrowaveContextConfig.java
+++ b/meecrowave-core/src/main/java/org/apache/meecrowave/tomcat/MeecrowaveContextConfig.java
@@ -141,9 +141,18 @@ public class MeecrowaveContextConfig extends ContextConfig {
             final WebXml annotations = new WebXml();
             annotations.setDistributable(true);
             final URL url = fragment.getURL();
-            final Collection<Class<?>> classes = webClasses.get(url.toExternalForm());
-            if (classes == null) {
-                return;
+            String urlString = url.toExternalForm();
+            Collection<Class<?>> classes = webClasses.get(urlString);
+            if (classes == null) { // mainly java 11, no need on java 8
+                if (urlString.startsWith("file:") && urlString.endsWith("jar")) {
+                    urlString = "jar:" + urlString + "!/";
+                } else {
+                    return;
+                }
+                classes = webClasses.get(urlString);
+                if (classes == null) {
+                    return;
+                }
             }
             classes.forEach(clazz -> {
                 try (final InputStream stream = loader.getResourceAsStream(clazz.getName().replace('.', '/') + ".class")) {