Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Remove Lombok usage #444

Closed
mp911de opened this issue Jun 30, 2019 · 0 comments
Closed

Remove Lombok usage #444

mp911de opened this issue Jun 30, 2019 · 0 comments
Labels
type: task A general task
Milestone

Comments

@mp911de
Copy link
Member

mp911de commented Jun 30, 2019

We should remove Lombok from our framework code. There are multiple reasons for that:

  • Lombok induces some code generation magic. The generated code isn't visible in source jars and javadocs unless adding additional steps that increase build time and build setup complexity (plugins, ordering dependencies)
  • Using Lombok makes it too easy to provide accidental functionality. In several places, we use @Data instead of multiple annotations. This generates a load of methods that are available for use, sometimes without an explicit intention to do so. The right approach would be adding explicit annotations for each aspect to generate.
  • Rapid changes in the Java compiler make Lombok a typical component that prevents early Java upgrades.
  • Eclipse users are required to install a plugin to properly work with our code

On the flip side:

  • Lombok is handy for data classes/value objects of which we provide a lot of. Code generation is a significant part especially when it comes to hashCode/equals methods. The manual code needs testing and must be maintained.
  • Lombok makes especially test code slim because it generates a lot of functionality that can be consumed easily with assertions.
@mp911de mp911de added the type: task A general task label Jun 30, 2019
@mp911de mp911de added this to the 2.2.0 M1 milestone Jun 30, 2019
@mp911de mp911de changed the title Remove Lombok Remove Lombok usage Jun 30, 2019
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
type: task A general task
Projects
None yet
Development

No branches or pull requests

1 participant