Dear all,

I would like to donate my Gradle works to Apache NetBeans.

Right now the code is here: https://github.com/lkishalmi/incubator-netbeans/tree/gradle-support

I just recently rebased it on master, so there is no conflicts. If I'd create a PR from it that would mean 317 new files and ~35k line of code.

The current state of the plugin:

 * It Opens Gradle Projects resource efficiently
 * It is based on the ideas found in our Maven Plugin
 * It supports JavaSE and Groovy development
 * Unit Testing
 * Code Coverage
 * JPA projects
 * Spring (the little support we have for that)
 * Navigator for project task
 * Custom Task execution
 * Output processing
 * Debugging (even single methods)
 * Creating new projects

The shady side:

 * The Gradle <-> NetBeans project discovery and communication.
   Based on simple property serialization. Ugly Groovy code, well the
   deserialization Java code isn't that nice as well
 * Limited number of unittest
 * Being a sole developer there could be glitches here and there as of
   lack of wider testing.
 * Gradle is required to build the NetBeans <-> Gradle tooling
   This adds a binary
   groovy/gradle/netbeans-gradle-tooling/gradle/wrapper/gradle-wrapper.jar
   to the source distribution package, though this file is not
   distributed. So Apace might agree with that.

Introduced External Dependencies:

 * Gradle Tooling API (Apache Licensed)
     o slf4j (Apache Licensed)
 * JaCoCo Core Library (EPL 1.0)
   The whole JaCoCo project uses other libraries distributed under
   different licenses, I need to make sure that the core is EPL 1.0 only

Areas to Improve:

 * There is no support for Ergonomy
 * Module versions might be incorrectly specified, I did the best I could
 * Add Groovy project support (could be trivial)
 * Improve Gradle <-> JDK incompatibility check.
 * Profiling
 * Compile on Save (that's an icy territory)
 * Improve project Settings
 * Whatever you think...

Future Works:

 * I also have a JavaEE support module started, I can donate somewhat
   later to the enterprise cluster.


Reply via email to