Only Maven repositories. No PDE. Plain OSGi application with my own
launcher at runtime. At runtime there is no problem. This application is
running for years and I have worked with OSGi for years now. I just have
this trouble migrating to OSGi 7.0.0 and at compile / build time with
Maven+Tycho.

Am 03.01.20 um 15:02 schrieb Dirk Fauth:
And do you get the error at build time or when running your result?

With Tycho you typically use PDE mechanisms to resolve dependencies,
not maven dependencies.

And what is your result? A plain OSGi application or a RCP application?

Greez,
Dirk

Dirk Fauth <dirk.fa...@gmail.com <mailto:dirk.fa...@gmail.com>>
schrieb am Fr., 3. Jan. 2020, 14:37:

    Hi,

    If you are using Tycho, which repository are you using for
    dependency resolution? Or do you build using a target definition?
    If so, which eclipse software site have you configured?

    Greez,
    Dirk

    Martin Petzold via osgi-dev <osgi-dev@mail.osgi.org
    <mailto:osgi-dev@mail.osgi.org>> schrieb am Fr., 3. Jan. 2020, 14:20:

        Dear Neil,

        thanks, but now we start again at the beginning at my first
        message (endless loop): I cannot set a dependency to
        "org.osgi:osgi.core" in Maven (with Tycho) because it requires
        'osgi.unresolvable;
        (&(!(must.not.resolve=*))(must.not.resolve=*))'.

        Kind regards,

        Martin

        Am 03.01.20 um 14:12 schrieb Neil Bartlett:


        On Fri, 3 Jan 2020 at 13:08, Martin Petzold via osgi-dev
        <osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>> wrote:

            Okay, thanks. This is clear now.

            However, Ray told me to set the dependency for
            "org.eclipse.osgi" to "runtime" scope. But how can my
            implementation then depend on "org.osgi.framework"
            package during compile time? Either there is a separate
            API bundle from OSGi Alliance containing
            "org.osgi.framework" (which one is it?)


        Yes, this is the org.osgi:osgi.core dependency. That contains
        the pure api and no implementation, whereas org.eclipse.osgi
        is an implementation.

        Or you could just use org.eclipse.osgi at both compile time
        and runtime, but then you should be careful to avoid using
        equinox internal packages.

            or I should set the scope to compile instead of runtime?

            I am using the BundleContext and need access to this package.

            Thanks and kind regards,

            Martin

            Am 03.01.20 um 10:51 schrieb Mark Hoffmann via osgi-dev:

            Hi Martin,

            see comments inline.

            Regards,

            Mark

            Am 02.01.20 um 19:19 schrieb Martin Petzold via osgi-dev:

            Thanks, Raymond! Does this also relate to
            "org.osgi:osgi.cmpn"? Should I remove this dependency
            too? Should I add "org.eclipse.osgi.services" or the
            individual "org.osgi.service.*" to my (parent) POM? Are
            the individual "org.osgi.service.*" also required at
            runtime (on classpath or installed to osgi?). Will
            "org.eclipse.osgi" start without
            "org.eclipse.osgi.services" on the classpath or
            installation as bundle?

            You have to distinguish between the packages you want to
            resolve and the artifacts/bundles that contain the the
            packages/implementations.

            In your case org.eclipse.osgi.services is the bundle
            that exports the packages org.osgi.service.* packages.

            Because Maven just resolves artifacts, you need to
            provide the bundle org.eclipse.osgi.services as dependency.

            Yes, org.eclipse.osgi will start without
            org.eclipse.osgi.services

            I have now added "org.eclipse.osgi.services". However,
            it now cannot requires "org.osgi.util.promise". What
            should I add to my POM in order to resolve the core
            Eclipse OSGi implementation (only OSGi core
            implementation)?

            You should find the promises and functions in the bundle
            org.eclipse.osgi.util

            btw I have removed the runtime scope for
            "org.eclipse.osgi".

            Am 02.01.20 um 19:00 schrieb Raymond Auge:
            A bit of rational about why companion jars are
            unresolvable:

            The OSGi specs are to a very high degree independent
            from each other. There's no reason for you to be
            forced to use all R5 specs, or all R6 or whatever.
            Those are simply marketing versions.

            What you are really using are the individual specs at
            a given version.

            For example using DS 1.4, Event 1.0, and logging 1.2
            is perfectly fine combination given you can find
            providers of each that work together well. The APIs
            themselves won't care.

            However some providers actually package OSGi spec APIs
            which they provide implementations for, which means if
            you include the aggregate companion jars also at
            runtime you may have two API versions to contend with.

            You may inadvertently expose yourself to a wrong API
            version, hence why they will no longer resolve.

            - Ray

            On Thu, Jan 2, 2020 at 12:36 PM Raymond Auge
            <raymond.a...@liferay.com
            <mailto:raymond.a...@liferay.com>> wrote:

                Yes and yes.

                OSGi started adding the unresolveable requirement
                at release 6 IIRC. So if you are using a prior
                releases of the companion jars (including cmpn,
                enterprise) they won't give you this failure, so
                you should upgrade.

                *Replacements:* Replace the compendium APIs with
                their respective individual api jars available on
                maven central, like this one [1].

                [1]
                
https://search.maven.org/artifact/org.osgi/org.osgi.service.component.annotations/1.4.0/jar

                - Ray


                On Thu, Jan 2, 2020 at 12:31 PM Martin Petzold
                <mpetz...@gmx.net <mailto:mpetz...@gmx.net>> wrote:

                    Thanks, Raymond! Does this also relate to
                    "org.osgi:osgi.cmpn"? Should I remove this
                    dependency too?

                    Am 02.01.20 um 18:23 schrieb Raymond Auge:


                    On Thu, Jan 2, 2020 at 12:17 PM Martin
                    Petzold via osgi-dev <osgi-dev@mail.osgi.org
                    <mailto:osgi-dev@mail.osgi.org>> wrote:

                        Dear OSGi gurus,

                        I have a dependency on
                        "org.osgi:osgi.core" (7.0.0) in my POM.
                        The reason is that I need access to the
                        "org.osgi.framework" package. I am using
                        Maven (3.6) and Tycho (1.5.1) for
                        building. The build platform runs Debian
                        10 and Java 11.

                        *I get the following error:*

                        Missing requirement: osgi.core
                        7.0.0.201802012106 requires
                        'osgi.unresolvable;
                        (&(!(must.not.resolve=*))(must.not.resolve=*))'
                        but it could not be found


                    The "companion jars" are not meant for
                    runtime and since resolving is a runtime
                    operation (even when performed during build,
                    i.e. deployment purposes) should not be included.

                        *However, if I remove the dependency I
                        get the following error:*

                        Missing requirement: my.bundle
                        0.0.0.qualifier requires 'java.package;
                        org.osgi.framework 1.7.0' but it could
                        not be found


                    This means you have no runtime framework
                    available! Add a runtime dependency on the
                    equinox framework:

                    <dependency>
                    <groupId>org.eclipse.platform</groupId>
                    <artifactId>org.eclipse.osgi</artifactId>
                    <version>3.x.0</version>
                    <scope>runtime</scope>
                    </dependency>
                    // of course use tycho mechanism for above.

                        *What is going wrong? How can I resolve
                        this problem?*

                        Stack Overflow:
                        
https://stackoverflow.com/questions/59563368/maven-tycho-cannot-resolve-osgi-core-bundle

                    I'll answer there in a moment.

                    - Ray

                        Thanks and kind regards,

                        Martin

                        _______________________________________________
                        OSGi Developer Mail List
                        osgi-dev@mail.osgi.org
                        <mailto:osgi-dev@mail.osgi.org>
                        https://mail.osgi.org/mailman/listinfo/osgi-dev



                    --
                    *Raymond Augé*
                    <http://www.liferay.com/web/raymond.auge/profile> 
(@rotty3000)

                    Senior Software Architect *Liferay, Inc.*
                    <http://www.liferay.com> (@Liferay)



                --
                *Raymond Augé*
                <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000)

                Senior Software Architect *Liferay, Inc.*
                <http://www.liferay.com> (@Liferay)



            --
            *Raymond Augé*
            <http://www.liferay.com/web/raymond.auge/profile> (@rotty3000)

            Senior Software Architect *Liferay, Inc.*
            <http://www.liferay.com> (@Liferay)

            _______________________________________________
            OSGi Developer Mail List
            osgi-dev@mail.osgi.org  <mailto:osgi-dev@mail.osgi.org>
            https://mail.osgi.org/mailman/listinfo/osgi-dev
            --
            Mark Hoffmann
            M.A. Dipl.-Betriebswirt (FH)
            CEO/CTO

            Phone:   +49 3641 384 910 0
            Mobile:  +49 175 701 2201
            E-Mail:m.hoffm...@data-in-motion.biz  
<mailto:m.hoffm...@data-in-motion.biz>
            Web:www.datainmotion.de  <http://www.datainmotion.de>

            Data In Motion Consulting GmbH
            Kahlaische Strasse 4 07745 Jena Germany  
<https://www.google.com/maps/search/Kahlaische+Strasse+4%0D%0A07745+Jena%0D%0AGermany?entry=gmail&source=g>

            Geschäftsführer/CEO
            Mark Hoffmann
            Jürgen Albert

            Jena HRB 513025
            Steuernummer 162/107/05779
            USt-Id DE310002614

            _______________________________________________
            OSGi Developer Mail List
            osgi-dev@mail.osgi.org  <mailto:osgi-dev@mail.osgi.org>
            https://mail.osgi.org/mailman/listinfo/osgi-dev
            _______________________________________________
            OSGi Developer Mail List
            osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
            https://mail.osgi.org/mailman/listinfo/osgi-dev

        _______________________________________________
        OSGi Developer Mail List
        osgi-dev@mail.osgi.org <mailto:osgi-dev@mail.osgi.org>
        https://mail.osgi.org/mailman/listinfo/osgi-dev

_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to