karaf-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Achim Nierbeck <bcanh...@googlemail.com>
Subject Re: Karaf: How to get Equinox DS working correctly
Date Mon, 31 Aug 2015 19:58:31 GMT
Hi,

well, the eventadmin is kind of special. Make sure you install the
eventadmin feature,
that one is felix and does provide the needed compendium classes.
This might result in a restart of the shell bundle, but that should be
alright.

regards, Achim


2015-08-31 16:24 GMT+02:00 Markus Rathgeb <maggu2810@gmail.com>:

> This does not solve the problem at all.
>
> Also not installing Equinox DS or Event but just the split compendium
> event package and e.g. the http feature could result in the
> feature:list error.
> "Error executing command: Service configuration is null. :
> mvn:org.apache.karaf.features/framework/4.0.1/xml/features"
>
>
> What I have done:
>
> I created a bundle that contains only the org/osgi/service/event
> package of mvn:org.osgi/org.osgi.compendium/5.0.0.
>
> jar tvf
> /home/rathgeb/tmp/wrap-bundle/event/target/org.osgi.compendium.split.service.event-5.0.0.jar
> ==
>    630 Mon Aug 31 16:08:12 CEST 2015 META-INF/MANIFEST.MF
>      0 Mon Aug 31 16:08:12 CEST 2015 META-INF/
>      0 Mon Aug 31 16:08:12 CEST 2015 META-INF/maven/
>      0 Mon Aug 31 16:08:12 CEST 2015 META-INF/maven/tmp.need.a.home/
>      0 Mon Aug 31 16:08:12 CEST 2015
> META-INF/maven/tmp.need.a.home/org.osgi.compendium.split.service.event/
>    164 Mon Aug 31 16:08:12 CEST 2015
>
> META-INF/maven/tmp.need.a.home/org.osgi.compendium.split.service.event/pom.properties
>   2092 Mon Aug 31 16:07:58 CEST 2015
>
> META-INF/maven/tmp.need.a.home/org.osgi.compendium.split.service.event/pom.xml
>      0 Mon Aug 31 16:08:12 CEST 2015 org/
>      0 Mon Aug 31 16:08:12 CEST 2015 org/osgi/
>      0 Mon Aug 31 16:08:12 CEST 2015 org/osgi/service/
>      0 Mon Aug 31 16:08:12 CEST 2015 org/osgi/service/event/
>   2746 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/Event$FilterProperties.class
>   3721 Thu May 09 16:17:32 CEST 2013 org/osgi/service/event/Event.class
>    200 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/EventAdmin.class
>   1211 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/EventConstants.class
>    186 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/EventHandler.class
>   4242 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/EventProperties.class
>   4724 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/TopicPermission.class
>   5086 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/TopicPermissionCollection.class
>    128 Thu May 09 16:17:32 CEST 2013
> org/osgi/service/event/package-info.class
>     12 Sat Feb 09 22:03:44 CET 2013 org/osgi/service/event/packageinfo
> ==
>
> Manifest:
> ==
> Manifest-Version: 1.0
> Bnd-LastModified: 1441030093166
> Build-Jdk: 1.7.0_80
> Built-By: rathgeb
> Bundle-Description: This OSGi bundle simply extract the event package of
>   the whole compendium bundle.
> Bundle-ManifestVersion: 2
> Bundle-Name: Stripped down compendium for event only
> Bundle-SymbolicName: org.osgi.compendium.split.service.event
> Bundle-Version: 5.0.0
> Created-By: Apache Maven Bundle Plugin
> Export-Package: org.osgi.service.event;version="1.3";uses:="org.osgi.fra
>  mework"
> Import-Package: org.osgi.framework
> Require-Capability: osgi.ee;filter:="(&(osgi.ee=JavaSE)(version=1.5))"
> Tool: Bnd-2.3.0.201405100607
> ==
>
>
> Started Karaf 4.0.1 with a clean environment using:
> $ bin/karaf clean
>
>
> Install the Event API:
> karaf@root()> bundle:install
>
> file:/home/rathgeb/tmp/wrap-bundle/event/target/org.osgi.compendium.split.service.event-5.0.0.jar
> Bundle ID: 33
>
>
> Install http feature:
> karaf@root()> feature:install http
>
>
> So, Karaf restarts themselves:
>
>         __ __                  ____
>        / //_/____ __________ _/ __/
>       / ,<  / __ `/ ___/ __ `/ /_
>      / /| |/ /_/ / /  / /_/ / __/
>     /_/ |_|\__,_/_/   \__,_/_/
>
>   Apache Karaf (4.0.1)
>
> Hit '<tab>' for a list of available commands
> and '[cmd] --help' for help on a specific command.
> Hit '<ctrl-d>' or type 'system:shutdown' or 'logout' to shutdown Karaf.
>
> karaf@root()>
>
>
> When I now type feature:list, I will get the error message.
>
>
> karaf@root()> feature:list
> Error executing command: Service configuration is null. :
> mvn:org.apache.karaf.features/framework/4.0.1/xml/features
>
>
> But to get org.eclipse.equinox.event working, I think I need the API...
>
>
> Could you help me again? ;-)
>
> 2015-08-31 15:12 GMT+02:00 Achim Nierbeck <bcanhome@googlemail.com>:
> > If you declare those packages as being exported in the
> maven-bundle-plugin
> > section and you only have the osgi jar as dependency in your maven
> > dependency,
> > that should do the trick already to only contain those packages which you
> > explicitly export.
> >
> > regards, Achim
> >
> >
> > 2015-08-31 14:43 GMT+02:00 Markus Rathgeb <maggu2810@gmail.com>:
> >>
> >> Thank you.
> >> Okay, then I think the easiest way to get Equinox DS working would be
> >> to create a very small bundle, that contains the
> >> org.osgi.service.component package only.
> >> If I have to create such small API bundles for some other packages,
> >> too, I would like to use the maven-bundle-plugin in a similar way to
> >> this one:
> >>
> >>
> https://karaf.apache.org/manual/latest/developers-guide/creating-bundles.html#Staticallybundlingjars
> >> So, using the org.eclipse.osgi.services or org.osgi.compendium bundle
> >> and create a new bundle containing only one package of that one.
> >> Do you think, I could do this with the maven-bundle-plugin?
> >>
> >> 2015-08-31 14:30 GMT+02:00 Achim Nierbeck <bcanhome@googlemail.com>:
> >> > Hi Markus,
> >> >
> >> > if those packages you need aren't included in the ds bundle,
> >> > I think it's ok to do a "micro" re-packaging and either by adding a
> >> > fragment-bundle with the appropriate classes and meta-inf information
> to
> >> > the
> >> > equinox-ds bundle or create a standalone bundle that only contains
> those
> >> > packages in need.
> >> > With that you make sure you only provide the packages needed at the
> >> > time.
> >> >
> >> > If you do this, the feature:list will work again, even without
> >> > restarting
> >> > the container.
> >> >
> >> > regards, Achim
> >> >
> >> >
> >> >
> >> > 2015-08-31 14:20 GMT+02:00 Markus Rathgeb <maggu2810@gmail.com>:
> >> >>
> >> >> Hello,
> >> >> I have to use the Equinox OSGi framework and Equinox DS in a Karaf
> >> >> container.
> >> >>
> >> >> The Equinox OSGi framework is no problem at all.
> >> >> I added "karaf.framework=equinox" to "etc/custom.properties" and
> >> >> started
> >> >> Karaf.
> >> >>
> >> >> To install DS of Equinox I installed first the Equnix util bundle and
> >> >> after that Equinox DS bundle:
> >> >> bundle:install
> >> >>
> >> >>
> http://repository.grepcode.com/java/eclipse.org/4.4.1/plugins/org.eclipse.equinox.util_1.0.500.v20130404-1337.jar
> >> >> bundle:install
> >> >>
> >> >>
> http://repository.grepcode.com/java/eclipse.org/4.4.1/plugins/org.eclipse.equinox.ds_1.4.200.v20131126-2331.jar
> >> >>
> >> >> The Equinox DS bundle could not be started because its
> >> >> "Import-Package" line for
> >> >> org.osgi.service.component;version="[1.1,1.3)"
> >> >> It does not export org.osgi.service.component themselves as it is
> done
> >> >> by org.apache.felix.scr.
> >> >>
> >> >> Perhaps the difference between the two bundles are exact this one:
> >> >>
> >> >>
> >> >>
> http://felix.apache.org/documentation/tutorials-examples-and-presentations/apache-felix-osgi-faq.html#should-a-service-providerconsumer-bundle-be-packaged-with-its-service-api-packages
> >> >>
> >> >> So, but I have to use Equinox DS.
> >> >>
> >> >> It is working, if I install the "org.eclipse.osgi.services" bundle,
> >> >> but this could be incorrect similar to install a org.osgi.compendium
> >> >> bundle.
> >> >>
> >> >> I have already read the reply of JBO in this topic years ago:
> >> >>
> >> >>
> >> >>
> http://karaf.922171.n3.nabble.com/Newbie-question-Useradmin-service-dependency-from-where-td4026903.html#a4026905
> >> >>
> >> >> "You don't have (and must not ;)) put compendium jar in the deploy
> >> >> folder."
> >> >>
> >> >> But which packages can be added to
> "org.osgi.framework.system.packages"
> >> >> at
> >> >> all?
> >> >> The Equinox OSGi bundle does not contain the
> org.osgi.service.component
> >> >> package.
> >> >>
> >> >> Same problem as DS also exists for Equinox Event bundle.
> >> >>
> >> >> Ah, and if I installed "org.eclipse.osgi.services" feature:list will
> >> >> not work until the next restart of Karaf.
> >> >> But as I should not install the bundle, this just as a note.
> >> >>
> >> >> Could you give me some tips?
> >> >>
> >> >> Best regards,
> >> >> Markus
> >> >
> >> >
> >> >
> >> >
> >> > --
> >> >
> >> > Apache Member
> >> > Apache Karaf <http://karaf.apache.org/> Committer & PMC
> >> > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/>
> Committer
> >> > &
> >> > Project Lead
> >> > blog <http://notizblog.nierbeck.de/>
> >> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
> >> >
> >> > Software Architect / Project Manager / Scrum Master
> >> >
> >
> >
> >
> >
> > --
> >
> > Apache Member
> > Apache Karaf <http://karaf.apache.org/> Committer & PMC
> > OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer
> &
> > Project Lead
> > blog <http://notizblog.nierbeck.de/>
> > Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>
> >
> > Software Architect / Project Manager / Scrum Master
> >
>



-- 

Apache Member
Apache Karaf <http://karaf.apache.org/> Committer & PMC
OPS4J Pax Web <http://wiki.ops4j.org/display/paxweb/Pax+Web/> Committer &
Project Lead
blog <http://notizblog.nierbeck.de/>
Co-Author of Apache Karaf Cookbook <http://bit.ly/1ps9rkS>

Software Architect / Project Manager / Scrum Master

Mime
View raw message