On 11/03/15 11:05, Stian Soiland-Reyes wrote:
Sorry, I was confused  by apache-jena-osgi vs jena-osgi - the original
text was correct in the sense that it was working. :-)


I don't think it is customary to depend on OSGi bundles through
<type>pom</type> - so perhaps better suggest:

But is it a real problem?

(How are multiple dependent bundles delivered?)

<dependency>
   <groupId>org.apache.jena</groupId>
   <artifactId>jena-osgi</artifactId>
   <version>2.13.0</version>
</dependency>

apache-jena-* is the style we have as preferred points of delivery of major binary artifacts. They are likely going to be small and just point to the necessary current internal structures.

jena-* are more internal. It allows reorg of the internal structure without messing users about unnecessarily.

(There are exceptions that pre-dates that intent)

apache-jena-osgi is the point for an OSGi bundle aligned to apache-jena-libs - it can then point to anywhere else. I think it is good to have a simple "use this, your common cases then just work" point.

It is a stable external name that indirects to changing internal structure. If that structure becomes multiple bundles fine - the external point of indirection stabilises the user experience.

Or where you thinking that apache-jena-osgi pom would allow us later
to have multiple bundles?
It might in the future be that we'll have multiple OSGi bundles if I
manage to make jena-arq etc. OSGi bundles themselves, in which case
the apache-jena-libs pom dependency would work for this as well.

Technical point: I'm not sure of the value in doing that unless ARQ can evolve independently to other parts of jena. Adding such cross-module contracts is more work and reduces our flexibility as we do Jena3.

I would still prefer to avoid the pom indirection for jena-osgi, as
OSGi users don't always use Maven and would get a bit confused.

What model do you have for OSGi users getting binaries if not using <dependency>?

This can be written sometime:

  http://jena.staging.apache.org/download/osgi.html

The OSGi bundle is new in this release and we can expect it to be refined over time by user feedback. It's quite possible the main feedback will be something that we haven't discussed at all.

        Andy


On 11 March 2015 at 10:55, Andy Seaborne <[email protected]> wrote:
On 11/03/15 10:16, Stian Soiland-Reyes wrote:

Hang on, tiny typo here:

The OSGi artifact is:

    <dependency>
      <groupId>org.apache.jena</groupId>
      <artifactId>apache-jena-osgi</artifactId>
      <type>pom</type>
      <version>2.13.0</version>
    </dependency>


Should be
    <type>bundle</type>


If I do that I get:

---------------------
[ERROR] Failed to execute goal on project TEST: Could not resolve
dependencies for project org.apache.jena:TEST:jar:0.0.0-SNAPSHOT: Could not
find artifact org.apache.jena:apache-jena-osgi:bundle:2.13.0 in
apache.jena.release
(https://repository.apache.org/content/repositories/orgapachejena-1008) ->
[Help 1]
---------------------

Isn't jena-osgi the bundle?  It is the jar.

apache-jena-osgi is packaging POM and is an indirection.  But I don't
understand OSGi nor this artifacts structure as it has modules and not
dependencies.  I've only done the <type>pom</type> thing before.

I am not so sure about the -libs one as pom either, will have to test.


That worked in previous releases and has not changed.

The core functionality is that it has:

<dependency>
   <groupId>org.apache.jena</groupId>
   <artifactId>jena-tdb</artifactId>
   <version>1.1.2</version>
</dependency>


and the signed master source for all  Apache Jena releases is available

at: http://archive.apache.org/dist/jena/

... For older releases (or something to that affect)


The current ones are there as well.

         Andy







Reply via email to