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> 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> 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> 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> 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> 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>
>>>>> 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>
>>>>>> 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> 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
>>>>>>>> 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 
>>>>> listosgi-...@mail.osgi.orghttps://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
>>>>> Web: www.datainmotion.de
>>>>>
>>>>> Data In Motion Consulting GmbHKahlaische 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 
>>>>> listosgi-...@mail.osgi.orghttps://mail.osgi.org/mailman/listinfo/osgi-dev
>>>>>
>>>>> _______________________________________________
>>>>> OSGi Developer Mail List
>>>>> 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
>>>
>>>
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to