org.projectlombok:lombok-utils
1.18.12
#522 most downloaded on Maven Central
rzwitserloot/lombok
What this package is like to depend on
Last release 7 years ago
no release in 18 months
Ships fairly regularly
a new release about every 3 months
Nearly every release is documented
notes for 35 of 35 stable releases
Nothing withdrawn
no release was ever pulled
15 years old
35 releases · first in 2011
0 releases in the last 12 months
see the full history below
Release timeline
35 releases · Dec 2011 to Feb 2020
2012
2014
2016
2018
2020
2022
2024
2026
Releases
latest 35-
1.18.1206 Feb 2020Release notes
Open source →- PLATFORM: Support for JDK13 (including
yieldin switch expressions, as well as delombok having a nicer style for arrow-style switch blocks, and text blocks). - PLATFORM: Support for JDK14 (including
pattern matchinstanceof expressions). - FEATURE: In
lombok.configit is possible to import other config files, even from a.zipor.jar. - FEATURE: You can now configure a builder's 'setter' prefixes via
@Builder(setterPrefix = "set")for example. We discourage doing this, but if some library you use requires them, have at it. Pull Request #2174, Issue #1805. - FEATURE: If you use
@Builder's@Singular, a plural form is also generated, which has the effect of adding all elements in the passed collection. If you pass a null reference, this would result in a message-lessNullPointerException. Now, it results in that exception but with a useful message attached (uses the same config as@NonNull), or alternatively via a parameter on@Singular, you can choose to ignore such a call (add nothing, return immediately); this can be useful when deserializing (e.g. Jackson JSON) and JPA/Hibernate code. Issue #2221. singular documentation. - FEATURE: Tired of being unable to use
@javax.annotation.ParametersAreNonnullByDefaultor@org.eclipse.jdt.annotation.NonNullByDefaultbecause then the equals method that lombok generates isn't valid? Fret no more; lombok can now add nullity annotations where relevant. Set the flavour of nullity annotation you prefer in yourlombok.config. Applies to the return value oftoString,withX, chainablesetX, static constructors,build,builder, etcetera, and the parameter ofequals,canEqual, and the plural form of@Singularmarked fields for builder classes. Issue #788 - BUGFIX: If using the sonarlint plugin in eclipse for projects bound to sonarcloud, you now no longer get internal errors on sonarlint processing. Issue #2351
- BUGFIX:
lombok.experimental.Witherhas been deprecated (it has been renamed tolombok.With). However, the intent is that lombok still handles the old annotation in case you haven't updated your lombok dep yet. However, only a star import onlombok.experimental.*worked; an explicit one would cause lombok to not generate any with method. Issue #2235 - BUGFIX: Referring to an inner class inside the generics on a class marked with
@SuperBuilderwould cause the errorwrong number of type arguments; required 3Issue #2262; fixed by github user@Lekanich- thank you! - BUGFIX: Some of the code generated by
@Builderdid not includethis.prefixes when accessing fields. While semantically it didn't matter, if you use the 'add this prefix for field accesses' save action in eclipse, the save action would break. Issue #2327 - BUGFIX: When lombok copies javadoc from fields to relevant methods, it should generate an appropriate
@return thisline if lombok copies the javadoc to a generated setter that is chainable (returns itself). It didn't do that when generating the 'setters' in a@Builder. Lombok also didn't generate an appropriate@returnitem for@Withmethods. The javadoc has also been updated slightly (thethisreference in the javadoc is now rendered in a code tag).Issue #2323 - IMPROBABLE BREAKING CHANGE: Lombok now generates qualified types (so,
Outer.Innerinstead of justInner) in most type signatures that it generates; this should avoid exotic scenarios where the types lombok puts in signatures end up referring to unintended other types, which can occur if your class implements an interface that itself defines a type with the same name as one defined in your source file. I told you it was exotic. Thanks to Hunter Anderson for doing some preliminary work on this change. Issue #2268 - IMPROBABLE BREAKING CHANGE: Running
java -jar lombok.jar config -v <files>no longer shows which files do not mention the specified keys. Use--non-mentionedor-nto show them anyway.
- PLATFORM: Support for JDK13 (including
-
1.18.1010 Sep 2019Release notes
Open source →- PROMOTION:
@Witherhas been promoted to the main package, renamed to@With. Otherwise, no changes have been made to the annotation. The old experimental annotation will remain for a few versions as a deprecated annotation. If you hadlombok.configconfiguration for this annotation, the configuration keys for this feature have been renamed. - FEATURE: You can now configure a custom logger framework using the new
@CustomLogannotation in combination with thelombok.log.custom.declarationconfiguration key. See the log documentation for more information. Pullrequest #2086 with thanks to Adam Juraszek. - ENHANCEMENT: Thanks to Mark Haynes, the
staticConstructorwill now also be generated if a (private) constructor already exists. Issue #2100 - ENHANCEMENT:
valis now capable of decoding the type of convoluted expressions (particularly if the right hand side involves lambdas and conditional (ternary) expressions). Pull Request #2109 with thanks to Alexander Bulgakov. - ENHANCEMENT: You can now configure the generated builder class name via the config system, using key
lombok.builder.className. See the Builder documentation and SuperBuilder documentation - ENHANCEMENT: If you mix up eclipse's non-null support, such as
@NonNullByDefault, with lombok's@NonNull, you get a bunch of warnings about dead code that are inappropriate. These warnings are now suppressed, thanks to a contribution from Till Brychcy! Pull Request #2155 - ENHANCEMENT:
@NonNullcan now also generate checks using jdk'sObjects.requireNonNullor Guava'sPreconditions.checkNotNull. Issue #1197 - EXPERIMENT: Lombok is working together with checkerframework to enable detection of improper builder use (such as forgetting to set a mandatory property prior to calling
build()). This experiment can be turned on by addingcheckerframework = trueto yourlombok.configfile. - BUGFIX: Using
@JsonPropertyor@JsonValueon a field in combination with@Setteror@Datawould sometimes throw a ClassCastException during compilation. Issue #2156 - BUGFIX: Delombok would turn something like
List<byte[]>...in a method parameter toList<byte...>...Issue #2140 - BUGFIX: Javac would generate the wrong equals and hashCode if a type-use annotation was put on an array type field Issue #2165
- BUGFIX: Eclipse 2019-06 + JDK-12 compatibility + an
@Singularbuilder entry would produce a cascade of error dialogs. Issue #2169 - BUGFIX: Javac would throw a NullPointerException if the package-info.java did not contain a package declaration. Issue #2184
- BUGFIX: Javac sets incorrect annotated type on constructor, getter and setter. Issue #2189
- IMPROBABLE BREAKING CHANGE: Stricter validation of configuration keys dealing with identifiers and types (
lombok.log.fieldName,lombok.fieldNameConstants.innerTypeName,lombok.copyableAnnotations). - IMPROBABLE BREAKING CHANGE: The fields generated inside builders for fields with defaults (with
@Builderon a class with fields marked@Default) now have$valueas the name; direct manipulation of these fields is not advised because there is an associated$setvariable that also needs to be taken into account. Issue #2115
- PROMOTION:
-
1.18.806 May 2019Release notes
Open source →- FEATURE: You can now configure
@FieldNameConstantstoCONSTANT_CASEthe generated constants, using alombok.configoption. See the FieldNameConstants documentation. Issue #2092. - FEATURE: You can now suppress generation of the
buildermethod when using@Builder; usually because you're only interested in thetoBuildermethod. As a convenience we won't emit warnings about missing@Builder.Defaultannotations when you do this. Issue #2046 - FEATURE: You can now change the access modifier of generated builder classes. Issue #2083.
- FEATURE: When using
@NonNull, or any other annotation that would result in a null-check, you can configure to generate an assert statement instead. Issue #2078. - FEATURE: Lombok now knows exactly how to treat
@com.fasterxml.jackson.annotation.JsonPropertyand will copy it to the right places for example when making builders. Issue #1961 Issue #1981 - PLATFORM: A few lombok features (most notably delombok) failed on JDK12. Issue #2082
- BUGFIX: var/val on methods that return an intersection type would now work in Eclipse. Issue #1986
- BUGFIX: Fix for java6 regression if a field has javadoc. Issue #2066
- BUGFIX: Delombok now delomboks java10's own
varasvarand not as the actual underlying type. Issue #2049 - BUGFIX: If you use
@Builderand manually write thebuild()method in your builder class, javac would error out instead of deferring to your implementation. Issue #2050 Issue #2061 - BUGFIX:
@SuperBuildertogether with@Singularon non-lists would produce an erroneousemptyListcall. Issue #2104. - IMPROBABLE BREAKING CHANGE: For fields and parameters marked non-null, if the method body starts with an assert statement to ensure the value isn't null, no code to throw an exception will be generated.
- IMPROBABLE BREAKING CHANGE: When using
ecjto compile java code with@Builderor@SuperBuilderin it, and a builder setter method was generated for a@NonNull-marked method, no explicit null check would be present. However, runningjavacon the exact same file would produce the null check. Now ecj also produces this null check. Issue #2120. - IMPROBABLE BREAKING CHANGE: We slightly changed the message of the exception lombok generates to handle
@NonNullmarked parameters. Issue #2122
- FEATURE: You can now configure
-
1.18.612 Feb 2019Release notes
Open source →- FEATURE: Javadoc on fields will now also be copied to the Builders' setters. Thanks for the contribution, Emil Lundberg. Issue #2008
- FEATURE: The
@FieldNameConstantsfeature now allows you to write the inner type by hand and add whatever you like to it; lombok will add the constants to this class. See the updated FieldNameConstants feature page. - FEATURE: There is now a
lombok.configkey to configure@ToString's call super behavior; it's just like@EqualsAndHashCodewhich has had it for a while now. Issue #1918 - ENHANCEMENT: The toString generation of enums now contains the name of the enum constant. Issue #1916
- PLATFORM: Due to changes to switch statements in JDK12, lombok wasn't working with the JDK12 preview. Issue #1888
- BUGFIX: Using
@Delegatein combination@NonNullwould give an error in jdk8. Issue #1935 - BUGFIX: Using the new
@FieldNameConstantsin eclipse would cause errors in the error log view, and error popups if save actions are turned on. Issue #2024 - BUGFIX: Since version 1.18.4, the delombok ant task didn't work and errored with a
NoClassDefFoundError. Issue #1932 - BUGFIX: Combining both
@Setterand@Witheron the same field, when that field also has javadoc with a--setter--section or an@paramtag, resulted in a race condition where the first handler to get to the field would take that part of the javadoc. This is a step along the way to fixing Issue #1033 - BUGFIX: Compiling multi-module projects would fail on forcing new rounds. Issue #1723, Issue #1858, Issue #1946, Issue #2028
-
1.18.430 Oct 2018Release notes
Open source →- PLATFORM: Support for Eclipse Photon. Issue #1831
- PLATFORM: Angular IDE is now recognized by the installer Issue #1830
- PLATFORM: Many improvements for lombok's JDK10/11 support.
- BREAKING CHANGE: The
@FieldNameConstantsfeature has been completely redesigned. Issue #1774 FieldNameConstants documentation - 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,
@NonNullstyle annotations from various libraries), as well as any annotations you explicitly list in thelombok.copyableAnnotationsconfig key in yourlombok.configfile. Also, lombok is more consistent about copying these annotations. (Previous behaviour: Lombok used to copy any annotation whose simple name wasNonNull,Nullable, orCheckForNull). Issue #1570 and Issue #1634 - FEATURE: Lombok's
@NonNullannotation can now be used on type usages (annotation on type usages has been introduced in JDK 8).@Builder's@Singularannotation 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
@SuperBuilderandtoBuilder, andtoBuilderno longer throwsNullPointerExceptionif a@Singular-marked collection field isnull. Issue #1324 - FEATURE: delombok now supports module paths via the
--module-pathoption, and will automatically add lombok itself to the module path. This should make it possible to delombok your modularized projects. Issue #1848 - FEATURE: You can pass
@args.txttodelombokto read args from the text file; useful if you have really long classpaths you need to pass to delombok. Issue #1795 - BUGFIX:
@NoArgsConstructor(force=true)would try to initialize already initialized final fields in Eclipse. Issue #1829 - BUGFIX: When using lombok to compile modularized (
module-info.java-style) code, if the module name has dots in it, it wouldn't work. Issue #1808 - BUGFIX: Errors about lombok not reading a module providing
org.mapstruct.ap.spiwhen trying to use lombok in jigsaw-mode on JDK 11. Issue #1806 - BUGFIX: Fix NetBeans compile on save. Issue #1770
- BUGFIX: If you manually write your builder class so you can add a few methods of your own, and those methods refer to generated methods, you'd usually run into various bizarre error messages, but only on JDK9/10/11. This one is hard to describe, but we fixed it. Issue #1907
-
1.18.225 Jul 2018Release notes
Open source →- BUGFIX: mapstruct + lombok in eclipse should hopefully work again. Issue #1359 and mapstruct issue #1159
- BUGFIX: Equals and hashCode again exclude transient fields by default. Issue #1724
- BUGFIX: Eclipse 'organize imports' feature (either explicitly, or if automatically triggered on saving via 'save actions') would remove the import for
lombok.var. Issue #1783 - BUGFIX: Lombok and gradle v4.9 didn't work together; that's been fixed. Issue #1716 and gradle-apt-plugin issue #87
- FEATURE: You can now make builders for type hierarchies, using the new (experimental)
@SuperBuilderannotation. Thanks for the contribution, Jan Rieke.@SuperBuilderdocumentation - FEATURE:
@NoArgsConstructor, including forcing one withlombok.config: lombok.noArgsConstructor.extraPrivate=truenow take any defaults set with@Builder.Defaultinto account. Issue #1347
-
1.18.004 Jun 2018Release notes
Open source →- BREAKING CHANGE: The in 1.16.22 introduced configuration key
lombok.noArgsConstructor.extraPrivateis nowfalseby default. Issue #1708 - BUGFIX: Do not generate a private no-args constructor if that breaks the code. Issue #1703, Issue #1704, Issue #1712
- BUGFIX: Using boolean parameters in lombok annotations would fail. Issue #1709
- BUGFIX: Delombok would give an error message. Issue #1705
- BUGFIX: Eclipse java10 var support didn't work if lombok was installed in your eclipse. Issue #1676
- FEATURE: Google's Flogger (a.k.a. FluentLogger) is now available via
@Flogger. Issue #1697 - FEATURE:
@FieldNameConstantshas been extended to support prefixes and suffixes. By default, the generated constants are prefixed withFIELD_. Docs on @FieldNameConstants.
- BREAKING CHANGE: The in 1.16.22 introduced configuration key
-
1.16.2228 May 2018Release notes
Open source →- FEATURE: Private no-args constructor for
@Dataand@Valueto enable deserialization frameworks (like Jackson) to operate out-of-the-box. Uselombok.noArgsConstructor.extraPrivate = falseto disable this behavior. - FEATURE: Methods can now be marked for inclusion in
toString,equals, andhashCodegeneration. There is a new mechanism to mark which fields (and now, methods) are to be included or excluded for the generation of these methods: mark the relevant member with for example@ToString.Includeor@EqualsAndHashCode.Exclude. ToString documentation EqualsAndHashCode documentation - FEATURE:
@Getterand@Setteralso allowonMethodandonParamwhen put on a type. Issue #1653 - FEATURE:
@FieldNameConstantsis a new feature that generates string constants for your field names. Docs on @FieldNameConstants. - PLATFORM: Lombok can be compiled on JDK10, and should run on JDK10. Issue #1693
- PLATFORM: lombok now counts as an incremental annotation processor for gradle. Should speed up your gradle builds considerably! Issue #1580
- PLATFORM: Fix for using lombok together with JDK9+'s new
module-info.javafeature. Issue #985 - BUGFIX: Solved some issues in eclipse that resulted in error 'A save participant caused problems'. Issue #879
- BUGFIX: Netbeans on jdk9. Issue #1617
- BUGFIX: Netbeans < 9. Issue #1555
- PROMOTION:
varhas been promoted from experimental to the main package with no changes. The 'old' experimental one is still around but is deprecated, and is an alias for the new main package one. var documentation. - OLD-CRUFT:
lombok.experimental.Builderandlombok.experimental.Valueare deprecated remnants of when these features were still in experimental. They are now removed entirely. If your project is dependent on an older version of lombok which still has those; fret not, lombok still processes these annotations. It just no longer includes them in the jar.
- FEATURE: Private no-args constructor for
-
1.16.2008 Jan 2018Release notes
Open source →- PLATFORM: Better support for jdk9 in the new IntelliJ, Netbeans and for Gradle.
- BREAKING CHANGE: lombok config key
lombok.addJavaxGeneratedAnnotationnow defaults tofalseinstead of true. Oracle broke this annotation with the release of JDK9, necessitating this breaking change. - BREAKING CHANGE: lombok config key
lombok.anyConstructor.suppressConstructorPropertiesis now deprecated and defaults totrue, that is, by default lombok no longer automatically generates@ConstructorPropertiesannotations. New config keylombok.anyConstructor.addConstructorPropertiesnow exists; set it totrueif you want the old behavior. Oracle more or less broke this annotation with the release of JDK9, necessitating this breaking change. - DEVELOPMENT: Compiling lombok on JDK1.9 is now possible.
- BUGFIX: The generated hashCode would break the contract if
callSuper=true,of={}. Issue #1505 - BUGFIX:
delombokno longer prints the synthetic outer-class parameter. Issue #1521 - BUGFIX: @Builder.Default now also works when type parameters are present. Issue #1527
- BUGFIX: @Builder now also works on method with a generified return type. Issue #1420
- INSTALLER: By default, the lombok installer now inserts an absolute path in
eclipse.iniand friends, instead of a relative path. If you want the old behavior, you can usejava -jar -Dlombok.installer.fullpath=false lombok.jar.
-
1.16.1804 Jul 2017Release notes
Open source →- PLATFORM: JDK9 support much improved since v1.16.16; Issue #985
- BUGFIX: Lombok now works with Bazel and Error Prone. Issue #1290
- FEATURE: Lombok has a new website! A few very minor changes to the code to be more consistent with it have been added, mostly to the javadoc.
-
1.16.1623 Mar 2017Release notes
Open source →- FEATURE:
@Builder.Defaultlets you configure default values for your fields when using@Builder. See the Builder feature page for more information. Issue #1201 - PLATFORM: JDK9 now supported for compilation (delomboking with java9 not yet possible). Note, you'll have to do some command line wrangling. See Issue #985
- BUGFIX: The
onXfeature (which lets you add annotations to generated methods) did not work if the annotation you added contained named parameters, and you are compiling with JDK8's javac. We can't fix this (it's a bug in javac), but we have provided an alternate, prettier way to doonXon javac8+. Issue #778 onX documentation - BUGFIX:
@Dataand@Valuenow respect the configuration for field access when generating equals, hashCode and toString. Issue #1329 - BUGFIX:
@Buildernow marks generated builder 'setters' as@Deprecatedif the source field is deprecated. Issue #1342 - CHANGE:
@ConstructorPropertieswill now also be generated for private and package private constructors. This is useful for Jackson Issue #1180
- FEATURE:
-
1.16.1410 Feb 2017Release notes
Open source →- FEATURE: Generated classes, methods and fields can now also annotated with
@lombok.GeneratedIssue #1014 - PLATFORM: Lombok can now be used together with other annotation processors that are looking for lombok-generated methods, but only if lombok is the first annotation processor executed. The most commonly used annotation processor affected by this change is MapStruct; we've worked with the mapstruct team specifically to allow any order. Other annotation processors might follow the framework we've built to make this possible; point the authors of any such processor to us and we'll get it sorted MapStruct issue #510 Lombok issue #973
- PLATFORM: Eclipse: Refactor script 'rename field' when lombok has also generated getters and/or setters for this field is nicer now Issue #210
- BUGFIX: Something you never encountered. Issue #1274
- DEPRECATION: The configuration key
lombok.addGeneratedAnnotationis now deprecated, uselombok.addJavaxGeneratedAnnotationinstead.
- FEATURE: Generated classes, methods and fields can now also annotated with
-
1.16.1205 Dec 2016Release notes
Open source →- FEATURE:
varis the mutable sister ofval. For now experimental, and opt-in usingALLOWin the flagUsage configuration key. Thanks for the contribution, Bulgakov Alexander. - CHANGE:
@Valueand@FieldDefaultsno longer touch static fields Issue #1254 - BUGFIX:
valin lambda expressions now work as expected Issue #911 - BUGFIX:
Getter(lazy=true)now emits an error message when used on a transient field Issue #1236 - BUGFIX: Annotation Processors that use ecj internally (dagger) no longer give linkage errors Issue #1218
- PLATFORM: Red Hat JBoss Developer Studio is now correctly identified by the installer Issue #1164
- BUGFIX: delombok: for-loops with initializers that are not local variables would be generated incorrectly Issue #1076
- FEATURE:
-
1.16.1015 Jul 2016Release notes
Open source →- FEATURE: Added support for JBoss logger Issue #1103
- ENHANCEMENT: Running
javac -Xlint:allwould generate a warning about unclaimed annotations Issue #1117 - BUGFIX: Eclipse Mars would sometimes throw a NullPointerException when using
@DelegateIssue #913 - ENHANCEMENT: Add support for older maven-compiler-plugin Issue #1138
-
1.16.807 Mar 2016Release notes
Open source →- PLATFORM: Starting jdk9 support: No more error message regarding
pid - FEATURE:
@Builderupdates: It now generatesclearFieldName()methods if@Singularis used. Issue #967. - FEATURE:
@Builderupdates: The annotation can now be put on instance methods. Issue #63. - FEATURE:
@Builderupdates:@Singularnow supports guava's ImmutableTable Issue #937. - FEATURE: A
lombok.configkey can now be used to make your fieldsfinaland/orprivate... everywhere. We'll be monitoring the performance impact of this for a while. We'll touch every source file if you turn these on, and even if you don't, we have to call into the lombok config system for every file. - FEATURE: A
lombok.configkey can now be used to set the default behaviour of@EqualsAndHashCodewhen generating methods for a class that extends something in regards to calling the superclass implementations ofequalsandhashCodeor not. Issue #965. - FEATURE: Putting
@Witheron abstract classes now generates something slightly more useful: An abstract wither method. Issue #945. - BUGFIX:
@Helperused to only be be legal in pretty specific places; now it works just about everywhere. - BUGFIX: lambdas with 1 argument that has an explicit type did not pretty print correctly. Issue #972.
- BUGFIX: When using delombok, a source file with only
@NonNullannotations on parameters as lombok feature would not get properly delomboked. Issue #950. - BUGFIX:
@Delegatein javac would generate arrays instead of varargs parameters. Issue #932. - BUGFIX:
@Valueand@FieldDefaultsno longer make uninitialized static fields final. Issue #928. - ENHANCEMENT:
@Builder.ObtainVianow has@Retention(SOURCE)Issue #986. - ENHANCEMENT: Putting
@NonNullon a parameter of an abstract method no longer generates a warning, to allow you to use this annotation to document intended behaviour Issue #807.
- PLATFORM: Starting jdk9 support: No more error message regarding
-
1.16.618 Aug 2015Release notes
Open source →- FEATURE:
@Helpercan be placed on method-local inner classes to make all methods in the class accessible to the rest of the method. Full documentation. - FEATURE:
@Builder(toBuilder = true)is now available. It produces an instance method that creates a new builder, initialized with all the values of that instance. For more, read the Feature page on Builder. - FEATURE: the
hashCode()method generated by lombok via@EqualsAndHashCode,@Data, and@Valueis now smarter about nulls; they are treated as if they hash to a magic prime instead of 0, which reduces hash collisions. - FEATURE:
@NoArgsConstructor(force = true)can be used to create no args constructors even if final fields are present. - BUGFIX: Parameterized static methods with
@Builderwould produce compiler errors in javac. Issue #828. - BUGFIX: The new annotations-on-types feature introduced in JDK8 did not delombok correctly. Issue #855.
- PERFORMANCE: the config system caused significant slowdowns in eclipse if the filesystem is very slow (network file system) or has a slow authentication system.
- BUGFIX: Various quickfixes in Eclipse Mars were broken. Issue #861 Issue #866 Issue #870.
- FEATURE:
-
1.16.414 Apr 2015Release notes
Open source →- BUGFIX: Lombok now works with Eclipse Mars.
- BUGFIX: @UtilityClass could result in uninitialized static variables if compiled with ecj/eclipse. Issue #839
- BUGFIX: This version of lombok has a refactored launcher (the one introduced in v1.16.0), which fixes various bugs related to errors in eclipse concerning loading classes, failure to find lombok classes, and errors on ClassLoaders. Probably impacts issues Issue #767 and Issue #826.
-
1.16.210 Feb 2015Release notes
Open source →- FEATURE: The config key
lombok.extern.findbugs.addSuppressFBWarningscan now be used to add findbugs suppress warnings annotations to all code lombok generates. This addresses feature request Issue #737. - FEATURE: New lombok annotation:
@UtilityClass, for making utility classes (not instantiable, contains only static 'function' methods). See the feature documentation for more information. - BUGFIX: The ant
delomboktask was broken starting with v1.16.0. Note that the task def class has been changed; taskdeflombok.delombok.ant.Tasks$Delombokinstead of the oldlombok.delombok.ant.DelombokTask. Issue #810. - BUGFIX:
valin javac would occasionally fail if used inside inner classes. This is (probably) fixed. Issue #729 and Issue #616. - BUGFIX: Starting with v1.16.0, lombok would fail to execute as an executable jar if it was in a path with spaces in it. Issue #812.
- BUGFIX: v1.16.0 did not work in old eclipse versions (such as eclipse indigo). Issue #818.
- FEATURE: The config key
-
1.16.026 Jan 2015Release notes
Open source →- BUGFIX:
@ExtensionMethodwas broken in Eclipse using java 8. Issue #777, Issue #782 - BUGFIX: delombok: Using exotic characters in your source files would overzealously backslash-u escape them. Now, all characters are printed unescaped, assuming your chosen encoding can support them. Otherwise, they are escaped. Issue #794
- PROMOTION:
@Builderhas graduated from experimental to the main package with a few changes (addition of@Singular, removal of thefluentandchainoptions). The old one still exists and has been deprecated. - FEATURE:
@Buildernow supports adding the@Singularannotation to any field/parameter that represents a collection, which results in a method in the generated builder that takes in one element of that collection and adds it. Lombok takes care of generating the appropriate code to produce a compacted immutable version of the appropriate type. In this version, java.util collections and guava's ImmutableCollections are supported. See the feature documentation for more information. - FEATURE: Added a launcher to the lombok boot process which removes the need for
-Xbootclasspathto be in youreclipse.inifile, and removes all non-public API and third party dependencies (such as ASM) from the lombok jar, thus removing them from your IDE's auto complete offerings in any project that uses lombok. For those debugging lombok, the launcher enables hot code replace which makes debugging a lot easier, as previously one was required to shut down the IDE, rebuild the jar, and relaunch. Add-Dshadow.override.lombok=/path/to/lombok/binto the launch target for hot code replace.
- BUGFIX:
-
1.14.815 Sep 2014Release notes
Open source →- PERFORMANCE: The configuration system typically hit the filesystem twice per read configuration key instead of hardly ever. This is a continuation of Issue #717.
-
1.14.602 Sep 2014Release notes
Open source →- BUGFIX: Usage of
valwould break starting with JDK8 release1.8.0_20. Issue #766 - BUGFIX: Depending on your eclipse project setup, releases v1.14.0 through v1.14.4 could noticably slow down your eclipse. Issue #717.
- BUGFIX: Usage of
-
1.14.401 Jul 2014Release notes
Open source →- BUGFIX: GWT produces errors in handlers on line 1 in any source files that use lombok; this has been fixed. Issue #734
- BUGFIX-IN-PROGRESS: Many pathfinder issues in eclipse (see the bugfix in progress in v1.14.2) have now been fixed. Issue #717
-
1.14.210 Jun 2014Release notes
Open source →- BUGFIX: syntax highlighting in eclipse will become weird and auto-complete may stop working amongst other eclipse features in v1.14.0 (regression from v1.12.6). Issue #723
- FEATURE: Added
@Tolerate; put this annotation on any method or constructor and lombok will skip it when considering whether or not to generate a method or constructor. This is useful if the types of the parameters of your method do not clash with what lombok would generate. - FEATURE: Added config key
lombok.getter.noIsPrefix, which lets you disable use and generation ofisFoo(), instead going withgetFoo(), for {@code boolean} fields. - BUGFIX: Errors in the eclipse log with
IndexOutOfBound: 2inASTConverter.convertType. Issue #721 - BUGFIX-IN-PROGRESS: As yet unknown conditions in eclipse result in lots of
IllegalArgumentExceptionin the log with message "Path must include project and resource name". Also, 'invalid URL' or 'URI not absolute' errors can occur when using exotic file system abstractions such as Jazz. These bugs haven't been fixed, but instead of catastrophic failure, warning logs will be emitted instead. Issue #717 - BUGFIX: mvn builds fail with a 'URI not absolute' exception. Issue #718
-
1.14.027 May 2014Release notes
Open source →- FEATURE: You can now configure aspects of lombok project wide (or even workspace wide, or just for a single package) via the configuration system. You can configure many things; run
java -jar lombok.jar config -gvfor the complete list. - DEPRECATION:
@Delegatehas been moved tolombok.experimental.Delegate, and corner cases such as recursive delegation (delegating a type that itself has fields or methods annotated with@Delegate) are now error conditions. See the feature documentation for more information. - FEATURE: It is now possible to put annotations, such as
@Nullable, on the one parameter of generatedequals()methods by specifying theonParam=option on@EqualsAndHashCode, similar to how that feature already exists for@Setter. Issue #709 - CHANGE: suppressConstructorProperties should now be configured via lombok configuration. Issue #694
- CHANGE: The
canEqualmethod generated by@EqualsAndHashCode,@Valueand@Datais nowprotectedinstead ofpublic. Issue #695 - BUGFIX: Major work on improving support for JDK8, both for javac and eclipse.
- BUGFIX: Deadlocks would occasionally occur in eclipse when using lazy getters Issue #625
- BUGFIX: Usage of
@SneakyThrowswith a javac from JDK8 with-target 1.8would result in a post compiler error. Issue #690 - BUGFIX: Switching workspace on some versions of eclipse resulted in a 'duplicate field' error. Issue #701
- FEATURE: You can now configure aspects of lombok project wide (or even workspace wide, or just for a single package) via the configuration system. You can configure many things; run
-
1.12.606 Mar 2014Release notes
Open source →- BUGFIX: Deadlocks would occasionally occur in eclipse during project builds, especially if using the gradle plugin. Issue #680
- PLATFORM: Added support for Eclipse Luna. Issue #644
- PLATFORM: Initial JDK8 support for eclipse's alpha support in kepler. Issue #632
- FEATURE: The various
@Logannotations now support thetopicparameter, which sets the logger's name. The default remains the fully qualified type name of the class itself. Issue #667. - BUGFIX: Using lombok with IntelliJ and the IBM JDK would result in NPEs during initialization. Issue #683.
- BUGFIX: Eclipse quickfix Surround with try/catch block didn't work inside
@SneakyThrowsannotated methods Issue #511. - BUGFIX: Eclipse refactoring Extract Local Variable didn't work inside
@SneakyThrowsannotated methods Issue #668. - BUGFIX: {Netbeans} @SneakyThrows would lead to unused import and break refactorings Issue #544.
- BUGFIX: Eclipse Organize Imports would generate error: AST must not be null Issue #666.
- BUGFIX: Copying javadoc to getters / setters / withers would copy non-relevant sections too. Issue #620.
- ENHANCEMENT: Lombok used to ship with JNA. It added over 800k to the size of lombok.jar and could mess with usage of JNA in your local environment, especially in eclipse. Issue #682
- DETAIL: {Delombok} Inside enum bodies the delombok formatter didn't respect the emptyLines directive Issue #664.
- DETAIL: Use smaller primes (<127) for generating hashcodes Issue #660
-
1.12.415 Jan 2014Release notes
Open source →- BUGFIX: v1.12.2's delombok turns all operator+assignments into just assignment. Fixed. Issue #633
- BUGFIX: {Netbeans} v1.12.2 doesn't well with netbeans. Issue #626
- ENHANCEMENT: Delombok now supports varied options for how it formats the resulting source files. This includes scanning the source for things like the preferred indent. Use option
--format-helpfor more information. Issue #643 - DETAIL: The primes lombok generates for use in generated hashCode() methods used to be direct copies from Effective Java. It turns out these particular primes are used so much, they tend to be a bit more collision-prone, so we switched them. Now, '277' is used instead of '31'. The primes for booleans have also been changed. Issue #660
-
1.12.210 Oct 2013Release notes
Open source →- PLATFORM: Initial JDK8 support, without affecting existing support for JDK6 and 7. Issue #524. While lombok will now work on JDK8 / javac8, and netbeans 7.4 and up, lombok does not (yet) support new language features introduced with java8, such as lambda expressions. Support for these features will be added in a future version.
- PLATFORM: Running javac on IBM J9 VM would cause NullPointerExceptions when compiling with lombok. These issues should be fixed. Issue #589.
- CHANGE: [JDK8-related] The canonical way to write onMethod / onParameter / onConstructor annotation now uses a double underscore instead of a single underscore, so, now, the proper way to use this feature is
@RequiredArgsConstructor(onConstructor=@__(@Inject)). The old way (single underscore) still works, but generates warnings on javac 8. - BUGFIX: Using
@NonNullon an abstract method used to cause exceptions during compilation. Issue #594. - BUGFIX: Using
@NonNullon methods that also have@SneakyThrowsor@Synchronizedcaused arbitrary behaviour. Issue #623. - GERMANY: Major version bumped from 0 to 1, because allegedly this is important. Rest assured, this change is nevertheless backwards compatible.
-
0.12.015 Jul 2013Release notes
Open source →- FEATURE: javadoc on fields will now be copied to generated getters / setters / withers. There are ways to specify separate javadoc for the field, the setter, and the getter, and
@paramand@returnare handled appropriately. Addresses feature request Issue #132. @Getter and @Setter documentation. @Wither documentation. - CHANGE: The desugaring of @Getter(lazy=true) is now less object creation intensive. Documentation has been updated to reflect what the new desugaring looks like. @Getter(lazy=true) documentation.
- PROMOTION:
@Valuehas been promoted from experimental to the main package with no changes. The 'old' experimental one is still around but is deprecated, and is an alias for the new main package one. @Value documentation. - FEATURE: {Experimental}
@Buildersupport. One of our earliest feature request issues, Issue #89, has finally been addressed. @Builder documentation. - FEATURE:
@NonNullon a method or constructor parameter now generates a null-check statement at the start of your method. This nullcheck will throw aNullPointerExceptionwith the name of the parameter as the message. Issue #549 - BUGFIX: Usage of
Lombok.sneakyThrow()or@SneakyThrowswould sometimes result in invalid classes (classes which fail withVerifyError). Issue #543 - BUGFIX: Using
valin try-with-resources did not work for javac. Issue #555 - BUGFIX: When using
@Data, warnings are not generated if certain aspects are not generated because you wrote explicit versions of them. However, this gets confusing withequals/hashCode/canEqual, as nothing is generated if any one of those methods is present. Now, if one ofequalsorhashCodeis present but not the other one (orcanEqualis present butequalsand/orhashCodeis missing), a warning is emitted to explain that lombok will not generate any of the equals / hashCode methods, and that you should either write them all yourself or remove them all. Issue #548 - BUGFIX: Possibly fixed a race condition in patcher Issue #566.
- FEATURE: javadoc on fields will now be copied to generated getters / setters / withers. There are ways to specify separate javadoc for the field, the setter, and the getter, and
-
0.11.823 Apr 2013Release notes
Open source →- FEATURE: Major performance improvements in eclipse by profiling the project clean process.
- CHANGE: {Experimental} The experimental
@Valuefeature no longer implies the also experimental@Wither. If you like your@Valueclasses to make withers, add@Witherto the class right next to@Value. - FEATURE: {Experimental} Reintroduced
onMethod,onConstructorandonParamto@Getter,@Setter,@Wither, and@XArgsConstructor. These parameters allow you to add annotations to the methods/constructors that lombok will generate. This is a workaround feature: The stability of the feature on future versions of javac is not guaranteed, and if a better way to implement this feature is found, this feature's current incarnation will be removed without a reasonable period of deprecation. Documentation on the onX feature - FEATURE: Added support for Log4j v2.0 via
@Log4j2Issue #505 - ENHANCEMENT: The Lombok installer can now find and install lombok into JBoss Developer Studio. The installer will now also look for eclipse and eclipse variants in your home directory. Issue #507
- BUGFIX:
@ExtensionMethodsno longer causesVerifyErrorexceptions when running eclipse-compiled code if extension methods are called on expressions which are method calls whose return type is a type variable. For example,someList.get(i).extensionMethod()would fail that way. Issue #509 - BUGFIX: java 7's try-with-resources statement did not delombok correctly. Issue #532
-
0.11.629 Oct 2012Release notes
Open source →- FEATURE: Lombok can be disabled entirely for any given compile run by using JVM switch
-Dlombok.disable. This might be useful for code style checkers and such. - FEATURE: Added support for Slf4j extended logger Issue #494
- BUGFIX: {Delombok} Running delombok has been causing VerifyError errors when used with javac 1.7 since 0.11.0. Issue #495
- BUGFIX: A conflict between lombok and certain eclipse plugins would result in NullPointerExceptions in the log when using
@Delegate. - BUGFIX:
NullPointerException in lombok.​javac.​handlers.​JavacHandlerUtil.​upToTypeNode​(JavacHandlerUtil.java:978)when compiling with@ExtensionMethodin javac and generated constructors are involved. Issue #496 - BUGFIX:
@Deprecatedon a field that gets a generated setter in eclipse would result inIllegalArgumentException, which you wouldn't see unless you have the error log open. If you have save actions defined, you'd get a popup box with the exception. Now fixed. Issue #481
- FEATURE: Lombok can be disabled entirely for any given compile run by using JVM switch
-
0.11.413 Aug 2012Release notes
Open source →- FEATURE: {Experimental}
@Value,@Witherand@FieldDefaultsare now available. These are a lot like@Databut geared towards immutable classes. Documentation on @Value, Documentation on @Wither and Documentation on @FieldDefaults. - BUGFIX: Eclipse would throw an OOME if using
@ExtensionMethod. Issue #463 - BUGFIX: {Netbeans}
@Cleanupand@Synchronizedcause far fewer issues in the netbeans editor. Issue #466 - BUGFIX: {Installer} Erroneous messages about the installer complaining about needing root access when installing or removing lombok from eclipse installs has been fixed. The installer edge of this problem was actually already fixed in v0.11.2. Issue #436
- BUGFIX:
@ExtensionMethodhad all sorts of issues in javac. Issue #472 - BUGFIX: Generating static constructors with javac when you have fields with generics, i.e.
Class<T>, caused errors. Issue #469 - BUGFIX: Minor
@ExtensionMethodissues in eclipse, such as the ability to call extension methods on asuperreference which is now no longer possible. Issue #479
- FEATURE: {Experimental}
-
0.11.202 Jul 2012Release notes
Open source →- FEATURE: {Experimental}
@ExtensionMethodis now available to add extensions to any type in the form of static methods that take as first parameter an object of that type. Documentation on @ExtensionMethod - FEATURE: ONGOING: Fix for using lombok together with gwt-designer.
- ENHANCEMENT: Small performance enhancements in
equalsandhashCode. Issue #439 - BUGFIX: Eclipse would display an error message regarding an invalid super constructor in the wrong location. Issue #409
- BUGFIX: Eclipse refactor script 'rename method arguments' should work more often with lombok-affected methods.
- BUGFIX: Using
valin an enhanced for loop did not work if the iterable was a raw type. - BUGFIX: Using
@Getter(lazy=true)when the data type is boolean, int, array, or some other type that requires special treatment for hashCode/equals, now works properly with@Data,@EqualsHashCodeand@ToString. Issue #449 - BUGFIX:
SneakyThrowsin constructor should not wrap this/super call in try-block Issue #454 - BUGFIX: Setting breakpoints on code above the first generated method was not possible. Issue #450
- FEATURE: {Experimental}
-
0.11.026 Mar 2012Release notes
Open source →- FEATURE: {Experimental} 'fluent' getters and setters (using just
fieldNameas methodname instead ofgetFieldName), setters that returnthisinstead ofvoid, and support for fields with prefixes is introduced with this lombok version. Also, the number of parameters of any existing methods with the same name that lombok would generate are now taken into account; previously if you had any method namedsetXregardless of how many parameters it has, lombok would avoid generating asetXmethod. Now lombok generates the method if all presentsetXmethods have a number of parameters other than 1. documentation. - FEATURE: The combination of
@Delegateand@Getteror@Datawill now delegate to the result of a generated getter. Issue #401 - FEATURE: Developing android apps on eclipse with lombok is now possible by running
java -jar lombok.jar publicApiand including the generated jar in your project. Documentation on using lombok for android development. - BUGFIX: In NetBeans the generated default constructor would still be generated even if Lombok also generated constructors. Issue #399
- BUGFIX: Some classes that contain @SneakyThrows would not compile (throw ClassFormatError). Issue #412
- BUGFIX: delombok: When
@Delegatewould generate a method with type parameters of the typeT extends package.Class, a dot would be prepended to the type name. Issue #414 - BUGFIX: @Getter and @Setter now generate deprecated methods for deprecated fields. Fixes Issue #415
- BUGFIX: @Delegate would not generate @Deprecated on methods marked deprecated in javadoc. Fixes Issue #421
- BUGFIX: Using
valwith a type likeOuter<TypeArgs>.Innernow works. Issue #416 - BUGFIX:
@Getter(lazy=true)where the variable type is a primitive and the initializing expression is of a different primitive type that would type coerce implicitly, i.e. ints can be assigned to longs without a cast, didn't work before. Issue #418 - BUGFIX:
valis no longer legal inside basic for loops (the old kind, not the foreach kind). These variables should rarely be final, and in practice it wasn't possible to delombok this code properly. Issue #419 - BUGFIX: PrettyCommentsPrinter now prints default clause of annotation methods. Fixes Issue #423
- FEATURE: {Experimental} 'fluent' getters and setters (using just
-
0.10.819 Jan 2012Release notes
Open source →- FEATURE:
@Delegatecan now be used on a no-argument method, which works similarly to adding it to fields. See documentation. - BUGFIX: Eclipse refactoring Extract Interface was broken when using lombok annotation to generate methods. Issue #159
- BUGFIX: Eclipse action Sort Members was broken when using lombok annotations to generate methods or fields. Issue #338
- BUGFIX: Eclipse action Refactor/Rename on an inner type was broken when using lombok annotations. Issue #389
- BUGFIX: 0.10.6 causes ClassNotFoundErrors when using ecj (and thus, play framework, gwt, etc). Issue #393
- BUGFIX: Eclipse parsing was broken when using lombok annotations with parentheses. Issue #398
- ENHANCEMENT: Lombok now adds a line to the Eclipse About dialog about itself.
- FEATURE:
-
0.10.619 Dec 2011Release notes
Open source →- PERFORMANCE: Performance issues (memory leaks) when using lombok in netbeans, introduced in 0.10, have been fixed. Issue #315
- BUGFIX: Eclipse quickfix "Add unimplemented methods" would sometimes insert the new method stubs in strange places, especially if
@Datawas present. Issue #124 - BUGFIX: Eclipse quickfix "Assign parameter to new field" would insert it outside the class body if
@Datawas present. Issue #295 - BUGFIX: Renaming a @Data-annotated class in eclipse using Alt+Shift+R no longer mangles the data annotation. Issue #359
- BUGFIX: Using save action 'Use this qualifier for field accesses, only if necessary' did not work together with
@Datain certain cases. Issue #374 - BUGFIX: Organize imports, either run manually or as save action, would throw an exception. Issue #381
- BUGFIX: Extracted constants would be placed outside the class body when a logging annotation was present. Issue #388