You don't need to export the package, as this one is exported by the activemq-camel bundle. But you need to import additional packages such as org.apache.camel and all packages that are used by the osgi service that you are trying to get a reference to.
2009/3/16 cmoulliard <[email protected]> > > My issue is that the name of the package is the same between import-package > and export-package and maven felix bnd does not add export package : > > <configuration> > > <manifestLocation>META-INF</manifestLocation> > <instructions> > > <Bundle-SymbolicName>${pom.artifactId}</Bundle-SymbolicName> > > <Import-Package>org.apache.activemq.camel.component,*</Import-Package> > > <Export-Package>org.apache.activemq.camel.component</Export-Package> > > <Include-Resource>src/main/resources</Include-Resource> > > > <Spring-Context>*;publish-context:=false;create-asynchronously:=true</Spring-Context> > > <Private-Package></Private-Package> > </instructions> > </configuration> > > and result of the importation (no Export-Package appears) > > ActiveMq Broker Feature (103) > ----------------------------- > Manifest-Version = 1.0 > Bnd-LastModified = 1237215735043 > Tool = Bnd-0.0.255 > Spring-Context = *;publish-context:=false;create-asynchronously:=true > Bundle-Name = ActiveMq Broker Feature > Built-By = Charlesm > Import-Package = org.apache.activemq.camel.component > Bundle-SymbolicName = reportincident.activemq > Bundle-Version = 1.0.0.SNAPSHOT > Build-Jdk = 1.6.0_12 > Created-By = Apache Maven Bundle Plugin > Bundle-ManifestVersion = 2 > > > > gnodet wrote: > > > > The reason is that for a given OSGi bundle to be able to see a service in > > the OSGi registry, it has to have on its classpath all the classes or > > interfaces exported by the target OSGi service. I suspect that in your > > case, your client bundle does not import all the needed packages. You > can > > see the exact list of classes exported using the "osgi/ls" command and > the > > list of packages imported using "packages/import" command. > > Make sure your bundle imports all the packages from the export list. > > This is a drawback of using auto-export imho. > > > > 2009/3/16 cmoulliard <[email protected]> > > > >> > >> Hi, > >> > >> I have created an osgi bundle where the bean to expose as a service is > >> defined in a spring file : > >> > >> <bean id="activemq" > >> class="org.apache.activemq.camel.component.ActiveMQComponent"> > >> <property name="brokerURL" > >> value="vm://localhost:61616?create=false" /> > >> </bean> > >> > >> <osgi:service id="activemqservice" ref="activemq" > >> auto-export="all-classes"/> > >> > >> The service is well published. See the log here after. > >> > >> 13:18:42,058 | DEBUG | xtenderThread-16 | > OsgiBundleXmlApplicationContext > >> | > >> ractOsgiBundleApplicationContext 247 | Registering BundleContext as a > >> bean > >> named bundleContext > >> 13:18:42,058 | DEBUG | xtenderThread-16 | > >> WaiterApplicationContextExecutor > >> | > >> WaiterApplicationContextExecutor 218 | Pre-refresh completed; > >> determining > >> dependencies... > >> 13:18:42,058 | DEBUG | xtenderThread-16 | DependencyServiceManager > >> | > >> startup.DependencyServiceManager 253 | Discovered local dependency > >> factories: [] > >> 13:18:42,074 | DEBUG | xtenderThread-16 | DefaultListableBeanFactory > >> | > >> ort.DefaultSingletonBeanRegistry 214 | Creating shared instance of > >> singleton bean 'activemqservice' > >> 13:18:42,074 | DEBUG | xtenderThread-16 | DefaultListableBeanFactory > >> | > >> ractAutowireCapableBeanFactory$1 383 | Creating instance of bean > >> 'activemqservice' > >> 13:18:42,074 | DEBUG | xtenderThread-16 | DefaultListableBeanFactory > >> | > >> stractAutowireCapableBeanFactory 459 | Eagerly caching bean > >> 'activemqservice' to allow for resolving potential circular references > >> 13:18:42,105 | DEBUG | xtenderThread-16 | CachedIntrospectionResults > >> | > >> beans.CachedIntrospectionResults 151 | Not strongly caching class > >> > >> > [org.springframework.osgi.service.importer.support.OsgiServiceProxyFactoryBean] > >> because it is not cache-safe > >> 13:18:42,105 | DEBUG | xtenderThread-16 | DefaultListableBeanFactory > >> | > >> stractAutowireCapableBeanFactory 1367 | Invoking afterPropertiesSet() on > >> bean with name 'activemqservice' > >> 13:18:42,105 | DEBUG | xtenderThread-16 | DefaultListableBeanFactory > >> | > >> ractAutowireCapableBeanFactory$1 411 | Finished creating instance of > >> bean > >> 'activemqservice' > >> 13:18:42,105 | INFO | xtenderThread-16 | DependencyServiceManager > >> | > >> startup.DependencyServiceManager 278 | Adding OSGi service dependency > >> for > >> importer [&activemqservice] matching OSGi filter > >> [(objectClass=org.apache.activemq.camel.component.ActiveMQComponent)] > >> > >> Unfortunately, the osgi bundle who will consume the osgi:service > >> > >> <osgi:reference id="activemqservice" > >> interface="org.apache.activemq.camel.component.ActiveMQComponent" /> > >> > >> generates an error > >> > >> 13:18:42,105 | DEBUG | xtenderThread-16 | DependencyServiceManager > >> | > >> startup.DependencyServiceManager 226 | 1 OSGi service dependencies, 1 > >> unsatisfied (for beans [&activemqservice]) in > >> OsgiBundleXmlApplicationContext(bundle=reportincident.interfaces, > >> config=osgibundle:/META-INF/spring/*.xml) > >> 13:18:42,105 | INFO | xtenderThread-16 | DependencyServiceManager > >> | > >> startup.DependencyServiceManager 232 | > >> OsgiBundleXmlApplicationContext(bundle=reportincident.interfaces, > >> config=osgibundle:/META-INF/spring/*.xml) is waiting for unsatisfied > >> dependencies [[&activemqservice]] > >> 13:18:42,105 | DEBUG | xtenderThread-16 | > >> WaiterApplicationContextExecutor > >> | > >> WaiterApplicationContextExecutor 257 | Registering service dependency > >> dependencyDetector for > >> OsgiBundleXmlApplicationContext(bundle=reportincident.interfaces, > >> config=osgibundle:/META-INF/spring/*.xml) > >> 13:18:42,121 | DEBUG | xtenderThread-16 | DependencyServiceManager > >> | > >> startup.DependencyServiceManager 297 | > >> OsgiBundleXmlApplicationContext(bundle=reportincident.interfaces, > >> config=osgibundle:/META-INF/spring/*.xml) has registered service > >> dependency > >> dependencyDetector with filter: > >> (objectClass=org.apache.activemq.camel.component.ActiveMQComponent) > >> > >> What is the cause of this issue ? Do I have to change something in my > >> MANIFEST file ? > >> > >> > >> > >> > >> ----- > >> Charles Moulliard > >> SOA Architect > >> > >> My Blog : http://cmoulliard.blogspot.com/ > >> http://cmoulliard.blogspot.com/ > >> -- > >> View this message in context: > >> > http://www.nabble.com/1-OSGi-service-dependencies%2C-1-unsatisfied-%28for-beans---activemqservice-%29-in-OsgiBundleXmlApplicationContext-tp22537014p22537014.html > >> Sent from the ServiceMix - User mailing list archive at Nabble.com. > >> > >> > > > > > > -- > > Cheers, > > Guillaume Nodet > > ------------------------ > > Blog: http://gnodet.blogspot.com/ > > ------------------------ > > Open Source SOA > > http://fusesource.com > > > > > > > ----- > Charles Moulliard > SOA Architect > > My Blog : http://cmoulliard.blogspot.com/ http://cmoulliard.blogspot.com/ > -- > View this message in context: > http://www.nabble.com/1-OSGi-service-dependencies%2C-1-unsatisfied-%28for-beans---activemqservice-%29-in-OsgiBundleXmlApplicationContext-tp22537014p22540154.html > Sent from the ServiceMix - User mailing list archive at Nabble.com. > > -- Cheers, Guillaume Nodet ------------------------ Blog: http://gnodet.blogspot.com/ ------------------------ Open Source SOA http://fusesource.com
