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

jaikiran pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ant.git


The following commit(s) were added to refs/heads/master by this push:
     new a66dafa  add java.security.manager=allow while launching against Java 
19
a66dafa is described below

commit a66dafa7d5ee0ac2717dfbeed1cb47e589938eed
Author: Jaikiran Pai <jaiki...@apache.org>
AuthorDate: Mon Feb 7 09:07:09 2022 +0530

    add java.security.manager=allow while launching against Java 19
---
 java-latest-ea-ci.xml | 51 +++++++++++++++++++++++++++++++++++++++++++++++++++
 src/script/ant        |  2 +-
 src/script/ant.bat    | 16 ++++++++++++----
 3 files changed, 64 insertions(+), 5 deletions(-)

diff --git a/java-latest-ea-ci.xml b/java-latest-ea-ci.xml
new file mode 100644
index 0000000..70e6f2e
--- /dev/null
+++ b/java-latest-ea-ci.xml
@@ -0,0 +1,51 @@
+<?xml version="1.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
+
+       https://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.
+-->
+
+
+<!-- This build file is here to help with the CI jobs in Jenkins where we
+       download and run the Ant tests against the latest early access binaries 
of
+       Java -->
+<project default="download-jdk">
+       <property environment="env"/>
+       <target name="download-jdk" depends="check-file-type, 
download-extract-zip, download-extract-tar"/>
+       <target name="check-file-type">
+               <condition property="zip-artifact">
+                       <!-- check if it ends with .zip -->
+                       <matches string="${env.JDK_DOWNLOAD_URL}" 
pattern="\.zip$"/>
+               </condition>
+               <condition property="tar-artifact">
+                       <!-- check if it ends with .tar.gz -->
+                       <matches string="${env.JDK_DOWNLOAD_URL}" 
pattern="\.tar.gz$"/>
+               </condition>
+       </target>
+       <target name="download-extract-zip" if="zip-artifact">
+               <echo message="Downloading zip file from 
${env.JDK_DOWNLOAD_URL}"/>
+               <get src="${env.JDK_DOWNLOAD_URL}" dest="${basedir}/jdk.zip"/>
+               <unzip src="jdk.zip" dest="${basedir}/java-latest-ea"/>
+       </target>
+       <target name="download-extract-tar" if="tar-artifact">
+               <echo message="Downloading tar.gz file from 
${env.JDK_DOWNLOAD_URL}"/>
+               <get src="${env.JDK_DOWNLOAD_URL}" 
dest="${basedir}/jdk.tar.gz"/>
+               <untar src="jdk.tar.gz" dest="${basedir}/java-latest-ea" 
compression="gzip"/>
+               <!-- restore permission on the extracted tar's bin directory 
contents -->
+               <echo message="restoring permissions of files in directory 
${basedir}/java-latest-ea/**/bin/*"/>
+               <chmod dir="${basedir}/java-latest-ea/" perm="a+x" 
includes="**/bin/*"/>
+       </target>
+
+</project>
\ No newline at end of file
diff --git a/src/script/ant b/src/script/ant
index a160a72..b3b4c0a 100644
--- a/src/script/ant
+++ b/src/script/ant
@@ -370,7 +370,7 @@ else
 fi
 # Run "java -XshowSettings:properties" and check the output for 
"java.specification.version" value
 JAVA_SPEC_VERSION=`"$JAVACMD" -XshowSettings:properties 2>&1 | grep 
"java.specification.version = " | tr -d '[:space:]'`
-if [ "$JAVA_SPEC_VERSION" = "java.specification.version=18" ]; then
+if [ "$JAVA_SPEC_VERSION" = "java.specification.version=18" ] || [ 
"$JAVA_SPEC_VERSION" = "java.specification.version=19" ]; then
   # set security manager property to allow calls to 
System.setSecurityManager() at runtime
   ANT_OPTS="$ANT_OPTS -Djava.security.manager=allow"
 fi
diff --git a/src/script/ant.bat b/src/script/ant.bat
index 0cdaf1b..58dc3db 100755
--- a/src/script/ant.bat
+++ b/src/script/ant.bat
@@ -123,11 +123,19 @@ goto setSecurityManagerOpt
 if "%_JAVACMD%" == "" set _JAVACMD=java.exe
 
 :setSecurityManagerOpt
-"%_JAVACMD%" -XshowSettings:properties 2>&1 | find "java.specification.version 
= 18"
-if %errorlevel% EQU 0 (
-rem This is Java 18, so set -Djava.security.manager=allow
-set ANT_OPTS=%ANT_OPTS% -Djava.security.manager=allow
+setlocal EnableDelayedExpansion
+"!_JAVACMD!" -XshowSettings:properties 2>&1 | find "java.specification.version 
= 18" >nul 2>&1
+if !errorlevel! EQU 0 (
+    rem This is Java 18, so set -Djava.security.manager=allow
+    set JAVA_SECMGR_OPT=-Djava.security.manager=allow
+) else (
+    "!_JAVACMD!" -XshowSettings:properties 2>&1 | find 
"java.specification.version = 19" >nul 2>&1
+    if !errorlevel! EQU 0 (
+        rem This is Java 19, so set -Djava.security.manager=allow
+        set JAVA_SECMGR_OPT=-Djava.security.manager=allow
+    )
 )
+endlocal & set "ANT_OPTS=%ANT_OPTS% %JAVA_SECMGR_OPT%"
 
 :checkJikes
 if not "%JIKESPATH%"=="" goto runAntWithJikes

Reply via email to