Hi Jacques, It’s about a year ago. My IDE is eclipse. I spent about half of a day to make Lombok work correctly, Getter/Setter, AllArgsConstructor, plugin version problem and etc.
Does Lombok plugin worth a requirement and a time investment by all OFBiz developers? My answer is NO. Kind Regards, Shi Jinghai 发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用 发件人: Jacques Le Roux<mailto:jacques.le.r...@les7arts.com> 发送时间: 2020年8月27日 15:10 收件人: dev@ofbiz.apache.org<mailto:dev@ofbiz.apache.org> 主题: Re: A little bit of Lombok Thanks Jinghai, Is that long ago? Do you remember the most important issues you crossed? Jacques Le 27/08/2020 à 06:20, Shi Jinghai a écrit : > Just my 2 cents. > > -1 for using Lombok plugin in OFBiz. > > I had some not good experiences with this plugin in Apereo CAS 5.3.x. > > > > 发送自 Windows 10 版邮件<https://go.microsoft.com/fwlink/?LinkId=550986>应用 > > 发件人: Daniel Watford<mailto:d...@foomoo.co.uk> > 发送时间: 2020年7月28日 20:44 > 收件人: dev@ofbiz.apache.org<mailto:dev@ofbiz.apache.org> > 主题: A little bit of Lombok > > Hello, > > Back in April the possibility of using Lombok for the generation of some > boilerplate code was mentioned on the mailing list [1]. > > As part of work-in-progress on OFBIZ-11900 (refactoring MacroFormRenderer) > I have used Lombok on a few small classes. The work-in-progress branch can > be found at [2]. > > Only a small amount of Lombok has been used so far, meaning it shouldn't be > too difficult to remove it if needed. > > In build.gradle I have used the FreeFair Gradle Lombok plugin [3] > referenced by the Lombok Project [4]. > > Building with the lombok plugin seemed to use a lot of memory and caused > gradle to garbage collect and run out of heap regularly. To resolve this I > increased the about of memory available to gradle in gradle.properties > using: > > org.gradle.jvmargs=-Xmx2g -XX\:MaxHeapSize\=4g > > Tuning this might be important depending on the CI infrastructure used by > the Ofbiz project. > > You will likely need your IDE to apply annotation processing otherwise you > might see warning of missing methods. In IntelliJ I use what appears to be > the de facto Lombok plugin [5]. > Guidance is available from the Lombok project for other IDEs [6]. > > Lombok @ToString annotations have been applied to RenderableFtlString and > RenderableFtlNoop. This causes Lombok to insert toString() methods into the > classes based on the class names and field values. > > The @Value annotation has been applied to > MacroCallParameterStringValue, MacroCallParameterBooleanValue > and MacroCallParameterMapValue. This annotation turns those classes into > immutable-like entities, where all fields must be set in the inserted > constructor and are available from automatically inserted getters. > ToString(), equals and hashCode() methods are also created meaning these > classes can be relied upon as map keys if needed. > > The @Builder annotation has been applied to RenderableFtlMacroCall > and RenderableFtlSequence. This annotation does quite a lot so I'd > recommend you run delombok (instructions below) to see the code that Lombok > inserts for us. > > To see the sources generated by Lombok we can run DeLombok. At the command > line execute: > ./gradlew delombok > > A copy of all sources (not just those with lombok annotations) will be > placed under build/delombok. Please take a look at the delomboked sources > for the above classes under > build/delombok/main/org/apache/ofbiz/widget/renderer/macro/parameter and > build/delombok/main/org/apache/ofbiz/widget/renderer/macro/renderable. > > Please let me know what you think about this usage of Lombok. > > Thanks, > > Dan. > > [1] - > http://ofbiz.135035.n4.nabble.com/Default-constructors-in-JAVA-classes-tp4749257p4749258.html > > [2] - https://github.com/danwatford/ofbiz-framework/tree/OFBIZ-11900-WIP > [3] - https://plugins.gradle.org/plugin/io.freefair.lombok > [4] - https://projectlombok.org/setup/gradle > [5] - https://plugins.jetbrains.com/plugin/6317-lombok/ > [6] - https://projectlombok.org/setup/overview > > -- > Daniel Watford >