Join GitHub today
GitHub is home to over 50 million developers working together to host and review code, manage projects, and build software together.Sign up
Modules, Dependencies and Versioning #336
Modules and dependencies
In the first wave of changes I have separated WebLaF into three base modules:
But with the next v1.3.0 update I want to make some further steps toward extracting some of big library parts which might not even be connected to the
I am not completely sure what those changes will include in the end, but here are some initial ideas:
So the final list of basic modules would look something like this:
And three extra modules:
Core will become even lighter with those changes and as an example - you will be able to use features like
I might also consider a few more general-purpose modules, for example
Note that some of these changes might end up not getting into final v1.3.0 release as this is just a sketch. If anyone has any thoughts on the case - I would love to hear your opinion.
Current WebLaF versioning will take its first step towards semantic versioning system. Unfortunately till release of WebLaF v2.0.0 it will not be completely fair and updates might still contain some minor API breaks due to a huge number of outdated stuff within the library which I am trying to remove or replace and some other specific things. Starting with release of v2.0.0 it will be used as intended.
Also, as it was mentioned before - v2.0.0 will be modified to support only JDK 8+ which will allow me to remove a lot of workarounds cases from the code, improve it and its overall usability. At that point some minor changes and fixes will still be added into v1.x.x version, but all major features will only be included into v2.x.x.
There are multiple reasons why I decided to split up the library even further:
So I want to break down the library into smaller parts which will have transparent dependencies and will be much easier to maintain, modify and enhance.
- Moved `PluginManager` into a separate library module [ #336 ] - PluginManager.java, Plugin.java, DetectedPlugin.java - Proper checks for headless environment Utilities - SystemUtils.java - Added headless environment check method - ImageUtils.java - Removed static icons initialization to avoid issues in headless environment Build - build.xml, build.properties - Updated ANT build with new `weblaf-plugin-xxx.jar` artifact - build.xml, build.properties - Slightly reworked the way classpaths are defined to make them more convenient - pom.xml - Added for plugin module, slightly updated for other modules
It was separated before v1.3.0 update due to some changes in our internal projects. This change should not affect anything as