On Fri, Jan 3, 2020 at 10:29 AM Martin Petzold <mpetz...@gmx.net> wrote:

> IMHO: Manifest-first is best. p2 is hell. maven-bundle-plugin and bnd
> "hate" Eclipse. It was never easy. The worst ever was not to find together!
>
Sounds like you may not have tried bndtools.m2e integration in a long time
or ever. OSGi, bnd, bndtools.m2e + Eclipse are a happy team that I use
every single day on about 15 projects, including in IDE integration testing
and live coding!

Furthermore, the bnd team (disclosure: of which I am part) are very active
[1] in improving the IDE experience and are more than happy to address any
issues you encounter.

Anyway, if you like what you have then more power to you :) but it seems
like you might be alone on an island which can be awesome!... but it can
also be bad.

Sincerely,
- Ray

[1] https://github.com/bndtools/bnd/pulse/monthly *(Activity - 1 month: 49
merged pull requests, 68 commits, 29 closed issues, 3 new issues)*

=> My approach works well, I have a lot under my control and am able to
> migrate to plain Java (with or without modules) if it is required
>
> I still love the OSGi specifications and framework, use a lot of them, and
> learned a lot of them and all people involved!
>
> Am 03.01.20 um 16:22 schrieb Dirk Fauth:
>
> I also think that the chosen approach is not the best. Actually it is a
> mixture of Tycho and plain maven that mostly works but can lead to
> resolution issues like the one discussed.
>
> For plain OSGi and Maven I agree with Ray. But you need to migrate to bnd
> of course and get rid of the manual manifest configuration (which is good
> IMHO).
>
> If you really want to stick with manual manifest management, you should
> use Tycho in its intended way by using repositories or a target definition
> so the dependencies can be resolved automatically via p2. pomDependencies
> consider is intended for adding dependencies that are not available via p2
> update sites.
>
> But of course this is only my personal opinion based on my experience.
>
> Greez,
> Dirk
>
> Raymond Auge <raymond.a...@liferay.com> schrieb am Fr., 3. Jan. 2020,
> 15:49:
>
>> I would recommend, since you are using maven, not really using tycho for
>> much AND in order to future proof your OSGi application you should probably
>> migrate to bnd-*-maven-plugin(s) [1]
>>
>> These are better integrated with maven, maven scopes and give you a full
>> cycle of tools to go from building to running. Also it's the most cutting
>> edge OSGi build support under the hood and will reduce your MANIFEST
>> editing to its most minimal.
>>
>> - Ray
>>
>> [1] https://github.com/bndtools/bnd/blob/master/maven/README.md
>>
>> On Fri, Jan 3, 2020 at 9:35 AM Martin Petzold via osgi-dev <
>> osgi-dev@mail.osgi.org> wrote:
>>
>>> 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> 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
>>
>>
>>
>> --
>> *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
https://mail.osgi.org/mailman/listinfo/osgi-dev

Reply via email to