aries-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Timothy Ward <>
Subject Re: Aries Spec Jars
Date Wed, 03 Jan 2018 12:34:36 GMT
I’m still not sure what the eventual resolution of this discussion will be as it may be that
Aries implementation needs simply cannot be met by using the Service Mix spec bundles, however
I do agree that we should be fixing up Service Mix API bundles as far as we can. To that end
I have created a PR for JSONP ( which is
not currently present in Aries, and is needed for JAX-RS support.


On 22 Dec 2017, at 17:42, Daniel Kulp <<>>

On Dec 22, 2017, at 10:30 AM, Raymond Auge <<>>

Do those spec bundles also exist over in SMX or Geronimo?   Is there a
“significant” number of major Apache projects that are currently using
either the ones in Aries or the ones in ServiceMix/Geronimo?   If so, then
yea, we should remove them.   Stop duplicating stuff and, instead, get
issues fixed.

I don't think this is feasible.

The reason being that those projects are using those API jars coming from a
different perspective.

Their perspective is:

- Make the API usable in OSGi when there is no OSGi specification which
specifies it's use.

I disagree..    It’s just “Make the API usable in OSGi”, period.

If there is a spec, great.  If there isn’t still make it work.  Almost as importantly: make
it work in cases where the spec is available (new runtime) as well as not available (old runtimes).

From that perspective they are free to make implementation choices which is
totally fine for that case. However those choices are proprietary.

…  and, for the most part, hidden.

That’s fine as a proposal, but there are a *lot* of fixes needed in
ServiceMix before the bundles are usable. None of the bundles offer (as far
as I can tell) offer the correct contract capability (or even any contract
at all), and they all seem to include a custom locator which isn’t part of
the original specification jar. This locator will have unknown effects on
specification implementations and may need to be removed. Are the
ServiceMix team really going to be ok with changes that radical,
particularly when they affect existing released artifacts?

Removing the Locator stuff is likely not going to fly, adding additional
bundle headers is likely OK.

Here you've now made it impossible by first saying that all changes should
be made in servicemix BUT that you won't accept the changes in servicemix!

I didn’t say that at all…. I said changes can be be made in ServiceMix, but keeping the
locator (or some similar mechanism) to make sure the API’s continue to work correctly is
important.     If updating the FactoryFinders to use the locator if the “standard osgi mechanism”
fails is necessary, that SHOULD be fine.

You're not leaving us with many options.

The locator stuff is a proprietary detail that is not part of the OSGi
specification for how these APIs should be used.

And is a completely hidden, private package and thus nearly irrelevant.

CXF does NOT implement the upcoming OSGi JAX-RS specification which is what
we're talking about here. And therefore CXF can't be placed in the same
category with the Aries JAX-RS and Aries in general which is about
implementing specifications.

Don't get me wrong, CXF and ServiceMix are fine projects. However they are
not implementing specifications. They are purely industry implementations
and those implementations have made design choices which are more or less
incompatible with the upcoming OSGi specification.

CXF implements a ton of specs… a future OSGi JAX-RS spec may or may not become one of them.
   In particular, I can definitely see CXF registering the various builders and such as OSGi

I sincerely hope you re-consider your position and offer some real help
otherwise we're stuck not being able to deliver RIs for OSGi R7.

I *AM* offering help…. I’m more than willing to do some work and apply patches or whatever
in the ServiceMix specs to get it updated and usable.

For now, as a test, I added the Provide-Capability stuff into the smx bundle, updated the
maven-bundle-plugin to understand it,  and updated all of the aries-jax-rs-whiteboard poms/bndrun
files to use it instead of the local thing and all the tests pass.   Thus, I’m back to “why
add another one” and "why can it not work for the RI?"


- Ray




On 21 Dec 2017, at 18:16, Daniel Kulp <<><mailto:dkulp>> wrote:

On Dec 21, 2017, at 1:00 PM, Raymond Auge <<><>> wrote:

On Thu, Dec 21, 2017 at 12:43 PM, Daniel Kulp <<><mailto:<>>> wrote:

Can I ask why the spec/api bundles that are provided by ServiceMix are
usable?   Could the ServiceMix api bundles be updated to make them

Most of the ServiceMix jars violate the terms of the original license of
the specification artifacts they touch. They also violate the Apache
guidelines for repackaging such artifacts.

I personally didn't have the stomach to repair the ones we needed in that
project so opted to fix them in Aries.

If we could get them fixed then that might be a solution.

Submit a patch!   I can get them applied there easily enough.    I’m
completely against having yet another bundle here when the other bundles
are the ones that will be be used by all the other projects.


- Ray

I really would prefer not getting into a situation where we have a bunch
of project that are commonly used together starting to pull in multiple
versions or implementations of the same bundles.   For example:  CXF uses
and would pull in the org.apache.servicemix.specs.jaxrs-api-2.1 bundle
which would obviously result in multiple bundles exporting the same


On Dec 21, 2017, at 9:28 AM, Raymond Auge <<><>>

Hi Tim,

I was thinking of proposing this very thing over the last few weeks.

I had already deliberately pushed the CDI related spec jars and also the
spec jar for JAX-RS into an aries sub-group in maven in order to better
accommodate and reflect this very thing.

So, I would be a big +1 for having these in a specific sub-project.

- Ray

On Thu, Dec 21, 2017 at 6:25 AM, Timothy Ward <<><>>

Hi all,

I’ve noticed that an increasing number of Aries projects are producing
wrapped spec jars (JPA, JAX-RS, CDI...). In general I think that this
is a
good thing, as few other Open Source projects package the jars with OSGi
contract metadata.

I do wonder, however, if these spec jars should be provided by a
Aries project, rather than scattered across multiple other projects. I
two main reasons for this.

1. It makes the code for packaging the spec jars harder to find in

2. It creates some non-obvious links between projects. It’s clear why
tx-control depends on JPA, but not why JAX-RS depends on CDI!

The spec jars are mostly being put into a separate Maven group already.
would simply see this as a formalisation of that earlier decision.



Sent from my iPhone

*Raymond Augé* <>
Senior Software Architect *Liferay, Inc.* <>
Board Member & EEG Co-Chair, OSGi Alliance <>

Daniel Kulp<><> -
Talend Community Coder -

*Raymond Augé* <>
Senior Software Architect *Liferay, Inc.* <>
Board Member & EEG Co-Chair, OSGi Alliance <>

Daniel Kulp<><> -
Talend Community Coder -<http:

Daniel Kulp<> -
Talend Community Coder -

*Raymond Augé* <>
Senior Software Architect *Liferay, Inc.* <>
Board Member & EEG Co-Chair, OSGi Alliance <> (@OSGiAlliance)

Daniel Kulp<> -
Talend Community Coder -<>

  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message