-
Notifications
You must be signed in to change notification settings - Fork 11
Conversation
A simple and naive attempt, but fails
@@ -0,0 +1,2 @@ | |||
Bundle-Name: Sisu-Plexus Extender (Incubation) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@mcculls I don't understand the need of this empty bundle
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
It's not completely empty - it contains a META-INF/services file which will get picked up by sisu-inject's extender (the OSGi metadata here should have a fragment entry as in the previous manifest.)
For Maven's purposes you can ignore these extender bundles - they exist only to activate certain behaviour in the main bundles. The reason they are separate is to make deployment easier; so users can choose whether to just have the basic behaviour provided by the main bundles, or a more advanced extension mechanism driven by BundlePlan
s.
The newly generated MANIFEST.MF looks like this:
The old manual one was this
@mcculls Please cross-check. |
@@ -40,6 +41,8 @@ | |||
<groupId>javax.annotation</groupId> | |||
<artifactId>javax.annotation-api</artifactId> | |||
<version>1.2</version> | |||
<scope>provided</scope> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependency is not necessary at compile time at all. Isn't the transitive dependency from sisu.inject enough?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If you look at sisu.inject, it does NOT pulls in guice (any version) transitively, and this is on purpose: let user choose which one (out of supported, guice 3. 4 or 5) to use. As this PR eclipse-sisu/sisu-project#76 is merged (and Typed was already present), IMHO this should be also "opt in" dependency, as it is up to user which one to use from now on: user own annotation or this.
@@ -48,6 +51,8 @@ | |||
<groupId>javax.enterprise</groupId> | |||
<artifactId>cdi-api</artifactId> | |||
<version>1.2</version> | |||
<scope>provided</scope> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This dependency is not necessary at compile time at all. Isn't the transitive dependency from sisu.inject enough?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as for javax.annotation-api
@@ -32,6 +32,7 @@ | |||
<artifactId>guice</artifactId> | |||
<version>4.0</version> | |||
<scope>provided</scope> | |||
<optional>true</optional> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
How can this be optional? Guice is essential part of most of the classes, e.g. PlexusRequirements
, PlexusConfigurations
and others....
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Same as in sisu.inject... long time ago, goal was to make sisu.plexus drop in replacement (so throw out p-c-d and bring in plexus-shim, this project), but IMHO sisu.plexus should become and behave same as sisu.inject: let the user provide needed (and chosen) stuff instead.
Am actually +0 to undo this, I feel those annotations more important to leave out.
@@ -64,6 +69,20 @@ | |||
<artifactId>org.eclipse.sisu.inject</artifactId> | |||
<version>${project.version}</version> | |||
</dependency> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
a mandatory dependency to javax.inject is necessary as well, as e.g. javax.inject.Provider
is used in PlexusRequirements
reviewing this today...
|
I found a few missing pieces during review so I went and re-applied the steps I took to de-tycho sisu-inject, but modified as appropriate for sisu-plexus. I've merged those to master - the only remaining piece is to align the latest plugin versions and do one last check of the final jars. (I also haven't changed any of the dependency scopes yet) |
Closing this PR as not needed anymore. |
This PR just removes tycho, in similar way as happened in sisu.inkect.
This PR DOES NOT ADDS OSGI metadata, I'd leave that to one of you two.
One important change: given sisu now has it's own
Typed,
PostConstruct
andPreDestroy
annotations, the current two annotation deps (javax.annotation-api and cdi-api) are marked as provided/optional. There is no more need to drag these along, and if someone needs them, can just add them as dependencies (same logic applies as with guice for example).Partially fixes #28