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 16:33:16 UTC

[tomcat] branch main updated: Remove all references to java.endorsed.dirs

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 c9ea1d5  Remove all references to java.endorsed.dirs
c9ea1d5 is described below

commit c9ea1d5db0b04b0386b79e5cb0a467fb601c860a
Author: Mark Thomas <ma...@apache.org>
AuthorDate: Wed Jul 28 17:28:09 2021 +0100

    Remove all references to java.endorsed.dirs
---
 RELEASE-NOTES                                    |  6 ++---
 RUNNING.txt                                      |  6 -----
 bin/catalina.bat                                 | 28 ++++--------------------
 bin/catalina.sh                                  | 28 ------------------------
 bin/daemon.sh                                    | 15 -------------
 bin/service.bat                                  | 15 +------------
 bin/setclasspath.bat                             | 12 +---------
 bin/setclasspath.sh                              | 13 +----------
 bin/tool-wrapper.bat                             | 22 +------------------
 bin/tool-wrapper.sh                              | 21 ------------------
 java/org/apache/jasper/compiler/AntCompiler.java | 16 --------------
 webapps/docs/changelog.xml                       |  4 ++++
 webapps/docs/class-loader-howto.xml              | 25 +++++----------------
 webapps/docs/jndi-datasource-examples-howto.xml  | 14 ++++++------
 14 files changed, 26 insertions(+), 199 deletions(-)

diff --git a/RELEASE-NOTES b/RELEASE-NOTES
index 1a7b622..70e5abf 100644
--- a/RELEASE-NOTES
+++ b/RELEASE-NOTES
@@ -92,10 +92,8 @@ You can make additional APIs available to all of your web applications by
 putting unpacked classes into a "classes" directory (not created by default),
 or by placing them in JAR files in the "lib" directory.
 
-To override the XML parser implementation or interfaces, use the appropriate
-feature for your JVM. For Java <= 8 use the endorsed standards override
-feature. The default configuration defines JARs located in "endorsed" as endorsed.
-For Java 9+ use the upgradeable modules feature.
+To override the XML parser implementation or interfaces, use the upgradeable
+modules feature.
 
 
 ================================================================
diff --git a/RUNNING.txt b/RUNNING.txt
index a4b2d76..f96d8b9 100644
--- a/RUNNING.txt
+++ b/RUNNING.txt
@@ -272,12 +272,6 @@ In CATALINA_HOME:
 
  * lib  - Libraries and classes, as explained below
 
- * endorsed - Libraries that override standard "Endorsed Standards"
-              libraries provided by JRE. See Classloading documentation
-              in the User Guide for details.
-              This is only supported for Java <= 8.
-              By default this "endorsed" directory is absent.
-
 In the default configuration the JAR libraries and classes both in
 CATALINA_BASE/lib and in CATALINA_HOME/lib will be added to the common
 classpath, but the ones in CATALINA_BASE will be added first and thus will
diff --git a/bin/catalina.bat b/bin/catalina.bat
index 20b06a0..6a322a7 100755
--- a/bin/catalina.bat
+++ b/bin/catalina.bat
@@ -65,13 +65,6 @@ rem                   should be used by Tomcat and also by the stop process,
 rem                   the version command etc.
 rem                   Most options should go into CATALINA_OPTS.
 rem
-rem   JAVA_ENDORSED_DIRS (Optional) Lists of of semi-colon separated directories
-rem                   containing some jars in order to allow replacement of APIs
-rem                   created outside of the JCP (i.e. DOM and SAX from W3C).
-rem                   It can also be used to update the XML parser implementation.
-rem                   This is only supported for Java <= 8.
-rem                   Defaults to $CATALINA_HOME/endorsed.
-rem
 rem   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
 rem                   command is executed. The default is "dt_socket".
 rem
@@ -231,19 +224,6 @@ set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util=ALL-UNN
 set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.base/java.util.concurrent=ALL-UNNAMED"
 set "JDK_JAVA_OPTIONS=%JDK_JAVA_OPTIONS% --add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED"
 
-rem Java 9 no longer supports the java.endorsed.dirs
-rem system property. Only try to use it if
-rem JAVA_ENDORSED_DIRS was explicitly set
-rem or CATALINA_HOME/endorsed exists.
-set ENDORSED_PROP=ignore.endorsed.dirs
-if "%JAVA_ENDORSED_DIRS%" == "" goto noEndorsedVar
-set ENDORSED_PROP=java.endorsed.dirs
-goto doneEndorsed
-:noEndorsedVar
-if not exist "%CATALINA_HOME%\endorsed" goto doneEndorsed
-set ENDORSED_PROP=java.endorsed.dirs
-:doneEndorsed
-
 rem ----- Execute The Requested Command ---------------------------------------
 
 echo Using CATALINA_BASE:   "%CATALINA_BASE%"
@@ -361,17 +341,17 @@ goto setArgs
 rem Execute Java with the applicable properties
 if not "%JPDA%" == "" goto doJpda
 if not "%SECURITY_POLICY_FILE%" == "" goto doSecurity
-%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
 goto end
 :doSecurity
-%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
 goto end
 :doJpda
 if not "%SECURITY_POLICY_FILE%" == "" goto doSecurityJpda
-%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %JPDA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %JPDA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -classpath "%CLASSPATH%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
 goto end
 :doSecurityJpda
-%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %JPDA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
+%_EXECJAVA% %CATALINA_LOGGING_CONFIG% %LOGGING_MANAGER% %JAVA_OPTS% %JPDA_OPTS% %CATALINA_OPTS% %DEBUG_OPTS% -classpath "%CLASSPATH%" -Djava.security.manager -Djava.security.policy=="%SECURITY_POLICY_FILE%" -Dcatalina.base="%CATALINA_BASE%" -Dcatalina.home="%CATALINA_HOME%" -Djava.io.tmpdir="%CATALINA_TMPDIR%" %MAINCLASS% %CMD_LINE_ARGS% %ACTION%
 goto end
 
 :end
diff --git a/bin/catalina.sh b/bin/catalina.sh
index b77831b..57627bb 100755
--- a/bin/catalina.sh
+++ b/bin/catalina.sh
@@ -69,13 +69,6 @@
 #                   the version command etc.
 #                   Most options should go into CATALINA_OPTS.
 #
-#   JAVA_ENDORSED_DIRS (Optional) Lists of of colon separated directories
-#                   containing some jars in order to allow replacement of APIs
-#                   created outside of the JCP (i.e. DOM and SAX from W3C).
-#                   It can also be used to update the XML parser implementation.
-#                   This is only supported for Java <= 8.
-#                   Defaults to $CATALINA_HOME/endorsed.
-#
 #   JPDA_TRANSPORT  (Optional) JPDA transport used when the "jpda start"
 #                   command is executed. The default is "dt_socket".
 #
@@ -251,7 +244,6 @@ if $cygwin; then
   CATALINA_BASE=`cygpath --absolute --windows "$CATALINA_BASE"`
   CATALINA_TMPDIR=`cygpath --absolute --windows "$CATALINA_TMPDIR"`
   CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-  [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
 fi
 
 if [ -z "$JSSE_OPTS" ] ; then
@@ -283,18 +275,6 @@ if [ -z "$UMASK" ]; then
 fi
 umask $UMASK
 
-# Java 9 no longer supports the java.endorsed.dirs
-# system property. Only try to use it if
-# JAVA_ENDORSED_DIRS was explicitly set
-# or CATALINA_HOME/endorsed exists.
-ENDORSED_PROP=ignore.endorsed.dirs
-if [ -n "$JAVA_ENDORSED_DIRS" ]; then
-    ENDORSED_PROP=java.endorsed.dirs
-fi
-if [ -d "$CATALINA_HOME/endorsed" ]; then
-    ENDORSED_PROP=java.endorsed.dirs
-fi
-
 # Make the umask available when using the org.apache.catalina.security.SecurityListener
 JAVA_OPTS="$JAVA_OPTS -Dorg.apache.catalina.security.SecurityListener.UMASK=`umask`"
 
@@ -366,7 +346,6 @@ if [ "$1" = "debug" ] ; then
       fi
       shift
       eval exec "\"$_RUNJDB\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-        -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
         -classpath "$CLASSPATH" \
         -sourcepath "$CATALINA_HOME"/../../java \
         -Djava.security.manager \
@@ -377,7 +356,6 @@ if [ "$1" = "debug" ] ; then
         org.apache.catalina.startup.Bootstrap "$@" start
     else
       eval exec "\"$_RUNJDB\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-        -D$ENDORSED_PROP="$JAVA_ENDORSED_DIRS" \
         -classpath "$CLASSPATH" \
         -sourcepath "$CATALINA_HOME"/../../java \
         -Dcatalina.base="$CATALINA_BASE" \
@@ -396,7 +374,6 @@ elif [ "$1" = "run" ]; then
     fi
     shift
     eval exec "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -classpath "\"$CLASSPATH\"" \
       -Djava.security.manager \
       -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
@@ -406,7 +383,6 @@ elif [ "$1" = "run" ]; then
       org.apache.catalina.startup.Bootstrap "$@" start
   else
     eval exec "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -classpath "\"$CLASSPATH\"" \
       -Dcatalina.base="\"$CATALINA_BASE\"" \
       -Dcatalina.home="\"$CATALINA_HOME\"" \
@@ -477,7 +453,6 @@ elif [ "$1" = "start" ] ; then
     fi
     shift
     eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -classpath "\"$CLASSPATH\"" \
       -Djava.security.manager \
       -Djava.security.policy=="\"$CATALINA_BASE/conf/catalina.policy\"" \
@@ -489,7 +464,6 @@ elif [ "$1" = "start" ] ; then
 
   else
     eval $_NOHUP "\"$_RUNJAVA\"" "\"$CATALINA_LOGGING_CONFIG\"" $LOGGING_MANAGER "$JAVA_OPTS" "$CATALINA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -classpath "\"$CLASSPATH\"" \
       -Dcatalina.base="\"$CATALINA_BASE\"" \
       -Dcatalina.home="\"$CATALINA_HOME\"" \
@@ -542,7 +516,6 @@ elif [ "$1" = "stop" ] ; then
   fi
 
   eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
-    -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
     -classpath "\"$CLASSPATH\"" \
     -Dcatalina.base="\"$CATALINA_BASE\"" \
     -Dcatalina.home="\"$CATALINA_HOME\"" \
@@ -629,7 +602,6 @@ elif [ "$1" = "stop" ] ; then
 elif [ "$1" = "configtest" ] ; then
 
     eval "\"$_RUNJAVA\"" $LOGGING_MANAGER "$JAVA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -classpath "\"$CLASSPATH\"" \
       -Dcatalina.base="\"$CATALINA_BASE\"" \
       -Dcatalina.home="\"$CATALINA_HOME\"" \
diff --git a/bin/daemon.sh b/bin/daemon.sh
index 946bbe7..b3a3363 100755
--- a/bin/daemon.sh
+++ b/bin/daemon.sh
@@ -189,18 +189,6 @@ if [ -z "$UMASK" ]; then
 fi
 umask $UMASK
 
-# Java 9 no longer supports the java.endorsed.dirs
-# system property. Only try to use it if
-# JAVA_ENDORSED_DIRS was explicitly set
-# or CATALINA_HOME/endorsed exists.
-ENDORSED_PROP=ignore.endorsed.dirs
-if [ -n "$JAVA_ENDORSED_DIRS" ]; then
-    ENDORSED_PROP=java.endorsed.dirs
-fi
-if [ -d "$CATALINA_HOME/endorsed" ]; then
-    ENDORSED_PROP=java.endorsed.dirs
-fi
-
 # ----- Execute The Requested Command -----------------------------------------
 case "$1" in
     run     )
@@ -216,7 +204,6 @@ case "$1" in
       -errfile "\"&2\"" \
       -classpath "\"$CLASSPATH\"" \
       "\"$CATALINA_LOGGING_CONFIG\"" "$JAVA_OPTS" "$CATALINA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -Dcatalina.base="\"$CATALINA_BASE\"" \
       -Dcatalina.home="\"$CATALINA_HOME\"" \
       -Djava.io.tmpdir="\"$CATALINA_TMP\"" \
@@ -235,7 +222,6 @@ case "$1" in
       -errfile "\"&1\"" \
       -classpath "\"$CLASSPATH\"" \
       "\"$CATALINA_LOGGING_CONFIG\"" "$JAVA_OPTS" "$CATALINA_OPTS" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -Dcatalina.base="\"$CATALINA_BASE\"" \
       -Dcatalina.home="\"$CATALINA_HOME\"" \
       -Djava.io.tmpdir="\"$CATALINA_TMP\"" \
@@ -248,7 +234,6 @@ case "$1" in
       -stop \
       -pidfile "\"$CATALINA_PID\"" \
       -classpath "\"$CLASSPATH\"" \
-      -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
       -Dcatalina.base="\"$CATALINA_BASE\"" \
       -Dcatalina.home="\"$CATALINA_HOME\"" \
       -Djava.io.tmpdir="\"$CATALINA_TMP\"" \
diff --git a/bin/service.bat b/bin/service.bat
index a1ab56d..e54a70e 100755
--- a/bin/service.bat
+++ b/bin/service.bat
@@ -133,19 +133,6 @@ if not "%CATALINA_BASE%" == "" goto gotBase
 set "CATALINA_BASE=%CATALINA_HOME%"
 :gotBase
 
-rem Java 9 no longer supports the java.endorsed.dirs
-rem system property. Only try to use it if
-rem JAVA_ENDORSED_DIRS was explicitly set
-rem or CATALINA_HOME/endorsed exists.
-set ENDORSED_PROP=ignore.endorsed.dirs
-if "%JAVA_ENDORSED_DIRS%" == "" goto noEndorsedVar
-set ENDORSED_PROP=java.endorsed.dirs
-goto doneEndorsed
-:noEndorsedVar
-if not exist "%CATALINA_HOME%\endorsed" goto doneEndorsed
-set ENDORSED_PROP=java.endorsed.dirs
-:doneEndorsed
-
 rem Process the requested command
 if /i %SERVICE_CMD% == install goto doInstall
 if /i %SERVICE_CMD% == remove goto doRemove
@@ -225,7 +212,7 @@ if exist "%CATALINA_HOME%\bin\%DEFAULT_SERVICE_NAME%.exe" (
     --StopClass org.apache.catalina.startup.Bootstrap ^
     --StartParams start ^
     --StopParams stop ^
-    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-D%ENDORSED_PROP%=%CATALINA_HOME%\endorsed;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;%JvmArgs%" ^
+    --JvmOptions "-Dcatalina.home=%CATALINA_HOME%;-Dcatalina.base=%CATALINA_BASE%;-Djava.io.tmpdir=%CATALINA_BASE%\temp;-Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager;-Djava.util.logging.config.file=%CATALINA_BASE%\conf\logging.properties;%JvmArgs%" ^
     --JvmOptions9 "--add-opens=java.base/java.lang=ALL-UNNAMED#--add-opens=java.base/java.io=ALL-UNNAMED#--add-opens=java.base/java.util=ALL-UNNAMED#--add-opens=java.base/java.util.concurrent=ALL-UNNAMED#--add-opens=java.rmi/sun.rmi.transport=ALL-UNNAMED" ^
     --Startup "%SERVICE_STARTUP_MODE%" ^
     --JvmMs "%JvmMs%" ^
diff --git a/bin/setclasspath.bat b/bin/setclasspath.bat
index 12da138..41548ef 100755
--- a/bin/setclasspath.bat
+++ b/bin/setclasspath.bat
@@ -16,8 +16,7 @@ rem limitations under the License.
 
 rem ---------------------------------------------------------------------------
 rem Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings
-rem are valid and consistent with the selected start-up options and set up the
-rem endorsed directory.
+rem are valid and consistent with the selected start-up options.
 rem ---------------------------------------------------------------------------
 
 rem Make sure prerequisite environment variables are set
@@ -63,15 +62,6 @@ echo This environment variable is needed to run this program
 goto exit
 
 :okJava
-rem Don't override the endorsed dir if the user has set it previously
-if not "%JAVA_ENDORSED_DIRS%" == "" goto gotEndorseddir
-rem Java 9 no longer supports the java.endorsed.dirs
-rem system property. Only try to use it if
-rem CATALINA_HOME/endorsed exists.
-if not exist "%CATALINA_HOME%\endorsed" goto gotEndorseddir
-set "JAVA_ENDORSED_DIRS=%CATALINA_HOME%\endorsed"
-:gotEndorseddir
-
 rem Don't override _RUNJAVA if the user has set it previously
 if not "%_RUNJAVA%" == "" goto gotRunJava
 rem Set standard command for invoking Java.
diff --git a/bin/setclasspath.sh b/bin/setclasspath.sh
index 4ae4b6a..b81bc19 100755
--- a/bin/setclasspath.sh
+++ b/bin/setclasspath.sh
@@ -17,8 +17,7 @@
 
 # -----------------------------------------------------------------------------
 #  Set JAVA_HOME or JRE_HOME if not already set, ensure any provided settings
-#  are valid and consistent with the selected start-up options and set up the
-#  endorsed directory.
+#  are valid and consistent with the selected start-up options.
 # -----------------------------------------------------------------------------
 
 # Make sure prerequisite environment variables are set
@@ -77,16 +76,6 @@ if [ "$1" = "debug" ] ; then
   fi
 fi
 
-# Don't override the endorsed dir if the user has set it previously
-if [ -z "$JAVA_ENDORSED_DIRS" ]; then
-  # Java 9 no longer supports the java.endorsed.dirs
-  # system property. Only try to use it if
-  # CATALINA_HOME/endorsed exists.
-  if [ -d "$CATALINA_HOME"/endorsed ]; then
-    JAVA_ENDORSED_DIRS="$CATALINA_HOME"/endorsed
-  fi
-fi
-
 # Set standard commands for invoking Java, if not already set.
 if [ -z "$_RUNJAVA" ]; then
   _RUNJAVA="$JRE_HOME"/bin/java
diff --git a/bin/tool-wrapper.bat b/bin/tool-wrapper.bat
index 94de4fe..64f38a0 100755
--- a/bin/tool-wrapper.bat
+++ b/bin/tool-wrapper.bat
@@ -31,13 +31,6 @@ rem                   Defaults to JAVA_HOME if empty. If JRE_HOME and JAVA_HOME
 rem                   are both set, JRE_HOME is used.
 rem
 rem   JAVA_OPTS       (Optional) Java runtime options.
-rem
-rem   JAVA_ENDORSED_DIRS (Optional) Lists of of semi-colon separated directories
-rem                   containing some jars in order to allow replacement of APIs
-rem                   created outside of the JCP (i.e. DOM and SAX from W3C).
-rem                   It can also be used to update the XML parser implementation.
-rem                   This is only supported for Java <= 8.
-rem                   Defaults to $CATALINA_HOME/endorsed.
 rem ---------------------------------------------------------------------------
 
 setlocal
@@ -83,19 +76,6 @@ set "CLASSPATH=%CLASSPATH%%CATALINA_HOME%\bin\bootstrap.jar;%CATALINA_HOME%\bin\
 
 set JAVA_OPTS=%JAVA_OPTS% -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager
 
-rem Java 9 no longer supports the java.endorsed.dirs
-rem system property. Only try to use it if
-rem JAVA_ENDORSED_DIRS was explicitly set
-rem or CATALINA_HOME/endorsed exists.
-set ENDORSED_PROP=ignore.endorsed.dirs
-if "%JAVA_ENDORSED_DIRS%" == "" goto noEndorsedVar
-set ENDORSED_PROP=java.endorsed.dirs
-goto doneEndorsed
-:noEndorsedVar
-if not exist "%CATALINA_HOME%\endorsed" goto doneEndorsed
-set ENDORSED_PROP=java.endorsed.dirs
-:doneEndorsed
-
 rem Get remaining unshifted command line arguments and save them in the
 set CMD_LINE_ARGS=
 :setArgs
@@ -105,6 +85,6 @@ shift
 goto setArgs
 :doneSetArgs
 
-%_RUNJAVA% %JAVA_OPTS% %TOOL_OPTS% -D%ENDORSED_PROP%="%JAVA_ENDORSED_DIRS%" -classpath "%CLASSPATH%" -Dcatalina.home="%CATALINA_HOME%" org.apache.catalina.startup.Tool %CMD_LINE_ARGS%
+%_RUNJAVA% %JAVA_OPTS% %TOOL_OPTS% -classpath "%CLASSPATH%" -Dcatalina.home="%CATALINA_HOME%" org.apache.catalina.startup.Tool %CMD_LINE_ARGS%
 
 :end
diff --git a/bin/tool-wrapper.sh b/bin/tool-wrapper.sh
index 863ca49..5a7f4b2 100755
--- a/bin/tool-wrapper.sh
+++ b/bin/tool-wrapper.sh
@@ -32,13 +32,6 @@
 #                   are both set, JRE_HOME is used.
 #
 #   JAVA_OPTS       (Optional) Java runtime options.
-#
-#   JAVA_ENDORSED_DIRS (Optional) Lists of of colon separated directories
-#                   containing some jars in order to allow replacement of APIs
-#                   created outside of the JCP (i.e. DOM and SAX from W3C).
-#                   It can also be used to update the XML parser implementation.
-#                   This is only supported for Java <= 8.
-#                   Defaults to $CATALINA_HOME/endorsed.
 # -----------------------------------------------------------------------------
 
 # OS specific support.  $var _must_ be set to either true or false.
@@ -127,19 +120,6 @@ if $cygwin; then
   JRE_HOME=`cygpath --absolute --windows "$JRE_HOME"`
   CATALINA_HOME=`cygpath --absolute --windows "$CATALINA_HOME"`
   CLASSPATH=`cygpath --path --windows "$CLASSPATH"`
-  [ -n "$JAVA_ENDORSED_DIRS" ] && JAVA_ENDORSED_DIRS=`cygpath --path --windows "$JAVA_ENDORSED_DIRS"`
-fi
-
-# Java 9 no longer supports the java.endorsed.dirs
-# system property. Only try to use it if
-# JAVA_ENDORSED_DIRS was explicitly set
-# or CATALINA_HOME/endorsed exists.
-ENDORSED_PROP=ignore.endorsed.dirs
-if [ -n "$JAVA_ENDORSED_DIRS" ]; then
-    ENDORSED_PROP=java.endorsed.dirs
-fi
-if [ -d "$CATALINA_HOME/endorsed" ]; then
-    ENDORSED_PROP=java.endorsed.dirs
 fi
 
 JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLogManager"
@@ -147,7 +127,6 @@ JAVA_OPTS="$JAVA_OPTS -Djava.util.logging.manager=org.apache.juli.ClassLoaderLog
 # ----- Execute The Requested Command -----------------------------------------
 
 eval exec "\"$_RUNJAVA\"" "$JAVA_OPTS" "$TOOL_OPTS" \
-  -D$ENDORSED_PROP="\"$JAVA_ENDORSED_DIRS\"" \
   -classpath "\"$CLASSPATH\"" \
   -Dcatalina.home="\"$CATALINA_HOME\"" \
   org.apache.catalina.startup.Tool "$@"
diff --git a/java/org/apache/jasper/compiler/AntCompiler.java b/java/org/apache/jasper/compiler/AntCompiler.java
index 3e14bc7..d81eaa1 100644
--- a/java/org/apache/jasper/compiler/AntCompiler.java
+++ b/java/org/apache/jasper/compiler/AntCompiler.java
@@ -177,22 +177,6 @@ public class AntCompiler extends Compiler {
             info.append("    extension dir=" + exts + "\n");
         }
 
-        // Add endorsed directories if any are specified and we're forking
-        // See Bugzilla 31257
-        if(ctxt.getOptions().getFork()) {
-            String endorsed = System.getProperty("java.endorsed.dirs");
-            if(endorsed != null) {
-                Javac.ImplementationSpecificArgument endorsedArg =
-                    javac.createCompilerArg();
-                endorsedArg.setLine("-J-Djava.endorsed.dirs=" +
-                        quotePathList(endorsed));
-                info.append("    endorsed dir=" + quotePathList(endorsed) +
-                        "\n");
-            } else {
-                info.append("    no endorsed dirs specified\n");
-            }
-        }
-
         // Configure the compiler object
         javac.setEncoding(javaEncoding);
         javac.setClasspath(path);
diff --git a/webapps/docs/changelog.xml b/webapps/docs/changelog.xml
index c561f20..4cbf894 100644
--- a/webapps/docs/changelog.xml
+++ b/webapps/docs/changelog.xml
@@ -149,6 +149,10 @@
         remove Java 8 specific code now that the minimum Java version has been
         increased to 11. (markt)
       </scode>
+      <scode>
+        Remove all references to the endorsed standards override feature as it
+        is not supported in Java 11. (markt)
+      </scode>
     </changelog>
   </subsection>
   <subsection name="Coyote">
diff --git a/webapps/docs/class-loader-howto.xml b/webapps/docs/class-loader-howto.xml
index f80fb6d..c2d7c2c 100644
--- a/webapps/docs/class-loader-howto.xml
+++ b/webapps/docs/class-loader-howto.xml
@@ -178,9 +178,8 @@ class from the web application's <em>WebappX</em> class loader is processed,
 this class loader will look in the local repositories <strong>first</strong>,
 instead of delegating before looking.  There are exceptions. Classes which are
 part of the JRE base classes cannot be overridden. There are some exceptions
-such as the XML parser components which can be overridden using the appropriate
-JVM feature which is the endorsed standards override feature for Java &lt;= 8
-and the upgradeable modules feature for Java 9+.
+such as the XML parser components which can be overridden using the upgradeable
+modules feature for Java 9+.
 Lastly, the web application class loader will always delegate first for Jakarta
 EE API classes for the specifications implemented by Tomcat
 (Servlet, JSP, EL, WebSocket). All other class loaders in Tomcat follow the
@@ -224,23 +223,9 @@ when you are running modern versions of Java, because the usual class loader
 delegation process will always choose the implementation inside the JDK in
 preference to this one.</p>
 
-<p>Java &lt;= 8 supports a mechanism called the "Endorsed Standards Override
-Mechanism" to allow replacement of APIs created outside of the JCP
-(i.e. DOM and SAX from W3C).  It can also be used to update the XML parser
-implementation.  For more information, see:
-<a href="http://docs.oracle.com/javase/1.5.0/docs/guide/standards/index.html">
-http://docs.oracle.com/javase/1.5.0/docs/guide/standards/index.html</a>. For
-Java 9+, use the upgradeable modules feature.</p>
-
-<p>Tomcat utilizes the endorsed mechanism by including the system property setting
-<code>-Djava.endorsed.dirs=$JAVA_ENDORSED_DIRS</code> in the
-command line that starts the container. The default value of this option is
-<em>$CATALINA_HOME/endorsed</em>. This <em>endorsed</em> directory is not
-created by default. Note that the endorsed feature is no longer supported
-with Java 9 and the above system property will only be set if either the
-directory <em>$CATALINA_HOME/endorsed</em> exists, or the variable
-<code>JAVA_ENDORSED_DIRS</code> has been set.
-</p>
+<p>Java 9+ supports a mechanism called upgradeable modules to allow replacement
+of APIs created outside of the JCP (i.e. DOM and SAX from W3C).  It can also be
+used to update the XML parser implementation.</p>
 
 <p>Note that overriding any JRE component carries risk. If the overriding
 component does not provide a 100% compatible API (e.g. the API provided by
diff --git a/webapps/docs/jndi-datasource-examples-howto.xml b/webapps/docs/jndi-datasource-examples-howto.xml
index 36b691f..60ea32f 100644
--- a/webapps/docs/jndi-datasource-examples-howto.xml
+++ b/webapps/docs/jndi-datasource-examples-howto.xml
@@ -87,13 +87,13 @@ that is included with Apache Tomcat solves this by triggering the driver scan
 during Tomcat startup. This is enabled by default. It means that only
 libraries visible to the common class loader and its parents will be scanned for
 database drivers. This include drivers in <code>$CATALINA_HOME/lib</code>,
-<code>$CATALINA_BASE/lib</code>, the class path and (where the JRE supports it)
-the endorsed directory. Drivers packaged in web applications (in
-<code>WEB-INF/lib</code>) and in the shared class loader (where configured) will
-not be visible and will not be loaded automatically. If you are considering
-disabling this feature, note that the scan would be triggered by the first web
-application that is using JDBC, leading to failures when this web application is
-reloaded and for other web applications that rely on this feature.
+<code>$CATALINA_BASE/lib</code>, the class path and the modeul path. Drivers
+packaged in web applications (in <code>WEB-INF/lib</code>) and in the shared
+class loader (where configured) will not be visible and will not be loaded
+automatically. If you are considering disabling this feature, note that the scan
+would be triggered by the first web application that is using JDBC, leading to
+failures when this web application is reloaded and for other web applications
+that rely on this feature.
 </p>
 
 <p>Thus, the web applications that have database drivers in their

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