Hi Daniel,

Sorry, the official vote passed and the community is against pushing Lombok 
into OFBiz.

Jacques

Le 08/09/2020 à 09:29, Jacques Le Roux a écrit :
Hi Daniel,

We did not make an official vote yet. As it's an important matter, I'll start a vote in order to decide if we should, or not, use Lombok inside OFBiz OOTB.

Thanks

Jacques

Le 08/09/2020 à 01:25, Daniel Watford a écrit :
Hello all,

Based on this thread it doesn't seem that we have a strong consensus either
for or against use of Lombok at this time.

Votes:
Dan W (me!):  +1
Jacques: +1
Shi: -1

Sentiment in other messages seems positive but cautious.

Some pros and cons have been presented.

I need some direction from the project on how to proceed - Is use of Lombok
acceptable within OFBiz?

Thanks,

Dan.


On Sat, 29 Aug 2020 at 13:54, Jacques Le Roux <jacques.le.r...@les7arts.com>
wrote:

Thanks JInghai!


Le 29/08/2020 à 14:50, Shi Jinghai a écrit :
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


Reply via email to