Hello,

Have to agree with Neil, hower I want to add, that the bundling of Quartz here 
is the problem, it could make some dependencies optional and it could even add 
some of the dependencies inside the bundle. This is what I did with Quartz, I 
embedded Quartz and some of its dependencies inside a bundle to greatly remove 
its external dependencies. You can even overwrite/remove some imports for 
unused artifacts. Quartz needs this special treatment since its a big ugly blob 
of goo. 

Greetings
Bernd



-- 
http://bernd.eckenfels.net

-----Original Message-----
From: Neil Bartlett <njbartl...@gmail.com>
To: users@felix.apache.org
Cc: jbono...@apache.org, "d...@felix.apache.org" <d...@felix.apache.org>, 
users-h...@felix.apache.org
Sent: So., 11 Okt. 2015 16:46
Subject: Re: Help in using your Quartz OSGi bundle



> On 11 Oct 2015, at 12:20, Pedro Domingues <pedro.doming...@ist.utl.pt> wrote:
> 
> Greetings,
> 
> Sorry for bothering you, but I would like to ask for your help with your 
> Quartz bundle.
> 
> I am trying to install your Quartz OSGi bundle into my project:
> 
> 
> 
> However when I insert the bundle in my Apache Felix I keep getting the 
> unresolved dependencies error message like you can see here:
> 
> >java -jar bin/felix.jar
> ERROR: Bundle hydra.launcher [1] Error starting 
> file:/C:/code/hydra/felix/bundle/hydra.launcher-1.0.0-SNAPSHOT.jar 
> (org.osgi.fram
> ework.BundleException: Unable to resolve org.apache.servicemix.bundles.quartz 
> [8](R 8.0): missing requirement [org.apache.servicemix.bundles.quartz [8
> ](R 8.0)] osgi.wiring.package; (osgi.wiring.package=org.jboss.logging) 
> Unresolved requirements: [[org.apache.servicemix.bundles.quartz [8](R 8.0)] 
> osg
> i.wiring.package; (osgi.wiring.package=org.jboss.logging)])
> org.osgi.framework.BundleException: Unable to resolve 
> org.apache.servicemix.bundles.quartz [8](R 8.0): missing requirement 
> [org.apache.servicemix.bund
> les.quartz [8](R 8.0)] osgi.wiring.package; 
> (osgi.wiring.package=org.jboss.logging) Unresolved requirements: 
> [[org.apache.servicemix.bundles.quartz [8
> ](R 8.0)] osgi.wiring.package; (osgi.wiring.package=org.jboss.logging)]
>         at 
> org.apache.felix.framework.Felix.resolveBundleRevision(Felix.java:4090)
>         at org.apache.felix.framework.Felix.startBundle(Felix.java:2111)
>         at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:977)
>         at org.apache.felix.framework.BundleImpl.start(BundleImpl.java:964)
>         at hydra.launcher.Launcher.installStart(Launcher.java:78)
> 
> If I try to discard this dependency manually in your bundle's manifest I keep 
> getting other dependencies such as oracle.sql and so on... It is a true 
> dependency hell. 
> 
> However I do not need to use SQL nor JBOSS, I just want to use Quartz. Is 
> there any way I can solve this? Do I really need to include the thousand 
> transitive dependencies manually, which I will probably never use but since 
> these manifests are automatically generated they include them anyways?
> 
> This is the one thing that makes OSGi hard to use...

Thats not exactly fair. OSGi didn't create those dependencies -- they exist in 
the code.

Unfortunately, if a bundle has a large tree of dependencies then you have only 
two choices. Either use it and suck up the dependencies. Or just don't use it.

OSGi is not unique here. In all software development, you have to decide 
whether to import a module and pay the price of its dependencies, find a better 
module, or write your own.

Neil

> 
> Thanks!

Reply via email to