Great work!
I would probably have named the first one "src:eclipse-equinox-bundles",
unless there is a good reason not to do that.
Same for "libequinox": why not libeclipse-equinox? It's more verbose, but I
don't know if equinox is known outside of Eclipse?
Cheers,
Vincent

2018-07-05 23:46 GMT+02:00 Emmanuel Bourg <ebo...@apache.org>:

> Hi all,
>
> Among the issues we have to handle for the transition to Java 11 there
> is a difficult one with aspectj and eclipse. aspectj fails to build with
> Java 9+ (#873213) and needs an upgrade. Unfortunately this also implies
> an update of eclipse (aspect/1.8.9 is the last version compiling with
> eclipse/3.8.1) and this is unlikely to happen in the near future. The
> dependency of aspectj on eclipse is also blocking the removal of eclipse
> (we can't do without aspectj, it's required by libspring-java).
>
> So following Markus idea of extracting libequinox-osgi-java from eclipse
> I investigated if it would be possible to do the same with the parts of
> eclipse used by aspectj. I started with the org.eclipse.equinox.common
> bundle. I tried building with tycho but I stumbled on several issues
> (#902982 to begin with). So I resorted to building with a naive Ant
> script and it worked. I pushed the experiment to the other bundles used
> by aspectj and I now have the following new packages (and associated
> OSGi bundles):
>
>   src:equinox-bundles
>   (https://github.com/eclipse/rt.equinox.bundles)
>     libequinox-app-java              (org.eclipse.equinox.app)
>     libequinox-common-java           (org.eclipse.equinox.common)
>     libequinox-preferences-java      (org.eclipse.equinox.preferences)
>     libequinox-registry-java         (org.eclipse.equinox.registry)
>
>   src:eclipse-platform-runtime
>   (https://github.com/eclipse/eclipse.platform.runtime)
>     libeclipse-core-contenttype-java (org.eclipse.core.contenttype)
>     libeclipse-core-expressions-java (org.eclipse.core.expressions)
>     libeclipse-core-jobs-java        (org.eclipse.core.jobs)
>     libeclipse-core-runtime-java     (org.eclipse.core.runtime)
>
>   src:eclipse-platform-resources
>   (https://github.com/eclipse/eclipse.platform.resources)
>     libeclipse-core-filesystem-java  (org.eclipse.core.filesystem)
>     libeclipse-core-resources-java   (org.eclipse.core.resources)
>
>   src:eclipse-platform-text
>   (https://github.com/eclipse/eclipse.platform.text)
>     libeclipse-text-java             (org.eclipse.text)
>
>   src:eclipse-platform-ui
>   (https://github.com/eclipse/eclipse.platform.ui)
>     libeclipse-core-commands-java    (org.eclipse.core.commands)
>
>
> I've opted for one binary package per bundle to keep things granular
> unlike the current eclipse package. The upstream repositories have many
> more bundles, I built only those required by aspectj.
>
> Also, there is a mismatch between the version of the bundles and the
> version of the Eclipse IDE which is used to tag the Git repositories.
> For example in Eclipse 4.7.3 the org.eclipse.text bundle has the version
> 3.6.100. I've overridden dh_gencontrol in debian/rules to set the
> version of the binary packages to the version of the corresponding
> bundle. The Eclipse version is appended to the bundle version to avoid
> reusing the same package version if the version of a bundle isn't
> updated in a new release of Eclipse. So for the libeclipse-text-java
> package the actual version is 3.6.100+eclipse4.7.3-1. The bundle version
> is also used by the Maven artifacts installed in /usr/share/maven-repo.
>
> With all this I'm now able to build aspectj/1.8.10 without depending on
> the eclipse-platform package. I don't intend to push beyond the
> immediate needs of aspectj (and maybe lombok). Anyone is free to pick
> the ball from here and try to package the full Eclipse IDE.
>
> How do you feel about the proposed naming and package organization?
>
> Emmanuel Bourg
>
>

Reply via email to