Hi Ray,
I love this reply, we should frame it somewhere! :-)
Amen to that and a happy new year to you and Pam.
Jürgen.
Am 03/01/2020 um 17:02 schrieb Raymond Auge via osgi-dev:
On Fri, Jan 3, 2020 at 10:29 AM Martin Petzold <mpetz...@gmx.net
<mailto: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
<mailto: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 <mailto: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
<http://org.osgi.service.cm></artifactId>
<version>${dependency.org.osgi.service.cm
<http://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 <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)
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev
--
Jürgen Albert
Geschäftsführer
Data In Motion Consulting GmbH
Kahlaische Str. 4
07745 Jena
Mobil: 0157-72521634
E-Mail: j.alb...@datainmotion.de
Web: www.datainmotion.de
XING: https://www.xing.com/profile/Juergen_Albert5
Rechtliches
Jena HBR 513025
_______________________________________________
OSGi Developer Mail List
osgi-dev@mail.osgi.org
https://mail.osgi.org/mailman/listinfo/osgi-dev