I'm using:

<configuration>
    <pomDependencies>consider</pomDependencies>
</configuration>

It is working now with the following dependencies in my POM for
build/compile time. At runtime I use org.eclipse.osgi (without the
service and util bundle) and implementations of cm (apache felix), event
(apache felix), and log (within org.eclipse.osgi an my own).

<!-- Eclipse -->

<dependency>
    <groupId>org.eclipse.platform</groupId>
    <artifactId>org.eclipse.osgi</artifactId>
    <version>${dependency.org.eclipse.osgi}</version>
</dependency>

<!-- OSGi -->

<dependency>
    <groupId>org.osgi</groupId>
    <artifactId>org.osgi.service.cm</artifactId>
<version>${dependency.org.osgi.service.cm}</version>
</dependency>
<dependency>
    <groupId>org.osgi</groupId>
    <artifactId>org.osgi.service.event</artifactId>
<version>${dependency.org.osgi.service.event}</version>
</dependency>
<dependency>
    <groupId>org.osgi</groupId>
    <artifactId>org.osgi.service.log</artifactId>
<version>${dependency.org.osgi.service.log}</version>
</dependency>

Am 03.01.20 um 15:29 schrieb Dirk Fauth:
Well afaik Tycho has its own reactor for resolving dependencies.
That's why I am a bit confused about your message. If you build via
Tycho you need to have a working target definition or repositories
configuration. POM dependencies are not considered by default. If you
update to R7 you need to update to a current Eclipse update site and
ensure that all related bundles and/or features are included.

But of course I am not sure if I understand your issue completely. If
you are not building using Tycho but plain Maven probably some
dependencies are not resolvable. But the previous answers already
covered most topics. I just stepped in because of mentioning Tycho and
pom dependencies.

Greez,
Dirk

Martin Petzold <mpetz...@gmx.net <mailto:mpetz...@gmx.net>> schrieb am
Fr., 3. Jan. 2020, 15:16:

    Because I want to manage my package dependencies in the
    MANIFEST.MF and I want to be able to run my application in an PDE
    environment with a separate target platform within Eclipse.
    However, this post is only related to my build and not to my
    development environment.

    Am 03.01.20 um 15:11 schrieb Dirk Fauth:
    And why are you using Tycho when there is no PDE involved?

    Martin Petzold <mpetz...@gmx.net <mailto:mpetz...@gmx.net>>
    schrieb am Fr., 3. Jan. 2020, 15:05:

        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