lucene-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From uschind...@apache.org
Subject [1/2] lucene-solr:branch_6x: LUCENE-7292: Use '-release' instead of '-source/-target' during compilation on Java 9+ to ensure real cross-compilation
Date Fri, 20 May 2016 20:26:27 GMT
Repository: lucene-solr
Updated Branches:
  refs/heads/branch_6x 78e92a053 -> ebcc99103


LUCENE-7292: Use '-release' instead of '-source/-target' during compilation on Java 9+ to
ensure real cross-compilation


Project: http://git-wip-us.apache.org/repos/asf/lucene-solr/repo
Commit: http://git-wip-us.apache.org/repos/asf/lucene-solr/commit/7bd6d949
Tree: http://git-wip-us.apache.org/repos/asf/lucene-solr/tree/7bd6d949
Diff: http://git-wip-us.apache.org/repos/asf/lucene-solr/diff/7bd6d949

Branch: refs/heads/branch_6x
Commit: 7bd6d94952cb0710415c73b038963bf92275d2fb
Parents: 76d4dea
Author: Uwe Schindler <uschindler@apache.org>
Authored: Fri May 20 22:20:39 2016 +0200
Committer: Uwe Schindler <uschindler@apache.org>
Committed: Fri May 20 22:25:28 2016 +0200

----------------------------------------------------------------------
 dev-tools/maven/pom.xml.template       | 10 ++--
 dev-tools/scripts/smokeTestRelease.py  |  4 +-
 lucene/CHANGES.txt                     |  6 +++
 lucene/common-build.xml                | 76 ++++++++++-------------------
 lucene/default-nested-ivy-settings.xml |  4 --
 lucene/queryparser/build.xml           |  2 +-
 solr/common-build.xml                  | 12 ++---
 solr/core/build.xml                    |  2 +-
 8 files changed, 47 insertions(+), 69 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/dev-tools/maven/pom.xml.template
----------------------------------------------------------------------
diff --git a/dev-tools/maven/pom.xml.template b/dev-tools/maven/pom.xml.template
index 7d49002..5359582 100644
--- a/dev-tools/maven/pom.xml.template
+++ b/dev-tools/maven/pom.xml.template
@@ -43,8 +43,10 @@
     <vc-browse-base-url>https://git1-us-west.apache.org/repos/asf?p=lucene-solr.git;a=tree</vc-browse-base-url>
     <specification.version>@spec.version@</specification.version>
     <maven.build.timestamp.format>yyyy-MM-dd HH:mm:ss</maven.build.timestamp.format>
-    <java.compat.version>1.8</java.compat.version>
-    <jetty.version>8.1.10.v20130312</jetty.version>
+    <java.compat.version>8</java.compat.version>
+    <!-- HACK: the enforce and forbiddenapis plugin does not like new versioning: -->
+    <java.legacy-compat.version>1.${java.compat.version}</java.legacy-compat.version>
+    <jetty.version>9.3.8.v20160314</jetty.version>
 
     <!-- RandomizedTesting library system properties -->
     <tests.iters>1</tests.iters>
@@ -166,7 +168,7 @@
               The checker simply passes by default and only prints a warning.
              -->
             <failOnUnsupportedJava>false</failOnUnsupportedJava>
-            <targetVersion>${java.compat.version}</targetVersion>
+            <targetVersion>${java.legacy-compat.version}</targetVersion>
             <suppressAnnotations>
               <suppressAnnotation>**.SuppressForbidden</suppressAnnotation>
             </suppressAnnotations>
@@ -381,7 +383,7 @@
               <rules>
                 <requireJavaVersion>
                   <message>Java ${java.compat.version}+ is required.</message>
-                  <version>[${java.compat.version},)</version>
+                  <version>[${java.legacy-compat.version},)</version>
                 </requireJavaVersion>
                 <requireMavenVersion>
                   <message>Maven 2.2.1+ is required.</message>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/dev-tools/scripts/smokeTestRelease.py
----------------------------------------------------------------------
diff --git a/dev-tools/scripts/smokeTestRelease.py b/dev-tools/scripts/smokeTestRelease.py
index b4d66f7..fdb9288 100644
--- a/dev-tools/scripts/smokeTestRelease.py
+++ b/dev-tools/scripts/smokeTestRelease.py
@@ -189,11 +189,11 @@ def checkJARMetaData(desc, jarFile, gitRevision, version):
       'Specification-Vendor: The Apache Software Foundation',
       'Implementation-Vendor: The Apache Software Foundation',
       # Make sure 1.8 compiler was used to build release bits:
-      'X-Compile-Source-JDK: 1.8',
+      'X-Compile-Source-JDK: 8',
       # Make sure 1.8 ant was used to build release bits: (this will match 1.8+)
       'Ant-Version: Apache Ant 1.8',
       # Make sure .class files are 1.8 format:
-      'X-Compile-Target-JDK: 1.8',
+      'X-Compile-Target-JDK: 8',
       'Specification-Version: %s' % version,
       # Make sure the release was compiled with 1.8:
       'Created-By: 1.8'):

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/lucene/CHANGES.txt
----------------------------------------------------------------------
diff --git a/lucene/CHANGES.txt b/lucene/CHANGES.txt
index 5d816b3..e60f695 100644
--- a/lucene/CHANGES.txt
+++ b/lucene/CHANGES.txt
@@ -133,6 +133,12 @@ Other
 * SOLR-9109/SOLR-9121: Allow specification of a custom Ivy settings file via system
   property "ivysettings.xml". (Misha Dmitriev, Christine Poerschke, Uwe Schindler, Steve
Rowe)
 
+Build
+
+* LUCENE-7292: Use '-release' instead of '-source/-target' during
+  compilation on Java 9+ to ensure real cross-compilation.
+  (Uwe Schindler)
+  
 ======================= Lucene 6.0.1 =======================
 (No Changes)
 

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/lucene/common-build.xml
----------------------------------------------------------------------
diff --git a/lucene/common-build.xml b/lucene/common-build.xml
index a347772..8fb9ea0 100644
--- a/lucene/common-build.xml
+++ b/lucene/common-build.xml
@@ -161,9 +161,8 @@
 
   <property name="javac.deprecation" value="off"/>
   <property name="javac.debug" value="on"/>
-  <property name="javac.source" value="1.8"/>
-  <property name="javac.target" value="1.8"/>
-  <property name="javac.args" value="-Xlint -Xlint:-deprecation -Xlint:-serial -Xlint:-options"/>
+  <property name="javac.release" value="8"/>
+  <property name="javac.args" value="-Xlint -Xlint:-deprecation -Xlint:-serial"/>
   <property name="javac.profile.args" value="-profile compact2"/>
   <property name="javadoc.link" value="https://docs.oracle.com/javase/8/docs/api/"/>
   <property name="javadoc.link.junit" value="http://junit.sourceforge.net/javadoc/"/>
@@ -178,34 +177,6 @@
   <property name="javadoc.doclint.args" value="-Xdoclint:all -Xdoclint:-missing"/>
   <property name="javac.doclint.args" value="-Xdoclint:all/protected -Xdoclint:-missing"/>
   
-  <!-- detect bootclasspath from given bootjdk path (including crazy AppleJDK special
case) -->
-  <first id="-boot-rt.jar">
-    <fileset dir="${bootjdk}" erroronmissingdir="false" followsymlinks="true">
-      <include name="jre/lib/rt.jar" /><!-- Oracle JDK -->
-      <include name="lib/rt.jar" /><!-- Oracle JRE -->
-      <include name="bundle/Classes/classes.jar" /><!-- Apple JDK -->
-    </fileset>
-  </first>
-  <property name="bootclasspath" value="${toString:-boot-rt.jar}" />
-  <fail message="Invalid 'bootjdk' parameter, because it contains no class library JAR:
${bootjdk}">
-    <condition>
-      <and>
-        <isset property="bootjdk" />
-        <equals arg1="${bootclasspath}" arg2=""/>
-      </and>
-    </condition>
-  </fail>
-  <fail message="Invalid 'bootclasspath' parameter, because it does not point to a valid
class library JAR: ${bootclasspath}">
-    <condition>
-      <not>
-        <or>
-          <equals arg1="${bootclasspath}" arg2=""/>
-          <available classname="java.lang.StringBuilder" classpath="${bootclasspath}"
ignoresystemclasses="true"/>
-        </or>
-      </not>
-    </condition>
-  </fail>
-
   <!-- Javadoc classpath -->
   <path id="javadoc.classpath">
     <path refid="classpath"/>
@@ -691,8 +662,8 @@
                    value="${version} ${checkoutid} - ${user.name} - ${DSTAMP} ${TSTAMP}"/>
         <attribute name="Implementation-Vendor"
                    value="The Apache Software Foundation"/>
-        <attribute name="X-Compile-Source-JDK" value="${javac.source}"/>
-        <attribute name="X-Compile-Target-JDK" value="${javac.target}"/>
+        <attribute name="X-Compile-Source-JDK" value="${javac.release}"/>
+        <attribute name="X-Compile-Target-JDK" value="${javac.release}"/>
         <additional-manifest-attributes />
       </manifest>
     </sequential>
@@ -828,14 +799,12 @@
     <attribute name="srcdir"/>
     <attribute name="destdir"/>
     <attribute name="test.classpath"/>
-    <attribute name="javac.source" default="${javac.source}"/>
-    <attribute name="javac.target" default="${javac.target}"/>
-     <sequential>
+    <attribute name="javac.release" default="${javac.release}"/>
+    <sequential>
       <compile
         srcdir="@{srcdir}" 
         destdir="@{destdir}"
-        javac.source="@{javac.source}"
-        javac.target="@{javac.source}">
+        javac.release="@{javac.release}">
         <classpath refid="@{test.classpath}"/>
       </compile>
 
@@ -1950,29 +1919,30 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
   <macrodef name="compile">
     <attribute name="srcdir"/>
     <attribute name="destdir"/>
-    <attribute name="javac.source" default="${javac.source}"/>
-    <attribute name="javac.target" default="${javac.target}"/>
+    <attribute name="javac.release" default="${javac.release}"/>
     <attribute name="includeantruntime" default="${javac.includeAntRuntime}" />
 
     <element name="nested" implicit="yes" optional="yes"/>
 
     <sequential>
+      <local name="javac.release.args"/>
+      <condition property="javac.release.args" value="-source @{javac.release} -target
@{javac.release}" else="-release @{javac.release}">
+        <equals arg1="${build.java.runtime}" arg2="1.8"/>
+      </condition>
       <mkdir dir="@{destdir}"/>
       <javac
         includeAntRuntime="@{includeantruntime}"
         encoding="${build.encoding}"
-        bootclasspath="${bootclasspath}"
         srcdir="@{srcdir}"
         destdir="@{destdir}"
         deprecation="${javac.deprecation}"
-        debug="${javac.debug}"
-        source="@{javac.source}"
-        target="@{javac.target}">
+        debug="${javac.debug}">
         <nested/>
         <!-- <compilerarg line="-Xmaxwarns 10000000"/>
         <compilerarg line="-Xmaxerrs 10000000"/> -->
         <compilerarg line="${javac.args}"/>
         <compilerarg line="${javac.profile.args}"/>
+        <compilerarg line="${javac.release.args}"/>
         <compilerarg line="${javac.doclint.args}"/>
       </javac>
     </sequential>
@@ -2024,7 +1994,7 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
 
   <macrodef name="ecj-macro">
     <attribute name="srcdir"/>
-    <attribute name="javac.source" default="${javac.source}"/>
+    <attribute name="javac.release" default="${javac.release}"/>
     <attribute name="includeantruntime" default="${javac.includeAntRuntime}" />
     <attribute name="configuration"/>
 
@@ -2040,8 +2010,8 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
         encoding="${build.encoding}"
         srcdir="@{srcdir}"
         destdir="${ecj.trash.out}"
-        source="@{javac.source}"
-        target="@{javac.source}"
+        source="@{javac.release}"
+        target="@{javac.release}"
         taskname="ecj-lint">
         <ecj-component/>
         <nested/>
@@ -2085,13 +2055,16 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
     <attribute name="overview" default="${src.dir}/overview.html"/>
     <attribute name="linksource" default="no"/>
     <sequential>
+      <local name="javadoc.release.args"/>
+      <condition property="javadoc.release.args" value="-source ${javac.release}" else="-release
${javac.release}">
+        <equals arg1="${build.java.runtime}" arg2="1.8"/>
+      </condition>
       <antcall target="download-java8-javadoc-packagelist"/>
       <delete file="@{destdir}/stylesheet.css" failonerror="false"/>
       <copy todir="@{destdir}" file="${prettify.dir}/prettify.js" overwrite="false" />
       <record name="@{destdir}/log_javadoc.txt" action="start" append="no"/>
       <javadoc
           overview="@{overview}"
-          bootclasspath="${bootclasspath}"
           packagenames="org.apache.lucene.*,org.apache.solr.*"
           destdir="@{destdir}"
           access="${javadoc.access}"
@@ -2105,7 +2078,6 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
           linksource="@{linksource}"
           use="true"
           failonerror="true"
-          source="${javac.source}"
           locale="en_US"
           windowtitle="${Name} ${version} API"
           doctitle="@{title}"
@@ -2137,6 +2109,7 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
         <sources />
                 
         <classpath refid="javadoc.classpath"/>
+        <arg line="${javadoc.release.args}"/>
         <arg line="${javadoc.doclint.args}"/>
       </javadoc>
       <record name="@{destdir}/log_javadoc.txt" action="stop"/>
@@ -2389,8 +2362,9 @@ ${ant.project.name}.test.dependencies=${test.classpath.list}
   <target name="-check-forbidden-all" depends="-init-forbidden-apis,compile-core,compile-test">
     <forbidden-apis internalRuntimeForbidden="true" suppressAnnotation="**.SuppressForbidden"
classpathref="forbidden-apis.allclasses.classpath">
       <signatures>
-        <bundled name="jdk-unsafe-${javac.target}"/>
-        <bundled name="jdk-deprecated-${javac.target}"/>
+        <!-- TODO: fix this in forbiddenapis 2.1+ -->
+        <bundled name="jdk-unsafe-1.${javac.release}"/>
+        <bundled name="jdk-deprecated-1.${javac.release}"/>
         <fileset dir="${common.dir}/tools/forbiddenApis">
           <include name="base.txt"/>
           <include name="lucene.txt" if="forbidden-isLucene"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/lucene/default-nested-ivy-settings.xml
----------------------------------------------------------------------
diff --git a/lucene/default-nested-ivy-settings.xml b/lucene/default-nested-ivy-settings.xml
index 97445e1..522fd29 100644
--- a/lucene/default-nested-ivy-settings.xml
+++ b/lucene/default-nested-ivy-settings.xml
@@ -36,9 +36,6 @@
     <ibiblio name="maven.restlet.org" root="http://maven.restlet.org" m2compatible="true"
/>
     <ibiblio name="releases.cloudera.com" root="http://repository.cloudera.com/content/repositories/releases"
m2compatible="true" />
 
-    <!-- needed only for newer svnkit releases, e.g. 1.8.x -->
-    <ibiblio name="svnkit-releases" root="http://maven.tmatesoft.com/content/repositories/releases"
m2compatible="true" />
-
     <!-- you might need to tweak this from china so it works -->
     <ibiblio name="working-chinese-mirror" root="http://uk.maven.org/maven2" m2compatible="true"
/>
 
@@ -56,7 +53,6 @@
       <resolver ref="maven.restlet.org" />
       <resolver ref="sonatype-releases" />
       <resolver ref="releases.cloudera.com"/>
-      <!-- <resolver ref="svnkit-releases" /> -->
       <resolver ref="working-chinese-mirror" />
     </chain>
   </resolvers>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/lucene/queryparser/build.xml
----------------------------------------------------------------------
diff --git a/lucene/queryparser/build.xml b/lucene/queryparser/build.xml
index cdb0e6c..b6e43c2 100644
--- a/lucene/queryparser/build.xml
+++ b/lucene/queryparser/build.xml
@@ -165,7 +165,7 @@ import org.apache.lucene.queryparser.flexible.core.messages.*;"
           target="@{target}"
           outputDirectory="@{outputDir}"
           javacchome="${build.dir}/javacc"
-          jdkversion="${javac.source}"
+          jdkversion="1.${javac.release}"
       />
       <fixcrlf srcdir="@{outputDir}" includes="*.java" encoding="UTF-8">
         <containsregexp expression="Generated.*By.*JavaCC"/>

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/solr/common-build.xml
----------------------------------------------------------------------
diff --git a/solr/common-build.xml b/solr/common-build.xml
index 986033d..b13d737 100644
--- a/solr/common-build.xml
+++ b/solr/common-build.xml
@@ -25,10 +25,9 @@
   
   <property name="Name" value="Solr" />
   
-  <!-- solr uses 1.8 -->
-  <property name="javac.source" value="1.8"/>
-  <property name="javac.target" value="1.8"/>
-  <property name="javac.args" value="-Xlint:-deprecation -Xlint:-options"/>
+  <!-- solr uses Java 8 -->
+  <property name="javac.release" value="8"/>
+  <property name="javac.args" value="-Xlint:-deprecation"/>
   <property name="javac.profile.args" value=""/>
 
   <property name="dest" location="${common-solr.dir}/build" />
@@ -508,8 +507,9 @@
     <property prefix="ivyversions" file="${common.dir}/ivy-versions.properties"/> <!--
for commons-io version -->
     <forbidden-apis internalRuntimeForbidden="true" suppressAnnotation="**.SuppressForbidden"
classpathref="forbidden-apis.allclasses.classpath">
       <signatures>
-        <bundled name="jdk-unsafe-${javac.target}"/>
-        <bundled name="jdk-deprecated-${javac.target}"/>
+        <!-- TODO: fix this in forbiddenapis 2.1+ -->
+        <bundled name="jdk-unsafe-1.${javac.release}"/>
+        <bundled name="jdk-deprecated-1.${javac.release}"/>
         <bundled name="commons-io-unsafe-${ivyversions./commons-io/commons-io}"/>
         <fileset dir="${common.dir}/tools/forbiddenApis">
           <include name="base.txt" />

http://git-wip-us.apache.org/repos/asf/lucene-solr/blob/7bd6d949/solr/core/build.xml
----------------------------------------------------------------------
diff --git a/solr/core/build.xml b/solr/core/build.xml
index b3a654e..532a3c2 100644
--- a/solr/core/build.xml
+++ b/solr/core/build.xml
@@ -110,7 +110,7 @@
           target="@{target}"
           outputDirectory="@{outputDir}"
           javacchome="${build.dir}/javacc"
-          jdkversion="${javac.source}"
+          jdkversion="1.${javac.release}"
       />
       <fixcrlf srcdir="@{outputDir}" includes="*.java" encoding="UTF-8">
         <containsregexp expression="Generated.*By.*JavaCC"/>


Mime
View raw message