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