diff options
93 files changed, 2491 insertions, 480 deletions
@@ -25,6 +25,8 @@ This buildfile is part of projectlombok.org. It is the main entry point that con the common tasks and can be called on to run the main aspects of all the sub-scripts. </description> + <property name="pattern.jdk9Plus" value="^(9|[1-9][0-9])(\..*)?$" /> + <property name="pattern.jdkUpto8" value="^(1\.)?[2-8](\..*)?$" /> <property name="build.compiler" value="javac1.6" /> <property name="ivy.retrieve.pattern" value="lib/[conf]/[organisation]-[artifact].[ext]" /> <available file="lib/ivyplusplus.jar" property="ivyplusplus.available" /> @@ -163,7 +165,7 @@ the common tasks and can be called on to run the main aspects of all the sub-scr <target name="-ensureJdk9"> <condition property="java.version.insufficient"> - <matches string="${java.version}" pattern="^1\.[2-8](\..*)?" /> + <matches string="${ant.java.version}" pattern="${pattern.jdkUpto8}" /> </condition> <fail if="java.version.insufficient">To compile lombok, you need JDK9 or higher; lombok requires this version because it's rather difficult to produce lombok builds that are compatible on JDK9 without at least building with JDK9. Sorry about that.</fail> </target> @@ -552,11 +554,11 @@ ${sourceWarning}</echo> </target> <target name="test-ecj" depends="dist, contrib, setupJavaOracle8TestEnvironment" unless="tests.skip"> - <condition property="ecj.loc" value="lib/ecj9/*" else="lib/ecj8/*"> - <equals arg1="${ant.java.version}" arg2="9" /> + <condition property="ecj.loc" value="lib/ecj9/org.eclipse.jdt-ecj.jar" else="lib/ecj8/org.eclipse.jdt.core.compiler-ecj.jar"> + <matches string="${ant.java.version}" pattern="${pattern.jdk9Plus}" /> </condition> - <java classname="org.eclipse.jdt.internal.compiler.batch.Main" fork="true" failonerror="true"> - <classpath path="${ecj.loc}" /> + <echo>Testing ECJ using ECJ: ${ecj.loc}</echo> + <java jar="${ecj.loc}" fork="true" failonerror="true"> <jvmarg value="-javaagent:dist/lombok.jar=ecj" /> <arg value="-source" /> <arg value="1.6" /> @@ -646,7 +648,7 @@ ${sourceWarning}</echo> <get src="https://projectlombok.org/ivyrepo/langtools/jdk8-javac-sources.zip" dest="lib/oracleJDK8Environment/javac8-sources.zip" verbose="true" usetimestamp="true" /> <propertyfile file="testenvironment.properties"> <entry key="test.location.javac" value="lib/oracleJDK8Environment/javac8.jar" /> - <entry key="test.location.ecj" value="lib/ecj8/org.eclipse.custom-ecj.jar" /> + <entry key="test.location.ecj" value="lib/ecj8/org.eclipse.jdt.core.compiler-ecj.jar" /> <entry key="test.location.bootclasspath" value="lib/oracleJDK8Environment/rt.jar" /> <entry key="test.location.name" value="OracleJDK8" /> <entry key="test.javaversion" value="8" /> @@ -688,13 +690,13 @@ You can also create your own by writing a 'testenvironment.properties' file. The <condition property="test9.run"> <and> <not><isset property="tests.skip" /></not> - <equals arg1="${ant.java.version}" arg2="9" /> + <matches string="${ant.java.version}" pattern="${pattern.jdk9Plus}" /> </and> </condition> <condition property="test8.run"> <and> <not><isset property="tests.skip" /></not> - <not><equals arg1="${ant.java.version}" arg2="9" /></not> + <matches string="${ant.java.version}" pattern="${pattern.jdkUpto8}" /> </and> </condition> </target> diff --git a/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.30.xml b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.30.xml new file mode 100644 index 00000000..9a87a8bf --- /dev/null +++ b/buildScripts/ivy-repo/org.projectlombok-lombok.patcher-0.30.xml @@ -0,0 +1,14 @@ +<ivy-module version="2.0"> + <info organisation="org.projectlombok" module="lombok.patcher" revision="0.30" publication="20180910222000"> + <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" /> + <description homepage="https://projectlombok.org/" /> + </info> + <configurations> + <conf name="default" /> + </configurations> + <publications> + <artifact conf="default" url="https://projectlombok.org/downloads/lombok.patcher-0.30.jar" /> + </publications> +</ivy-module> diff --git a/buildScripts/ivy.xml b/buildScripts/ivy.xml index 15c03ed1..221ec6e9 100644 --- a/buildScripts/ivy.xml +++ b/buildScripts/ivy.xml @@ -18,7 +18,7 @@ <conf name="supporters" /> </configurations> <dependencies> - <dependency org="org.projectlombok" name="lombok.patcher" rev="0.28" conf="buildBase->default; runtime->default" /> + <dependency org="org.projectlombok" name="lombok.patcher" rev="0.30" conf="buildBase->default; runtime->default" /> <dependency org="zwitserloot.com" name="cmdreader" rev="1.2" conf="buildBase->runtime; runtime" /> <dependency org="junit" name="junit" rev="4.8.2" conf="test->default; contrib->sources" /> @@ -44,8 +44,8 @@ <dependency org="net.java.openjdk.custom" name="javac7" rev="1.7.0" conf="javac7->runtime; contrib->sources" /> <dependency org="org.eclipse.custom" name="ecj" rev="4.3.1" conf="ecj7->default; contrib->sources" /> <dependency org="org.eclipse.jdt.core.compiler" name="ecj" rev="4.6.1" conf="ecj8->default; contrib->sources" /> - <dependency org="org.eclipse.tycho" name="org.eclipse.jdt.core" rev="3.13.50.v20171007-0855" conf="ecj9->default; eclipseBuild->default" /> - <dependency org="org.eclipse.tycho" name="org.eclipse.jdt.compiler.apt" rev="1.3.50.v20170920-0950" conf="ecj9->default; eclipseBuild->default" /> + <dependency org="org.eclipse.jdt" name="ecj" rev="3.15.0" conf="ecj9->default; eclipseBuild->default" /> + <dependency org="org.eclipse.jdt" name="org.eclipse.jdt.compiler.apt" rev="1.3.300" conf="ecj9->default; eclipseBuild->default" /> <dependency org="netbeans.org" name="boot" rev="6.8beta" conf="netbeansBuild->build" /> <dependency org="netbeans.org" name="openide.modules" rev="6.8beta" conf="netbeansBuild->build" /> diff --git a/doc/changelog.markdown b/doc/changelog.markdown index 220e0dc0..aad47a85 100644 --- a/doc/changelog.markdown +++ b/doc/changelog.markdown @@ -5,7 +5,11 @@ Lombok Changelog * PLATFORM: Support for Eclipse Photon. [Issue #1831](https://github.com/rzwitserloot/lombok/issues/1831) * FEATURE: The `@FieldNameConstants` feature has been completely redesigned. [Issue #1774](https://github.com/rzwitserloot/lombok/issues/1774) [FieldNameConstants documentation](https://projectlombok.org/features/experimental/FieldNameConstants) * FEATURE: Lombok's `@NonNull` annotation can now be used on types (annotation on types has been introduced in JDK 8). `@Builder`'s `@Singular` annotation now properly deals with annotations on the generics type on the collection: `@Singular List<@NonNull String> names;` now does the right thing. +* FEATURE: You can now mix `@SuperBuilder` and `toBuilder`, and `toBuilder` no longer throws `NullPointerException` if an `@Singular`-marked collection field is `null`. [Issue #1324](https://github.com/rzwitserloot/lombok/issues/1324) +* FEATURE: delombok now supports module paths via the `--module-path` option, and will automatically add lombok itself to the module path. This should make it possible to delombok your modularized projects. [Issue #1848](https://github.com/rzwitserloot/lombok/issues/1848) +* FEATURE: You can pass `@args.txt` to `delombok` to read args from the text file; useful if you have really long classpaths you need to pass to delombok. [Issue #1795](https://github.com/rzwitserloot/lombok/issues/1795) * BREAKING CHANGE: Lombok will now always copy specific annotations around (from field to getter, from field to builder 'setter', etcetera): A specific curated list of known annotations where that is the right thing to do (generally, `@NonNull` style annotations from various libraries), as well as any annotations you explicitly list in the `lombok.copyableAnnotations` config key in your `lombok.config` file. Also, lombok is more consistent about copying these annotations. (Previous behaviour: Lombok used to copy any annotation whose simple name was `NonNull`, `Nullable`, or `CheckForNull`). [Issue #1570](h |
