Description
Hi,
We are currently working with some students at connecting our own refactoring front-end to your engine ; the idea is that we rewrite loops when we can to use the Stream API, so that your own tool finds more points where it could apply the parallelStream transformation.
But we've been having issues with installation and the various dependencies in your code base. To limit headaches particularly for my students who are just learning about plugins/eclipse dev, I built a (hopefully) cleaner environment based off your code.
Basically my fork of your project https://github.com/yanntm/Optimize-Java-8-Streams-Refactoring/ has no sematic differences, but :
- a lot of changes to the maven build/travis, features and updatesite definitions
- some changes in Manifest where appropriate to refactor dependencies.
- I also discarded most of the lib/ folders (in favor of properly handled Plug-in dependencies),
- dropped any "imported package" dependency (these are not dealt with by maven/eclipse itself)
- edited the build path variables appropriately,
- and emptied the "update site" project that contained a bunch of artifacts that Maven is supposed to regenerate/download.
( I've also had to build a new maven enabled build for the "metrics" dependency here https://github.com/yanntm/metrics2-gh since the project on sourceforge offers Eclipse 3.X format update site that maven cannot properly treat as a p2 repo. In the process I updated a bit of code that used API moved from "swt.custom" to "swt.widgets" but that was very minor. So we now depend on that particular build of "metrics" intead of sourceforge)
So I'm using travis-ci to build and run the stuff, though the Jacoco/reporting thing I'm not sure about, the rest works fine and produces an update site hosted on github pages, here :
https://yanntm.github.io/Optimize-Java-8-Streams-Refactoring/
So you get :
- a single update site, no need to tell anyone anymore about all those (nasty) dependencies
- two category/features instead of one : the first one is just the core functionality you had on your update site, the second one contains "test" and "eval" plugins. The idea is that once you install this second feature, opening the eval or test project in eclipse works directly, as all dependencies are found in the current platform
- versioning using maven snapshot : the versions (I bumped to 2.0.0-SNAPSHOT) evolve at each build, so that a client will always get the latest version of the plugins, even if he has some older version installed.
I just tested using a clean eclipse "2020-03 Java Developer", install the PDE from normal eclipse site, then install both features from update site https://yanntm.github.io/Optimize-Java-8-Streams-Refactoring/ , clone (my fork of) the repo, open "eval" (or any of the projects in the repo, but eval and test have the worst dependencies) => no compilation/issues, it works out of the box.
I'd be happy to submit a PR with these changes, if you like them, but I thought I'd post an issue first to discuss it with you.
Thanks for making this code base available,
Best regards
Yann Thierry-Mieg
(Sorbonne Université)