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, -s