aboutsummaryrefslogtreecommitdiff
path: root/buildScripts
diff options
context:
space:
mode:
Diffstat (limited to 'buildScripts')
-rw-r--r--buildScripts/build-support.ant.xml2
-rw-r--r--buildScripts/compile.ant.xml148
-rw-r--r--buildScripts/create-eclipse-project.ant.xml21
-rw-r--r--buildScripts/create-intellij-project.ant.xml15
-rw-r--r--buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml (renamed from buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.32.xml)4
-rw-r--r--buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.40.xml (renamed from buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.34.xml)4
-rw-r--r--buildScripts/ivy.xml15
-rw-r--r--buildScripts/mapstructBinding.ant.xml46
-rw-r--r--buildScripts/maven.ant.xml2
-rw-r--r--buildScripts/setup.ant.xml38
-rw-r--r--buildScripts/tests.ant.xml85
-rw-r--r--buildScripts/vm-finder.ant.xml5
-rw-r--r--buildScripts/website.ant.xml4
13 files changed, 238 insertions, 151 deletions
diff --git a/buildScripts/build-support.ant.xml b/buildScripts/build-support.ant.xml
index 107f5f47..d6439cb0 100644
--- a/buildScripts/build-support.ant.xml
+++ b/buildScripts/build-support.ant.xml
@@ -50,7 +50,7 @@ None of these tasks are normally needed, unless modifying how the build works, s
<input addproperty="target.jdk">You need to specify the JDK9+ jdk whose jdk.compiler and java.compiler modules are to be converted. Run ant with -Dtarget.jdk=/full/path/here to automate this, or type the path in now (for example: /Library/JavaVirtualMachines/jdk-14.jdk/Contents/Home):</input>
</target>
- <target name="make.javac-patch-jar" depends="-ask.target-jdk" description="to test javac13 on JDK14, for example, you need a jar (not a jmod), to use with --patch-modules. This task makes those.">
+ <target name="make.javac-patch-jar" depends="-ask.target-jdk, -setup.build" description="to test javac13 on JDK14, for example, you need a jar (not a jmod), to use with --patch-modules. This task makes those.">
<exec executable="${target.jdk}/bin/java${executable.suffix}" outputproperty="target.javac.version.full" errorproperty="target.javac.version.err">
<arg value="--version" />
</exec>
diff --git a/buildScripts/compile.ant.xml b/buildScripts/compile.ant.xml
index 5baf50c3..23a8a63c 100644
--- a/buildScripts/compile.ant.xml
+++ b/buildScripts/compile.ant.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2020 The Project Lombok Authors.
+ Copyright (C) 2020-2021 The Project Lombok Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -24,19 +24,18 @@
This buildfile is part of projectlombok.org. It takes care of compiling and building lombok itself.
</description>
- <property name="mapstruct-binding.version" value="0.1.0" />
+ <property name="mapstruct-binding.version" value="0.2.0" />
<!-- compiles just 'version.java' and runs the produced class file, setting up the various version properties -->
- <target name="version" depends="ipp.setup, deps.jdk-runtime" description="Shows the version number" unless="lombok.version">
- <mkdir dir="build/lombok" />
- <ivy:compile destdir="build/lombok" source="1.5" target="1.5" ecj="true" nowarn="true">
+ <target name="version" depends="ipp.setup, deps.jdk-runtime, -setup.build" description="Shows the version number" unless="lombok.version">
+ <ivy:compile destdir="build/lombok-version" source="1.5" target="1.5" ecj="true" nowarn="true">
<bootclasspath path="${jdk6-rt.loc}" />
<src path="src/core" />
<include name="lombok/core/Version.java" />
</ivy:compile>
<java
classname="lombok.core.Version"
- classpath="build/lombok"
+ classpath="build/lombok-version"
failonerror="true"
output="build/version.txt">
<arg value="full" />
@@ -44,28 +43,50 @@ This buildfile is part of projectlombok.org. It takes care of compiling and buil
<ivy:loadversion property="lombok.fullversion" file="build/version.txt" />
<java
classname="lombok.core.Version"
- classpath="build/lombok"
+ classpath="build/lombok-version"
failonerror="true"
output="build/version.txt" />
<ivy:loadversion property="lombok.version" file="build/version.txt" />
<echo level="info">Lombok version: ${lombok.version} (${lombok.fullversion})</echo>
</target>
- <target name="compile" depends="version, deps" description="Compiles the code">
+ <property name="packing.basedirs" value="build/lombok-transplants,build/lombok-utils,build/lombok-utils6,build/lombok-main,build/lombok-main8,build/lombok-deps" />
+ <loadresource property="packing.basedirs.colon">
+ <propertyresource name="packing.basedirs" />
+ <filterchain><tokenfilter>
+ <filetokenizer/>
+ <replacestring from="," to=":" />
+ </tokenfilter></filterchain>
+ </loadresource>
+ <path id="packing.basedirs.path">
+ <pathelement path="${packing.basedirs.colon}" />
+ </path>
+
+ <target name="create.spiProcessor" depends="version, -setup.build" description="Compiles the services file generating processor">
+ <ivy:compile destdir="build/spiProcessor" source="1.8" target="1.8" ecj="true">
+ <src path="src/spiProcessor" />
+ <classpath location="build/spiProcessor" />
+ </ivy:compile>
+ <mkdir dir="build/spiProcessor/META-INF/services" />
+ <echo file="build/spiProcessor/META-INF/services/javax.annotation.processing.Processor">lombok.spi.SpiProcessor</echo>
+ <jar destfile="dist/spiProcessor.jar">
+ <fileset dir="build/spiProcessor" />
+ </jar>
+ </target>
+
+ <target name="compile" depends="version, deps, -setup.build, create.spiProcessor" description="Compiles the code">
<!--
1. Compile stubs.
- 2. Compile lombok-utils.
- 3. Compile transplants.
- 4. Compile lombok.
- 5. Run SPI processor.
- 6. Create other manifest entries. -->
+ 2. Compile transplants.
+ 3. Compile lombok-utils.
+ 4. Compile lombok. -->
<!--
ant includes the destination dir on the classpath (and there are good reasons to do this), but that also means
the bleeding edge lombok from the previous build is run (as lombok is an annotation processor), which means if
there are bugs in it, you can't compile anymore until you 'ant clean'. That's very undesirable. so we kill the processor,
which stops lombok from running. We re-create the file at the end of this target. -->
- <delete file="build/lombok/META-INF/services/javax.annotation.processing.Processor" quiet="true" />
+ <delete file="build/lombok-main/META-INF/services/javax.annotation.processing.Processor" quiet="true" />
<!--
first, compile stubs. Lombok needs to produce class files that run in a wide variety of JDK, javac, and ecj/eclipse versions.
@@ -106,40 +127,40 @@ This buildfile is part of projectlombok.org. It takes care of compiling and buil
</filterchain>
</copy>
- <ivy:compile destdir="build/lombok" source="1.4" target="1.4" ecj="true">
+ <ivy:compile destdir="build/lombok-transplants" source="1.4" target="1.4" ecj="true">
<bootclasspath location="build/stubs" />
<bootclasspath path="${jdk6-rt.loc}" />
<src path="build/transformedSources" />
</ivy:compile>
- <ivy:compile destdir="build/lombok/Class50" source="1.4" target="1.6" ecj="true">
+ <ivy:compile destdir="build/lombok-transplants/Class50" source="1.4" target="1.6" ecj="true">
<bootclasspath location="build/stubs" />
<bootclasspath path="${jdk6-rt.loc}" />
<src path="build/transformedSources" />
</ivy:compile>
- <ivy:compile destdir="build/lombok" source="1.5" target="1.5" ecj="true">
+ <ivy:compile destdir="build/lombok-utils" source="1.5" target="1.5" ecj="true">
<bootclasspath location="build/stubs" />
<bootclasspath path="${jdk6-rt.loc}" />
<src path="src/utils" />
<exclude name="lombok/javac/**" />
- <classpath path="build/lombok" />
+ <classpath location="build/lombok-utils" />
<classpath refid="cp.javac6" />
<classpath refid="cp.ecj8" />
</ivy:compile>
- <ivy:compile destdir="build/lombok" source="1.6" target="1.6" ecj="true">
+ <ivy:compile destdir="build/lombok-utils6" source="1.6" target="1.6" ecj="true">
<bootclasspath location="build/stubs" />
<bootclasspath path="${jdk6-rt.loc}" />
<src path="src/utils" />
<include name="lombok/javac/**" />
- <classpath location="build/lombok" />
<classpath refid="cp.javac6" />
+ <classpath path="build/lombok-utils:build/lombok-utils6" />
</ivy:compile>
<!--
compile lombok proper. We target java 1.6 to be as compatible with older releases as we can, using a JDK6 boot rt to ensure we don't
use API that didn't exist in those versions yet. -->
- <ivy:compile destdir="build/lombok" source="1.6" target="1.6" ecj="true" nowarn="true">
+ <ivy:compile destdir="build/lombok-main" source="1.6" target="1.6" ecj="true" nowarn="true">
<bootclasspath location="build/stubs" />
<bootclasspath path="${jdk6-rt.loc}" />
<src path="src/launch" />
@@ -148,89 +169,61 @@ This buildfile is part of projectlombok.org. It takes care of compiling and buil
<src path="src/eclipseAgent" />
<src path="src/delombok" />
<exclude name="**/*Transplants.java" />
- <classpath location="build/lombok" />
<classpath refid="cp.build" />
<classpath refid="cp.eclipse-oxygen" />
<classpath refid="cp.javac6" />
+ <classpath path="build/lombok-utils:build/lombok-utils6:build/lombok-main:dist/spiProcessor.jar" />
+ <annotationProcessor jar="dist/spiProcessor.jar" processor="lombok.spi.SpiProcessor" />
</ivy:compile>
<!-- This is really part of the eclipse agent, but references lombok, so that had to be compiled first -->
- <ivy:compile destdir="build/lombok/Class50" source="1.5" target="1.6" ecj="true">
+ <ivy:compile destdir="build/lombok-main/Class50" source="1.5" target="1.6" ecj="true">
<bootclasspath location="build/stubs" />
<bootclasspath path="${jdk6-rt.loc}" />
<src path="src/eclipseAgent" />
<include name="lombok/launch/PatchFixesHider.java" />
- <classpath location="build/lombok" />
<classpath refid="cp.build" />
<classpath refid="cp.eclipse-oxygen" />
+ <classpath path="build/lombok-utils:build/lombok-utils6:build/lombok-main" />
</ivy:compile>
<!--
a couple of classes to cater to the bits of javac8+ that require j8 language constructs/API types; the main lombok
compile refers to these via reflection -->
- <ivy:compile destdir="build/lombok" source="1.8" target="1.8" ecj="true" nowarn="true" includesystembootclasspath="true">
+ <ivy:compile destdir="build/lombok-main8" source="1.8" target="1.8" ecj="true" nowarn="true" includesystembootclasspath="true">
<bootclasspath location="build/stubs" />
<src path="src/core8" />
- <classpath location="build/lombok" />
<classpath refid="cp.javac8" />
+ <classpath path="build/lombok-main:build/lombok-main8:build" />
</ivy:compile>
<!--
We also act as a jigsaw module so that module-based compile runs can use module-style dependency management. Obviously,
that bit we can only compile with jdk9+. -->
- <ivy:compile destdir="build/lombok" release="9">
+ <ivy:compile destdir="build/lombok-main" release="9">
<src path="src/core9" />
<compilerarg value="-Xlint:none" />
- <classpath location="build/lombok" />
- <classpath refid="cp.build" />
- </ivy:compile>
-
- <!-- Run the SPI processor to create the services files listing all lombok handlers -->
- <delete dir="build/lombok-proc-result" quiet="true" />
- <ivy:compile destdir="build/lombok-proc-result" release="9" nowarn="true">
- <classpath location="build/stubs" />
- <compilerarg value="-proc:only" />
- <compilerarg value="-processor" />
- <compilerarg value="org.mangosdk.spi.processor.SpiProcessor" />
- <src path="src/core" />
- <src path="src/installer" />
- <src path="src/eclipseAgent" />
- <src path="src/delombok" />
- <classpath location="build/lombok" />
<classpath refid="cp.build" />
- <classpath refid="cp.javac6" />
- <classpath refid="cp.eclipse-oxygen" />
</ivy:compile>
- <copy todir="build/lombok">
- <fileset dir="build/lombok-proc-result">
- <include name="META-INF/services/*" />
- </fileset>
- </copy>
-
- <mkdir dir="build/lombok/META-INF" />
- <mkdir dir="build/lombok/META-INF/services" />
- <echo file="build/lombok/META-INF/services/javax.annotation.processing.Processor">lombok.launch.AnnotationProcessorHider$AnnotationProcessor
+ <mkdir dir="build/lombok-main/META-INF/services" />
+ <echo file="build/lombok-main/META-INF/services/javax.annotation.processing.Processor">lombok.launch.AnnotationProcessorHider$AnnotationProcessor
lombok.launch.AnnotationProcessorHider$ClaimingProcessor</echo>
- <mkdir dir="build/lombok/META-INF/gradle" />
- <echo file="build/lombok/META-INF/gradle/incremental.annotation.processors">lombok.launch.AnnotationProcessorHider$AnnotationProcessor,isolating
+ <mkdir dir="build/lombok-main/META-INF/gradle" />
+ <echo file="build/lombok-main/META-INF/gradle/incremental.annotation.processors">lombok.launch.AnnotationProcessorHider$AnnotationProcessor,isolating
lombok.launch.AnnotationProcessorHider$ClaimingProcessor,isolating</echo>
</target>
<!-- compiles the bit of API from mapstruct that lombok compiles against. -->
- <target name="mapstruct.compile">
+ <target name="mapstruct.compile" depends="-setup.build">
<mkdir dir="build/mapstruct" />
- <ivy:compile destdir="build/mapstruct" release="9">
+ <ivy:compile destdir="build/mapstruct" release="8">
<src path="src/j9stubs" />
</ivy:compile>
- <mkdir dir="build/lombok/secondaryLoading.SCL.lombok/org/mapstruct/ap/spi" />
- <move
- file="build/mapstruct/org/mapstruct/ap/spi/AstModifyingAnnotationProcessor.class"
- tofile="build/lombok/secondaryLoading.SCL.lombok/org/mapstruct/ap/spi/AstModifyingAnnotationProcessor.SCL.lombok" />
</target>
<target name="-deps.unpack" depends="deps">
- <ivy:cachedunjar dest="build/lombok" marker="build/unpackDeps.marker">
+ <ivy:cachedunjar dest="build/lombok-deps" marker="build/unpackDeps.marker">
<path refid="cp.stripe" />
</ivy:cachedunjar>
</target>
@@ -252,7 +245,7 @@ lombok.launch.AnnotationProcessorHider$ClaimingProcessor,isolating</echo>
lombok classes served up in autocomplete dialogs, amongst other reasons.
Thus, we list here only the few class files that serve as 'entry points'. -->
- <fileset dir="build/lombok">
+ <patternset id="packing.entrypoints">
<include name="module-info.class" />
<include name="lombok/*.class" />
<include name="lombok/experimental/**" />
@@ -261,21 +254,19 @@ lombok.launch.AnnotationProcessorHider$ClaimingProcessor,isolating</echo>
<include name="lombok/delombok/ant/Tasks*" />
<include name="lombok/javac/apt/Processor.class" />
<include name="lombok/META-INF/**" />
- </fileset>
+ </patternset>
+
+ <fileset dir="build/lombok-main"><patternset refid="packing.entrypoints" /></fileset>
- <!-- now include everything else but renamed for the shadowloader system, to make these clsases invisible to other projects. -->
+ <!-- now include everything else but renamed for the shadowloader system, to make these classes invisible to other projects. -->
+ <patternset id="packing.shadowed">
+ <exclude name="com/sun/tools/javac/**" />
+ <invert><patternset refid="packing.entrypoints" /></invert>
+ </patternset>
<mappedresources>
- <fileset dir="build/lombok">
- <exclude name="com/sun/tools/javac/**" />
- <exclude name="module-info.class" />
- <exclude name="lombok/*.class" />
- <exclude name="lombok/experimental/**" />
- <exclude name="lombok/extern/**" />
- <exclude name="lombok/launch/**" />
- <exclude name="lombok/delombok/ant/Tasks*" />
- <exclude name="lombok/javac/apt/Processor.class" />
- <exclude name="lombok/META-INF/**" />
- </fileset>
+ <multirootfileset basedirs="${packing.basedirs}">
+ <patternset refid="packing.shadowed" />
+ </multirootfileset>
<firstmatchmapper>
<globmapper from="*.class" to="*.SCL.lombok" />
<identitymapper />
@@ -291,6 +282,7 @@ lombok.launch.AnnotationProcessorHider$ClaimingProcessor,isolating</echo>
<attribute name="Can-Redefine-Classes" value="true" />
<attribute name="Main-Class" value="lombok.launch.Main" />
<attribute name="Lombok-Version" value="${lombok.version}" />
+ <attribute name="Automatic-Module-Name" value="lombok" />
</manifest>
</jar>
<delete file="release-timestamp.txt" />
@@ -298,7 +290,7 @@ lombok.launch.AnnotationProcessorHider$ClaimingProcessor,isolating</echo>
<property name="lombok.dist.built" value="true" />
</target>
- <target name="compile.support" depends="ipp.setup, deps" description="Compiles code that is used solely by the build, such as website and IDE project creation">
+ <target name="compile.support" depends="ipp.setup, deps, -setup.build" description="Compiles code that is used solely by the build, such as website and IDE project creation">
<ivy:compile includeDestClasses="false" includeantruntime="false" destdir="build/support" debug="on" source="1.8" target="1.8">
<compilerarg value="-proc:none" />
<compilerarg value="-Xlint:-options" />
diff --git a/buildScripts/create-eclipse-project.ant.xml b/buildScripts/create-eclipse-project.ant.xml
index 513ffe8f..a9b1a5dc 100644
--- a/buildScripts/create-eclipse-project.ant.xml
+++ b/buildScripts/create-eclipse-project.ant.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2010-2020 The Project Lombok Authors.
+ Copyright (C) 2010-2021 The Project Lombok Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -24,10 +24,11 @@
This buildfile is part of projectlombok.org. It creates the infrastructure needed to develop lombok on eclipse.
</description>
- <target name="eclipse" depends="eclipse.projectfiles, eclipse.testtarget.default" description="Downloads dependencies, create eclipse project files, as well as debug/run test targets. Open this directory as project in eclipse (via import... existing projects)" />
+ <target name="eclipse" depends="create.spiProcessor, eclipse.projectfiles, eclipse.testtarget.default" description="Downloads dependencies, create eclipse project files, as well as debug/run test targets. Open this directory as project in eclipse (via import... existing projects)" />
<target name="eclipse.projectfiles" depends="deps">
- <ivy:eclipsegen source="1.6">
+ <ivy:eclipsegen source="1.6" srcout="bin/main">
+ <srcdir dir="src/spiProcessor" />
<srcdir dir="src/core" />
<srcdir dir="src/core8" />
<srcdir dir="src/launch" />
@@ -35,7 +36,7 @@ This buildfile is part of projectlombok.org. It creates the infrastructure neede
<srcdir dir="src/eclipseAgent" />
<srcdir dir="src/installer" />
<srcdir dir="src/delombok" />
- <srcdir dir="src/stubs" />
+ <srcdir dir="src/stubs" srcout="bin/stubs" />
<srcdir dir="src/support" />
<srcdir dir="experimental/src" />
<srcdir dir="test/transform/src" />
@@ -52,7 +53,7 @@ This buildfile is part of projectlombok.org. It creates the infrastructure neede
<settings>
<url url="https://projectlombok.org/downloads/lombok.eclipse.settings" />
</settings>
- <apt location="lib/build/projectlombok.org-spi.jar" />
+ <apt location="dist/spiProcessor.jar" />
</ivy:eclipsegen>
</target>
@@ -96,7 +97,7 @@ This buildfile is part of projectlombok.org. It creates the infrastructure neede
<path refid="cp.buildtools" />
<pathelement location="build/support" />
</classpath>
- <arg value="name=Lombok-test Javac14" />
+ <arg value="name=Lombok-test Javac 14" />
<arg value="testType=lombok.TestJavac" />
<arg value="jvmTarget=14" />
<arg value="conf.test=${cp.test}" />
@@ -116,7 +117,7 @@ This buildfile is part of projectlombok.org. It creates the infrastructure neede
<condition property="inputs.jvmtarget" value="1.6"><equals arg1="${inputs.jvmtarget.raw}" arg2="6" /></condition>
<condition property="inputs.jvmtarget" value="1.8"><equals arg1="${inputs.jvmtarget.raw}" arg2="8" /></condition>
- <property name="inputs" value="${inputs.jvmtarget.raw}" />
+ <property name="inputs.jvmtarget" value="${inputs.jvmtarget.raw}" />
<condition property="inputs.bootpath" value="${jdk6-rt.loc}"><equals arg1="${inputs.jvmtarget.raw}" arg2="6" /></condition>
<condition property="inputs.bootpath" value="${jdk8-rt.loc}"><equals arg1="${inputs.jvmtarget.raw}" arg2="8" /></condition>
@@ -127,6 +128,12 @@ This buildfile is part of projectlombok.org. It creates the infrastructure neede
<target name="eclipse.testtarget.javac" depends="compile.support" description="Makes an eclipse launch target for running the tests for javac">
<eclipse.testtarget.conf.jvmtarget question="Which javac do you want to target? Enter a version, such as '11'." validargs="8,11,13,14,15" />
+ <local name="inputs.confcp" />
+ <condition property="inputs.confcp" value="NONE">
+ <not><equals arg1="8" arg2="${inputs.jvmtarget.raw}" /></not>
+ </condition>
+ <property name="inputs.confcp" refid="cp.javac8" />
+
<java classname="lombok.eclipseCreate.CreateEclipseDebugTarget" failonerror="true">
<classpath>
<path refid="cp.buildtools" />
diff --git a/buildScripts/create-intellij-project.ant.xml b/buildScripts/create-intellij-project.ant.xml
index 865e8971..33c1e449 100644
--- a/buildScripts/create-intellij-project.ant.xml
+++ b/buildScripts/create-intellij-project.ant.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2010-2020 The Project Lombok Authors.
+ Copyright (C) 2010-2021 The Project Lombok Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -24,15 +24,22 @@
This buildfile is part of projectlombok.org. It creates the infrastructure needed to develop lombok on intellij.
</description>
- <target name="intellij" depends="deps" description="Creates intellij project files and downloads all dependencies. Open this directory as a project in IntelliJ after running this target">
+ <target name="intellij" depends="create.spiProcessor, deps" description="Creates intellij project files and downloads all dependencies. Open this directory as a project in IntelliJ after running this target">
<echo> ** WARNING ** The core lombok contributors all use eclipse to develop lombok. This script will attempt to set up your lombok directory up as intellij project; whether can be used in a modern intellij is currently unknown. Please do continue, but be aware that trying to work on lombok from intellij may run into problems. If you want to adopt 'work on lombok via intellij' as a task, we're open to it!</echo>
<echo>NOT IMPLEMENTED: The project should optimally be configured as a java1.6, using the rt.jar in lib/openjdk6_rt.jar as boot basis, to ensure lombok remains 1.6 compatible.</echo>
<echo>NOT IMPLEMENTED: Ability to run tests targeted at a specific jvm/javac/ecj/eclipse release; the relevant entrypoint test classes are lombok.RunBaseAndJavacTests and lombok.RunEclipseTests - you can run the eclipse tests even on intellij; an eclipse installation is not required.</echo>
+ <echo>NOT SURE: The annotation processor system that automatically generates the services files has been changed. This AP is now internal to the project,
+ the source files for it are in `src/spiProcessor`, and a build of this is now in `dist/spiProcessor.jar` - you may have to manually add it, though I'm not
+ sure if you actually need it - the files generated by this processor are relevant only when running lombok itself, and if intellij accomplishes this by
+ invoking ant, all will be well.</echo>
<input>Press return to continue</input>
<ivy:intellijgen>
- <conf name="build" sources="contrib" />
- <conf name="test" sources="contrib" />
+ <conf name="build" sources="sources" />
+ <conf name="javac6" sources="sources" />
+ <conf name="test" sources="sources" />
+ <conf name="buildTools" sources="sources" />
<module name="lombok" depends="build, test">
+ <srcdir dir="src/spiProcessor" />
<srcdir dir="src/core" />
<srcdir dir="src/core8" />
<srcdir dir="src/launch" />
diff --git a/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.32.xml b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml
index 858ddfec..1ca9c743 100644
--- a/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.32.xml
+++ b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.38.xml
@@ -1,5 +1,5 @@
<ivy-module version="2.0">
- <info organisation="org.projectlombok" module="lombok.patcher" revision="0.32" publication="20190110114000">
+ <info organisation="org.projectlombok" module="lombok.patcher" revision="0.38" publication="20201008193000">
<license name="MIT License" url="https://www.opensource.org/licenses/mit-license.php" />
<ivyauthor name="rzwitserloot" url="https://github.com/rzwitserloot" />
<ivyauthor name="rspilker" url="https://github.com/rspilker" />
@@ -9,6 +9,6 @@
<conf name="default" />
</configurations>
<publications>
- <artifact conf="default" url="https://projectlombok.org/downloads/lombok.patcher-0.32.jar" />
+ <artifact conf="default" url="https://projectlombok.org/downloads/lombok.patcher-0.38.jar" />
</publications>
</ivy-module>
diff --git a/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.34.xml b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.40.xml
index 778462cf..11302b2b 100644
--- a/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.34.xml
+++ b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.40.xml
@@ -1,5 +1,5 @@
<ivy-module version="2.0">
- <info organisation="org.projectlombok" module="lombok.patcher" revision="0.34" publication="20190925010000">
+ <info organisation="org.projectlombok" module="lombok.patcher" revision="0.40" publication="20201015232000">
<license name="MIT License" url="https://www.opensource.org/licenses/mit-license.php" />
<ivyauthor name="rzwitserloot" url="https://github.com/rzwitserloot" />
<ivyauthor name="rspilker" url="https://github.com/rspilker" />
@@ -9,6 +9,6 @@
<conf name="default" />
</configurations>
<publications>
- <artifact conf="default" url="https://projectlombok.org/downloads/lombok.patcher-0.34.jar" />
+ <artifact conf="default" url="https://projectlombok.org/downloads/lombok.patcher-0.40.jar" />
</publications>
</ivy-module>
diff --git a/buildScripts/ivy.xml b/buildScripts/ivy.xml
index 3dfbde7e..12dd2c5b 100644
--- a/buildScripts/ivy.xml
+++ b/buildScripts/ivy.xml
@@ -10,7 +10,7 @@
<!-- test: base dependencies required to run the tests. Does not include javac or ecj. -->
<conf name="test" />
- <!-- stripe: dependencies that need to be on the classpath during builds -->
+ <!-- build: dependencies that need to be on the classpath during builds -->
<conf name="build" />
<!-- stripe: dependencies that need to be striped into lombok.jar itself, and are required for both build and test/run purposes -->
@@ -36,10 +36,10 @@
</configurations>
<dependencies>
- <dependency org="org.projectlombok" name="lombok.patcher" rev="0.36" conf="build,stripe->default" />
+ <dependency org="org.projectlombok" name="lombok.patcher" rev="0.40" conf="build,stripe->default" />
<dependency org="zwitserloot.com" name="cmdreader" rev="1.2" conf="build,stripe->runtime" />
- <dependency org="projectlombok.org" name="spi" rev="0.2.7" conf="build" />
<dependency org="org.apache.ant" name="ant" rev="1.10.5" conf="build->default" />
+ <dependency org="org.apache.ant" name="ant-junit" rev="1.10.5" conf="build->default" />
<!-- test deps -->
<dependency org="junit" name="junit" rev="4.8.2" conf="test->default; sources" />
@@ -52,6 +52,9 @@
<dependency org="com.google.flogger" name="flogger" rev="0.2" conf="test->default; sources" />
<dependency org="com.google.guava" name="guava" rev="18.0" conf="test->default; sources" />
<dependency org="com.google.code.findbugs" name="findbugs" rev="3.0.1" conf="test->master" />
+ <dependency org="org.springframework" name="spring-core" rev="5.3.4" conf="test->master" />
+ <dependency org="com.fasterxml.jackson.core" name="jackson-databind" rev="2.10.0" conf="test->master" />
+ <dependency org="com.fasterxml.jackson.core" name="jackson-annotations" rev="2.10.0" conf="test->master" />
<!-- build tooling -->
<dependency org="com.hierynomus" name="sshj" rev="0.26.0" conf="buildtools->default" />
@@ -85,7 +88,10 @@
<dependency org="org.eclipse.jdt" name="org.eclipse.jdt.core" rev="3.13.102" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.jdt" name="org.eclipse.jdt.ui" rev="3.13.100" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.equinox.common" rev="3.9.0" conf="eclipse-oxygen->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.registry" rev="3.7.0" conf="eclipse-oxygen->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.app" rev="1.3.400" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.resources" rev="3.12.0" conf="eclipse-oxygen->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.core.contenttype" rev="3.6.0" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.jobs" rev="3.9.0" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.osgi" rev="3.12.100" conf="eclipse-oxygen->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.text" rev="3.6.100" conf="eclipse-oxygen->default" transitive="false" />
@@ -95,7 +101,10 @@
<dependency org="org.eclipse.jdt" name="org.eclipse.jdt.ui" rev="3.21.100" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.equinox.common" rev="3.12.0" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.equinox.preferences" rev="3.8.0" conf="eclipse-202006->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.registry" rev="3.8.700" conf="eclipse-202006->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.equinox.app" rev="1.4.400" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.resources" rev="3.13.700" conf="eclipse-202006->default" transitive="false" />
+ <dependency org="org.eclipse.platform" name="org.eclipse.core.contenttype" rev="3.7.600" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.core.jobs" rev="3.10.800" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.osgi" rev="3.15.300" conf="eclipse-202006->default" transitive="false" />
<dependency org="org.eclipse.platform" name="org.eclipse.text" rev="3.10.200" conf="eclipse-202006->default" transitive="false" />
diff --git a/buildScripts/mapstructBinding.ant.xml b/buildScripts/mapstructBinding.ant.xml
index c59b84da..d7c52dc3 100644
--- a/buildScripts/mapstructBinding.ant.xml
+++ b/buildScripts/mapstructBinding.ant.xml
@@ -26,14 +26,11 @@ version on mavencentral is the last version that is ever needed; the code itself
exists as a separate dependency solely because it is itself dependent on both lombok and mapstruct.
</description>
- <target name="-mapstructBinding.compile">
+ <target name="-mapstructBinding.compile" depends="-setup.build">
<mkdir dir="build/mapstruct" />
- <javac includeAntRuntime="false" source="1.9" target="1.9" destdir="build/mapstruct">
+ <javac includeAntRuntime="false" source="1.8" target="1.8" destdir="build/mapstruct">
<src path="src/j9stubs" />
- <!-- This includes org.mapstruct.ap.spi.AstModifyingAnnotationProcessor; putting this on the classpath doesn't work (needs to be internal or a module) so we just add it and then delete the class file for convenience. -->
</javac>
- <mkdir dir="build/lombok/secondaryLoading.SCL.lombok/org/mapstruct/ap/spi" />
- <move file="build/mapstruct/org/mapstruct/ap/spi/AstModifyingAnnotationProcessor.class" tofile="build/lombok/secondaryLoading.SCL.lombok/org/mapstruct/ap/spi/AstModifyingAnnotationProcessor.SCL.lombok" />
</target>
<target name="-mapstructBinding.prepare" depends="-mapstructBinding.compile">
@@ -76,12 +73,18 @@ exists as a separate dependency solely because it is itself dependent on both lo
<jar destfile="dist/lombok-mapstruct-binding-${mapstruct-binding.version}-javadoc.jar" basedir="build/mapstruct-binding/api" includes="**" />
</target>
- <target name="-mapstructBinding.jar" depends="dist,-mapstructBinding.prepare">
+ <target name="-mapstructBinding.jar" depends="dist, -mapstructBinding.prepare">
<mkdir dir="build/mapstruct-binding/classes" />
<echo file="build/mapstruct-binding/classes/META-INF/services/org.mapstruct.ap.spi.AstModifyingAnnotationProcessor">lombok.mapstruct.NotifierHider$AstModificationNotifier</echo>
+ <javac includeAntRuntime="false" source="1.8" target="1.8" destdir="build/mapstruct-binding/classes">
+ <src path="src/bindings/mapstruct" />
+ <exclude name="module-info.java" />
+ <classpath location="build/mapstruct" />
+ </javac>
<javac includeAntRuntime="false" source="1.9" target="1.9" destdir="build/mapstruct-binding/classes" modulepath="build/mapstruct-module-path">
<src path="src/bindings/mapstruct" />
+ <include name="module-info.java" />
</javac>
<jar destfile="dist/lombok-mapstruct-binding-${mapstruct-binding.version}.jar" basedir="build/mapstruct-binding/classes" includes="**" />
</target>
@@ -93,6 +96,37 @@ exists as a separate dependency solely because it is itself dependent on both lo
<target name="mapstructBinding.pack" depends="dist,-mapstructBinding.jar,-mapstructBinding.doc,-mapstructBinding.src">
</target>
+ <target name="mapstructBinding.publish" depends="mapstructBinding.pack, setup.ssh">
+ <tar destfile="dist/mavenPublish-mapstructBinding.tar.bz2" compression="bzip2">
+ <tarfileset dir="dist">
+ <include name="lombok-mapstruct-binding-${mapstruct-binding.version}.jar" />
+ <include name="lombok-mapstruct-binding-${mapstruct-binding.version}-sources.jar" />
+ <include name="lombok-mapstruct-binding-${mapstruct-binding.version}-javadoc.jar" />
+ </tarfileset>
+ <tarfileset dir="build/mapstruct-binding/maven" includes="pom.xml" />
+ </tar>
+ <ivy:scpUpload
+ from="dist/mavenPublish-mapstructBinding.tar.bz2"
+ to="/data/lombok/staging"
+ server="projectlombok.org"
+ username="${ssh.username}"
+ keyfile="${ssh.keyfile}"
+ knownHosts="ssh.knownHosts" />
+ <ivy:sshExec
+ cmd="/data/lombok/stagingCmd/publishToMavenCentral-mapstructBinding"
+ server="projectlombok.org"
+ username="${ssh.username}"
+ keyfile="${ssh.keyfile}"
+ knownHosts="ssh.knownHosts" />
+ <echo>The artifact has been published to staging. Now go to https://oss.sonatype.org/ and log in as Reinier, then doublecheck if all is well and 'release' it.</echo>
+ <ivy:sshExec
+ cmd="/data/lombok/stagingCmd/showMavenCentralPassword"
+ server="projectlombok.org"
+ username="${ssh.username}"
+ keyfile="${ssh.keyfile}"
+ knownHosts="ssh.knownHosts" />
+ </target>
+
<target name="mapstructBinding.maven" depends="mapstructBinding.pack" description="Create a maven repo for mapstruct binding into a build dir.">
<delete quiet="true" dir="build/mapstruct-binding-maven" />
<mkdir dir="build/mapstruct-binding-maven" />
diff --git a/buildScripts/maven.ant.xml b/buildScripts/maven.ant.xml
index dcba2ccb..57bb6b99 100644
--- a/buildScripts/maven.ant.xml
+++ b/buildScripts/maven.ant.xml
@@ -59,7 +59,7 @@ This buildfile is part of projectlombok.org. It makes maven-compatible repositor
</sequential>
</macrodef>
- <target name="maven" depends="version, dist, javadoc.build" description="Creates a maven repo for the current release into a build dir. The intent is for you to put that on a server someplace. Will invoke your local mvn installation.">
+ <target name="maven" depends="version, dist, javadoc.build, -setup.build" description="Creates a maven repo for the current release into a build dir. The intent is for you to put that on a server someplace. Will invoke your local mvn installation.">
<mkdir dir="build" />
<mkdir dir="dist" />
diff --git a/buildScripts/setup.ant.xml b/buildScripts/setup.ant.xml
index 9b96240d..2a9104eb 100644
--- a/buildScripts/setup.ant.xml
+++ b/buildScripts/setup.ant.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2020 The Project Lombok Authors.
+ Copyright (C) 2020-2021 The Project Lombok Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -24,6 +24,9 @@
This buildfile is part of projectlombok.org. It sets up the build itself.
</description>
+ <!-- increment this number to force a clean of the 'build' dir -->
+ <property name="build.version" value="2021-03-18_001" />
+
<property name="pattern.jdk11plus" value="^(\d\d\d+|1[1-9]|[2-9]\d)(\..*)?$" />
<property name="ivy.retrieve.pattern" value="lib/[conf]/[organisation]-[artifact].[ext]" />
<property environment="env" />
@@ -84,6 +87,37 @@ This buildfile is part of projectlombok.org. It sets up the build itself.
<target name="setup.ssh" depends="-setup.ssh.ask, -setup.ssh.save" />
+ <target name="-autoclean.check">
+ <available type="dir" file="build" property="existingbuild.present" />
+ <loadresource property="existingbuild.ver">
+ <first count="1">
+ <resources>
+ <restrict>
+ <fileset dir="." includes="build/build-ver.txt" />
+ <exists />
+ </restrict>
+ <string>0</string>
+ </resources>
+ </first>
+ </loadresource>
+ <condition property="existingbuild.mismatch">
+ <and>
+ <isset property="existingbuild.present" />
+ <not><equals arg1="${existingbuild.ver}" arg2="${build.version}" trim="true" /></not>
+ </and>
+ </condition>
+ </target>
+
+ <target name="autoclean" depends="-autoclean.check" if="existingbuild.mismatch" description="Checks if a change in the build or deplist neccessitates a clean">
+ <echo>build ver has been incremented, neccessitating a clean...</echo>
+ <delete dir="build" />
+ </target>
+
+ <target name="-setup.build" depends="autoclean">
+ <mkdir dir="build" />
+ <echo file="build/build-ver.txt">${build.version}</echo>
+ </target>
+
<target name="clean" description="Removes all generated files.">
<delete dir="build" quiet="true" />
</target>
@@ -106,7 +140,7 @@ This buildfile is part of projectlombok.org. It sets up the build itself.
<target name="-ipp.load" depends="-ipp.download">
<taskdef classpath="lib/ivyplusplus.jar" resource="com/zwitserloot/ivyplusplus/antlib.xml" uri="antlib:com.zwitserloot.ivyplusplus" />
- <ivy:ensureippversion version="1.36" property="ivyplusplus.minimumAvailable" />
+ <ivy:ensureippversion version="1.40" property="ivyplusplus.minimumAvailable" />
</target>
<target name="-ipp.redownload" unless="ivyplusplus.minimumAvailable">
diff --git a/buildScripts/tests.ant.xml b/buildScripts/tests.ant.xml
index cb840048..4cd36b9e 100644
--- a/buildScripts/tests.ant.xml
+++ b/buildScripts/tests.ant.xml
@@ -1,5 +1,5 @@
<!--
- Copyright (C) 2020 The Project Lombok Authors.
+ Copyright (C) 2020-2021 The Project Lombok Authors.
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
@@ -24,6 +24,14 @@
This buildfile is part of projectlombok.org. It takes care of compiling and running tests.
</description>
+ <target name="test.formatter.compile" depends="deps">
+ <mkdir dir="build/ant" />
+ <ivy:compile ecj="true" srcdir="src/ant" includes="**/SimpleTestFormatter.java" destdir="build/ant" source="1.6" target="1.6">
+ <classpath refid="cp.build" />
+ <classpath refid="cp.test" />
+ </ivy:compile>
+ </target>
+
<target name="test.compile" depends="deps, compile" description="compiles the tests" unless="skip.tests">
<mkdir dir="build/tests" />
<ivy:compile destdir="build/teststubs" source="1.6" target="1.6" ecj="true" nowarn="true">
@@ -33,8 +41,9 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<bootclasspath path="${jdk6-rt.loc}" />
<classpath refid="cp.test" />
<classpath refid="cp.eclipse-oxygen" />
- <classpath location="build/lombok" />
- <classpath location="build/tests" />
+ <classpath refid="cp.javac6" />
+ <classpath refid="packing.basedirs.path" />
+ <classpath path="build/tests" />
<src path="test/core/src" />
<src path="test/transform/src" />
<src path="test/bytecode/src" />
@@ -54,54 +63,42 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<echo>run ecj11 with a test file to confirm agent injection works: OK</echo>
</target>
- <property name="test.addopens.raw">
- --add-opens jdk.compiler/com.sun.tools.javac.code=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.file=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.main=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.model=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.processing=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.tree=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.util=ALL-UNNAMED
- --add-opens jdk.compiler/com.sun.tools.javac.parser=ALL-UNNAMED
- </property>
<property name="test.limitmodules">--limit-modules java.base,jdk.unsupported</property>
- <loadresource property="test.addopens">
- <propertyresource name="test.addopens.raw" />
- <filterchain><tokenfilter>
- <filetokenizer />
- <replaceregex pattern="\s+" replace=" " flags="g" />
- </tokenfilter></filterchain>
- </loadresource>
-
- <target name="test.javac6" depends="test.compile" description="runs the tests on your default VM, using javac6 as underlying compiler">
+ <target name="test.javac6" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac6 as underlying compiler">
<echo>Running TestJavac on JVM${ant.java.version}, with lowest supported javac: 1.6.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
+ <formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
+ <classpath location="build/ant" />
<jvmarg value="-Xbootclasspath/a:${jdk6-rt.loc}" />
<jvmarg line="${test.limitmodules}" />
<jvmarg value="-Ddelombok.bootclasspath=${jdk6-rt.loc}" />
- <formatter type="plain" usefile="false" unless="tests.quiet" />
+ <jvmarg value="-Dsun.boot.class.path=${jdk6-rt.loc}" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="cp.javac6" />
- <classpath location="build/lombok" />
+ <classpath refid="packing.basedirs.path" />
<classpath location="build/tests" />
+ <classpath location="build/teststubs" />
<test name="lombok.TestJavac" />
</junit>
</target>
- <target name="test.javac8" depends="test.compile, deps.jdk8-runtime" description="runs the tests on your default VM, using javac8 as underlying compiler">
+ <target name="test.javac8" depends="test.formatter.compile, test.compile, deps.jdk8-runtime" description="runs the tests on your default VM, using javac8 as underlying compiler">
<echo>Running TestJavac on JVM${ant.java.version}, with javac: 1.8.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
+ <formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<jvmarg value="-Xbootclasspath/a:${jdk8-rt.loc}" />
<jvmarg line="${test.limitmodules}" />
<jvmarg value="-Ddelombok.bootclasspath=${jdk8-rt.loc}" />
- <formatter type="plain" usefile="false" unless="tests.quiet" />
+ <jvmarg value="-Dsun.boot.class.path=${jdk8-rt.loc}" />
+ <classpath location="build/ant" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="cp.javac8" />
- <classpath location="build/lombok" />
+ <classpath refid="packing.basedirs.path" />
<classpath location="build/tests" />
+ <classpath location="build/teststubs" />
<test name="lombok.TestJavac" />
</junit>
</target>
@@ -113,11 +110,11 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<echo>Running TestJavac with JVM ${jvm.loc.@{version}}.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once" jvm="${jvm.loc.@{version}}/bin/${exe.java}">
- <jvmarg line="${test.addopens}" />
- <formatter type="plain" usefile="false" unless="tests.quiet" />
+ <formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
+ <classpath location="build/ant" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
- <classpath location="build/lombok" />
+ <classpath refid="packing.basedirs.path" />
<classpath location="build/tests" />
<classpath location="build/teststubs" />
<test name="lombok.TestJavac" />
@@ -125,22 +122,28 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
</sequential>
</macrodef>
- <target name="test.javac11" depends="test.compile" description="runs the tests on your default VM, using javac11 as underlying compiler">
+ <target name="test.javac11" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac11 as underlying compiler">
<test.javacX version="11" />
</target>
- <target name="test.javac14" depends="test.compile" description="runs the tests on your default VM, using javac14 as underlying compiler">
+ <!-- For non-LTS versions, feel free to aggressively update these to the current non-LTS openjdk version, and delete them once they roll out of the 6month window. -->
+
+ <target name="test.javac14" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac14 as underlying compiler">
<test.javacX version="14" />
</target>
- <target name="test.javacCurrent" depends="test.compile" description="runs the tests on your default VM, using its javac as underlying compiler">
+ <target name="test.javac16" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using javac16 as underlying compiler">
+ <test.javacX version="16" />
+ </target>
+
+ <target name="test.javacCurrent" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, using its javac as underlying compiler">
<echo>Running TestJavac on JVM${ant.java.version}, with the javac built into your VM distributon.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
- <jvmarg line="${test.addopens}" />
- <formatter type="plain" usefile="false" unless="tests.quiet" />
+ <formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
+ <classpath location="build/ant" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
- <classpath location="build/lombok" />
+ <classpath refid="packing.basedirs.path" />
<classpath location="build/tests" />
<classpath location="build/teststubs" />
<test name="lombok.TestJavac" />
@@ -152,26 +155,26 @@ This buildfile is part of projectlombok.org. It takes care of compiling and runn
<sequential>
<echo>Running TestEclipse on eclipse-@{version} on JVM${ant.java.version}.</echo>
<junit haltonfailure="yes" fork="true" forkmode="once">
+ <formatter classname="lombok.ant.SimpleTestFormatter" usefile="false" unless="tests.quiet" />
<jvmarg value="-Xbootclasspath/a:${jdk8-rt.loc}" />
<jvmarg value="-Ddelombok.bootclasspath=${jdk8-rt.loc}" />
<jvmarg value="-javaagent:dist/lombok.jar" />
- <jvmarg line="${test.addopens}" />
- <formatter type="plain" usefile="false" unless="tests.quiet" />
+ <classpath location="build/ant" />
<classpath refid="cp.test" />
<classpath refid="cp.stripe" />
<classpath refid="cp.eclipse-@{version}" />
- <classpath location="build/lombok" />
+ <classpath refid="packing.basedirs.path" />
<classpath location="build/tests" />
<test name="lombok.TestEclipse" />
</junit>
</sequential>
</macrodef>
- <target name="test.eclipse-oxygen" depends="test.compile" description="runs the tests on your default VM, testing the oxygen release of eclipse">
+ <target name="test.eclipse-oxygen" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, testing the oxygen release of eclipse">
<test.eclipse-X version="oxygen" />
</target>
- <target name="test.eclipse-202006" depends="test.compile" description="runs the tests on your default VM, testing the 2020-03 release of eclipse">
+ <target name="test.eclipse-202006" depends="test.formatter.compile, test.compile" description="runs the tests on your default VM, testing the 2020-03 release of eclipse">
<fetchdep.eclipse version="202006" />
<test.eclipse-X version="202006" />
</target>
diff --git a/buildScripts/vm-finder.ant.xml b/buildScripts/vm-finder.ant.xml
index 2b2c4c4c..2a33b2b8 100644
--- a/buildScripts/vm-finder.ant.xml
+++ b/buildScripts/vm-finder.ant.xml
@@ -38,7 +38,7 @@ This buildfile is part of projectlombok.org. It contains platform specific code
<condition property="jvm.loc" value="${jvm.loc.force}">
<and>
<isset property="jvm.loc.force" />
- <not><matches string="${jvm.loc.force}" pattern="^\$\{jvm[0-9\.]+\.loc\}$" /></not>
+ <not><matches string="${jvm.loc.force}" pattern="^\$\{jvm\.locations\.j[0-9\.]+\}$" /></not>
</and>
</condition>
<condition property="jvm.loc.invalid">
@@ -60,7 +60,8 @@ and rerun the build; this build is capable of finding VMs automatically on many
<fail unless="find-vm.version">Set property find-vm.version first</fail>
<local name="java_home.answer" />
<local name="java_home.result" />
- <exec executable="${exe.java_home}" errorproperty="discard" outputproperty="java_home.answer" failifexecutionfails="false" resultproperty="java_home.result">
+ <exec newenvironment="true" executable="${exe.java_home}" errorproperty="discard" outputproperty="java_home.answer" failifexecutionfails="false" resultproperty="java_home.result">
+ <env key="floobargle" value="FOO" /> <!-- we do not want JAVA_HOME to be set. This requires newenvironment="true" AND some sort of env value -->
<arg value="-v" />
<arg value="${find-vm.version}" />
</exec>
diff --git a/buildScripts/website.ant.xml b/buildScripts/website.ant.xml
index 730b79c2..1fc58fd4 100644
--- a/buildScripts/website.ant.xml
+++ b/buildScripts/website.ant.xml
@@ -57,7 +57,7 @@ such as applying the templates to produce the website, converting the changelog
<echo>Live full versionstring : ${lombok.fullversion.live}</echo>
</target>
- <target name="changelog.build" depends="version, deps, compile.support" description="Turns the current changelog (doc/changelog.txt) into HTML">
+ <target name="changelog.build" depends="version, deps, compile.support" description="Turns the current changelog (doc/changelog.markdown) into HTML">
<mkdir dir="build/website" />
<java classname="lombok.website.WebsiteMaker" failonerror="true">
<classpath>
@@ -217,7 +217,7 @@ such as applying the templates to produce the website, converting the changelog
<package name="lombok" />
<package name="lombok.experimental" />
<package name="lombok.extern.*" />
- <classpath location="build/lombok" />
+ <classpath location="build/lombok-main" />
<header><![CDATA[<a href='https://projectlombok.org/' target='_blank'>Lombok</a> - ]]>v${lombok.version}</header>
<bottom><![CDATA[<i>Copyright &copy; 2009-${javadoc.year} The Project Lombok Authors, licensed under the <a href='http://www.opensource.org/licenses/mit-license.php' target='_blank'>MIT licence</a>.]]></bottom>
</javadoc>