You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tomcat.apache.org by ma...@apache.org on 2021/07/28 12:07:56 UTC

[tomcat] branch main updated: Remove use of JreCompat as it is not required with Java 11+

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

markt pushed a commit to branch main
in repository https://gitbox.apache.org/repos/asf/tomcat.git


The following commit(s) were added to refs/heads/main by this push:
     new 838decd  Remove use of JreCompat as it is not required with Java 11+
838decd is described below

commit 838decd611170bb55810dc948f2be9091c27da7c
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 28 13:07:46 2021 +0100

    Remove use of JreCompat as it is not required with Java 11+
---
 .../tomcat/util/compat/LocalStrings.properties     |  1 -
 .../tomcat/util/compat/LocalStrings_es.properties  |  2 --
 .../tomcat/util/compat/LocalStrings_fr.properties  |  1 -
 .../tomcat/util/compat/LocalStrings_ja.properties  |  1 -
 .../tomcat/util/compat/LocalStrings_ko.properties  |  1 -
 .../util/compat/LocalStrings_zh_CN.properties      |  1 -
 .../tomcat/util/scan/LocalStrings.properties       |  1 +
 .../tomcat/util/scan/LocalStrings_es.properties    |  1 +
 .../tomcat/util/scan/LocalStrings_fr.properties    |  1 +
 .../tomcat/util/scan/LocalStrings_ja.properties    |  1 +
 .../tomcat/util/scan/LocalStrings_ko.properties    |  1 +
 .../tomcat/util/scan/LocalStrings_zh_CN.properties |  1 +
 .../tomcat/util/scan/StandardJarScanner.java       | 28 +++++++++++++++-------
 13 files changed, 25 insertions(+), 16 deletions(-)

diff --git a/java/org/apache/tomcat/util/compat/LocalStrings.properties b/java/org/apache/tomcat/util/compat/LocalStrings.properties
index 8b55643..4286723 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings.properties
@@ -13,7 +13,6 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-jre9Compat.invalidModuleUri=The module URI provided [{0}] could not be converted to a URL for the JarScanner to process
 jre9Compat.javaPre9=Class not found so assuming code is running on a pre-Java 9 JVM
 jre9Compat.unexpected=Failed to create references to Java 9 classes and methods
 
diff --git a/java/org/apache/tomcat/util/compat/LocalStrings_es.properties b/java/org/apache/tomcat/util/compat/LocalStrings_es.properties
index 87b3f59..73f3ca3 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_es.properties
@@ -13,6 +13,4 @@
 # See the License for the specific language governing permissions and
 # limitations under the License.
 
-jre9Compat.invalidModuleUri=El módulo URI proveído [{0}] no pudo ser convertiod a una URL para ser procesado por JarScanner
-
 jreCompat.noApplicationProtocol=Java Runtime no soporta SSLEngine.getApplicationProtocol(). Se necesita Java 9 para usar esta función.
diff --git a/java/org/apache/tomcat/util/compat/LocalStrings_fr.properties b/java/org/apache/tomcat/util/compat/LocalStrings_fr.properties
index cfb8a96..e10efa4 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings_fr.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_fr.properties
@@ -16,7 +16,6 @@
 jre16Compat.javaPre16=Le code est considéré être exécuté sur une JVM antérieure à Java 16 car la classe n'a pas été trouvée
 jre16Compat.unexpected=Impossible de créer les références vers les classes et méthodes de Java 16
 
-jre9Compat.invalidModuleUri=L''URI du module fournie [{0}] n''a pas pu être convertie en URL pour être traitée par le JarScanner
 jre9Compat.javaPre9=Le code est considéré être exécuté sur une JVM antérieure à Java 9 car la classe n'a pas été trouvée
 jre9Compat.unexpected=Impossible de créer les références vers les classes et méthodes de Java 9
 
diff --git a/java/org/apache/tomcat/util/compat/LocalStrings_ja.properties b/java/org/apache/tomcat/util/compat/LocalStrings_ja.properties
index e9d35ea..adda934 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings_ja.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_ja.properties
@@ -16,7 +16,6 @@
 jre16Compat.javaPre16=クラスが見つからないため、コードがJava 16より前のJVMで実行されていると仮定します
 jre16Compat.unexpected=Java16クラスおよびメソッドへの参照の作成に失敗しました
 
-jre9Compat.invalidModuleUri=モジュール URI [{0}] を JarScanner で処理する URL に変換できませんでした。
 jre9Compat.javaPre9=クラスが見つからないため Java 9 以前の JVM 上でコードが実行されていると仮定します
 jre9Compat.unexpected=Java9 クラスやメソッドへの参照の生成に失敗しました
 
diff --git a/java/org/apache/tomcat/util/compat/LocalStrings_ko.properties b/java/org/apache/tomcat/util/compat/LocalStrings_ko.properties
index b5666eb..00acd8f 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings_ko.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_ko.properties
@@ -16,7 +16,6 @@
 jre16Compat.javaPre16=클래스가 발견되지 않습니다. 자바 16 이전의 JVM에서 실행 중인 것으로 보입니다.
 jre16Compat.unexpected=자바 16 클래스들과 메소드들을 참조할 수 없습니다.
 
-jre9Compat.invalidModuleUri=[{0}](으)로 제공된 모듈 URI는 JarScanner가 처리할 수 있는 URL로 변환될 수 없습니다.
 jre9Compat.javaPre9=Java 9 클래스가 발견되지 않습니다. Java 9 이전 버전에서 동작하고 있는 것으로 보입니다.
 jre9Compat.unexpected=Java 9 클래스들과 메소드들을 참조할 수 없습니다.
 
diff --git a/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
index 909c016..c82dcbf 100644
--- a/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/compat/LocalStrings_zh_CN.properties
@@ -16,7 +16,6 @@
 jre16Compat.javaPre16=类未找到,因此假设代码在Java16之前的JVM上运行
 jre16Compat.unexpected=无法创建对Java16中类和方法的引用
 
-jre9Compat.invalidModuleUri=提供的模块URI [{0}]无法转换为JarScanner要处理的URL
 jre9Compat.javaPre9=类未找到,所以假设代码运行在pre-Java 8虚拟机上
 jre9Compat.unexpected=创建对Java 9类的依赖和方法失败
 
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings.properties b/java/org/apache/tomcat/util/scan/LocalStrings.properties
index 2c86045..58d659c 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings.properties
@@ -18,6 +18,7 @@ jarScan.classloaderFail=Failed to scan [{0}] from classloader hierarchy
 jarScan.classloaderJarNoScan=Not performing JAR scanning on file [{0}] from classpath
 jarScan.classloaderJarScan=Scanning JAR [{0}] from classpath
 jarScan.classloaderStart=Scanning for JARs in classloader hierarchy
+jarScan.invalidModuleUri=The module URI provided [{0}] could not be converted to a URL for the JarScanner to process
 jarScan.jarUrlStart=Scanning JAR at URL [{0}]
 jarScan.webinfclassesFail=Failed to scan /WEB-INF/classes
 jarScan.webinflibFail=Failed to scan JAR [{0}] from /WEB-INF/lib
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_es.properties b/java/org/apache/tomcat/util/scan/LocalStrings_es.properties
index 49dcc2d..dee583f 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_es.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_es.properties
@@ -16,5 +16,6 @@
 jarScan.classPath.badEntry=El camino de la clase entrada [{0}] no se puede convertir en una URL
 jarScan.classloaderFail=Fallo al escanear  [{0}] desde la herarquia classloader hierarchy
 jarScan.classloaderJarNoScan=No se ejecutó el escaneo de JAR en el archivo  [{0}] de la ruta de clase
+jarScan.invalidModuleUri=El módulo URI proveído [{0}] no pudo ser convertiod a una URL para ser procesado por JarScanner
 jarScan.webinflibJarNoScan=No se ejecutó escaneo JAR en el archivo [{0}] de /WEB-INF/lib\n
 jarScan.webinflibStart=Buscando JARs en /WEB-INF/lib
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_fr.properties b/java/org/apache/tomcat/util/scan/LocalStrings_fr.properties
index c12194a..abe6dce 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_fr.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_fr.properties
@@ -18,6 +18,7 @@ jarScan.classloaderFail=Echec de recherche dans [{0}] de la hiérarchie de charg
 jarScan.classloaderJarNoScan=Le JAR [{0}] dans le chemin de classes ne sera pas analysé
 jarScan.classloaderJarScan=Analyse du JAR [{0}] du chemin de classes
 jarScan.classloaderStart=Recherche dans les JARs de la hiérarchie de chargeurs de classe
+jarScan.invalidModuleUri=L''URI du module fournie [{0}] n''a pas pu être convertie en URL pour être traitée par le JarScanner
 jarScan.jarUrlStart=Recherche dans le JAR à l''URL [{0}]
 jarScan.webinfclassesFail=Impossible de parcourir /WEB-INF/classes
 jarScan.webinflibFail=Échec de scan du JAR [{0}] de /WEB-INF/lib
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_ja.properties b/java/org/apache/tomcat/util/scan/LocalStrings_ja.properties
index 9bf22d0..e4b4025 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_ja.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_ja.properties
@@ -18,6 +18,7 @@ jarScan.classloaderFail=クラスローダー階層から[{0}]をスキャンで
 jarScan.classloaderJarNoScan=クラスパス中のファイル [{0}] は JAR スキャンをしませんでした。
 jarScan.classloaderJarScan=クラスパスの JAR ファイル [{0}] をスキャンします。
 jarScan.classloaderStart=クラスローダー階層中の JAR ファイルをスキャンします。
+jarSacn.invalidModuleUri=モジュール URI [{0}] を JarScanner で処理する URL に変換できませんでした。
 jarScan.jarUrlStart=URL [{0}] の JAR ファイルをスキャンします。
 jarScan.webinfclassesFail=/WEB-INF/classesのスキャンに失敗しました
 jarScan.webinflibFail=/WEB-INF/libからJAR [{0}]をスキャンできませんでした。
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_ko.properties b/java/org/apache/tomcat/util/scan/LocalStrings_ko.properties
index 579d82d..7b4768c 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_ko.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_ko.properties
@@ -18,6 +18,7 @@ jarScan.classloaderFail=클래스로더 계층구조로부터 [{0}]을(를) 스
 jarScan.classloaderJarNoScan=클래스패스로부터 파일 [{0}]에 대한 JAR 스캔을 수행하지 않습니다.
 jarScan.classloaderJarScan=클래스패스로부터 JAR [{0}]을(를) 스캔합니다.
 jarScan.classloaderStart=클래스로더 계층 구조에서 JAR들을 스캔합니다.
+jarScan.invalidModuleUri=[{0}](으)로 제공된 모듈 URI는 JarScanner가 처리할 수 있는 URL로 변환될 수 없습니다.
 jarScan.jarUrlStart=URL [{0}]에 위치한 JAR를 스캔합니다.
 jarScan.webinfclassesFail=/WEB-INF/classes를 스캔하지 못했습니다.
 jarScan.webinflibFail=/WEB-INF/lib으로부터 JAR [{0}]을(를) 스캔하지 못했습니다.
diff --git a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
index 60d4212..5b15b52 100644
--- a/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
+++ b/java/org/apache/tomcat/util/scan/LocalStrings_zh_CN.properties
@@ -18,6 +18,7 @@ jarScan.classloaderFail=在多级类加载器中扫描[{0}]失败
 jarScan.classloaderJarNoScan=跳过classpath路径[{0}]下的jar包扫描。
 jarScan.classloaderJarScan=从classpath扫描JAR[{0}]
 jarScan.classloaderStart=在类加载器层次结构中扫描JAR
+jarScan.invalidModuleUri=提供的模块URI [{0}]无法转换为JarScanner要处理的URL
 jarScan.jarUrlStart=正在扫描URL [{0}] 上的JAR文件
 jarScan.webinfclassesFail=无法扫描/WEB-INF/classes
 jarScan.webinflibFail=无法从/WEB-INF/lib扫描JAR[{0}]。
diff --git a/java/org/apache/tomcat/util/scan/StandardJarScanner.java b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
index 9a2fb79..a71e8c3 100644
--- a/java/org/apache/tomcat/util/scan/StandardJarScanner.java
+++ b/java/org/apache/tomcat/util/scan/StandardJarScanner.java
@@ -18,6 +18,7 @@ package org.apache.tomcat.util.scan;
 
 import java.io.File;
 import java.io.IOException;
+import java.lang.module.ResolvedModule;
 import java.net.MalformedURLException;
 import java.net.URI;
 import java.net.URL;
@@ -27,6 +28,7 @@ import java.util.Collections;
 import java.util.Deque;
 import java.util.HashSet;
 import java.util.LinkedList;
+import java.util.Optional;
 import java.util.Set;
 import java.util.jar.Attributes;
 import java.util.jar.Manifest;
@@ -42,7 +44,6 @@ import org.apache.tomcat.JarScanner;
 import org.apache.tomcat.JarScannerCallback;
 import org.apache.tomcat.util.ExceptionUtils;
 import org.apache.tomcat.util.buf.UriUtil;
-import org.apache.tomcat.util.compat.JreCompat;
 import org.apache.tomcat.util.res.StringManager;
 
 /**
@@ -272,15 +273,24 @@ public class StandardJarScanner implements JarScanner {
             classLoader = classLoader.getParent();
         }
 
-        if (JreCompat.isJre9Available()) {
-            // The application and platform class loaders are not
-            // instances of URLClassLoader. Use the class path in this
-            // case.
-            addClassPath(classPathUrlsToProcess);
-            // Also add any modules
-            JreCompat.getInstance().addBootModulePath(classPathUrlsToProcess);
-            processURLs(scanType, callback, processedURLs, false, classPathUrlsToProcess);
+        // The application and platform class loaders are not
+        // instances of URLClassLoader. Use the class path in this
+        // case.
+        addClassPath(classPathUrlsToProcess);
+
+        // Also add any modules
+        for (ResolvedModule module : ModuleLayer.boot().configuration().modules()) {
+            Optional<URI> uri = module.reference().location();
+            if (uri.isPresent()) {
+                try {
+                    classPathUrlsToProcess.add(uri.get().toURL());
+                } catch (MalformedURLException e) {
+                    log.warn(sm.getString("jarScan.invalidModuleUri", uri), e);
+                }
+            }
         }
+
+        processURLs(scanType, callback, processedURLs, false, classPathUrlsToProcess);
     }
 
 

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@tomcat.apache.org
For additional commands, e-mail: dev-help@tomcat.apache.org