During the development it's common to require dependencies which are not OSGi ready. They are not bundles, but simple jars.
These dependencies should be wrapped with OSGi bundles exporting their packages, making them visible to the OSGi container and to other bundles as well.
Identify not bundled dependencies
You'll notice that a dependency is not OSGi ready (it's not a bundle) because MANIFEST.MF file in the dependency jar looks similar to the following:
Manifest-Version: 1.0 Archiver-Version: Plexus Archiver Created-By: Apache Maven Built-By: author Build-Jdk: 1.6.0_26
While an bundle MANIFEST.MF would look like the following:
Manifest-Version: 1.0 Bnd-LastModified: 1370421295191 Build-Jdk: 1.6.0_26 Built-By: author Bundle-Description: MyBundle Description Bundle-DocURL: doc-url Bundle-License: LICENSE Bundle-ManifestVersion: 2 Bundle-Name: MyBundle Name Bundle-SymbolicName: org.opennaas.mybundle Bundle-Vendor: Vendor Bundle-Version: 0.20.0.SNAPSHOT Created-By: Apache Maven Bundle Plugin Export-Package: org.opennaas.extensions.pdu.capability.example;uses:="or g.apache.commons.logging,org.opennaas.core.resources.action,org.opennaa s.core.resources.descriptor,org.opennaas.core.resources.capability,org. osgi.framework,org.opennaas.extensions.queuemanager,org.opennaas.core.r esources,javax.ws.rs";version="0.20.0.SNAPSHOT" Export-Service: org.opennaas.core.resources.IResourceRepository;type=pdu ;version="1.0.0",org.opennaas.core.resources.capability.ICapabilityFact ory;capability=pdu_pw_mon;capability.model=apc;capability.version="1.0" ,org.opennaas.core.resources.capability.ICapabilityFactory;capability=p du_pw_mgt;capability.model=apc;capability.version="1.0",org.opennaas.co re.resources.capability.ICapabilityFactory;capability=pdu_pw_sup;capabi lity.model=apc;capability.version="1.0",org.opennaas.core.resources.cap ability.ICapabilityFactory;capability=example2;capability.model=dummy;c apability.version="1.0" Import-Package: javax.sql,javax.ws.rs;version="[1.1,2)",org.apache.commo ns.logging;version="[1.1,2)",org.apache.felix.gogo.commands;version="[0 .10,1)",org.apache.karaf.shell.console;version="[2.2,3)",org.opennaas.c ore.resources;version="[0.20,1)",org.opennaas.core.resources.action;ver sion="[0.20,1)",org.opennaas.core.resources.capability;version="[0.20,1 )",org.opennaas.core.resources.configurationadmin;version="[0.20,1)",or g.opennaas.core.resources.descriptor;version="[0.20,1)",org.opennaas.co re.resources.shell;version="[0.20,1)",org.opennaas.extensions.gim.contr oller;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.controller.c apabilities;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.contro ller.snmp;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.model.co re;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.model.core.enti ties;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.model.core.en tities.pdu;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.model.e nergy;version="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.model.load;v ersion="0.0.1.SNAPSHOT",org.opennaas.extensions.gim.model.log;version=" 0.0.1.SNAPSHOT",org.opennaas.extensions.queuemanager;version="[0.20,1)" ,org.osgi.framework;version="[1.5,2)",org.osgi.service.blueprint;versio n="[1.0.0,2.0.0)",org.slf4j;version="[1.6,2)" Import-Service: javax.sql.DataSource;multiple:=false;filter="(osgi.jndi. service.name=jdbc/opennaas-resources)",org.apache.karaf.shell.console.C ompleter;multiple:=false;filter="(completer.name=resourceNameCompleter) ",org.opennaas.core.resources.capability.ICapabilityFactory;multiple:=t rue;availability:=optional Tool: Bnd-1.50.0
Please notice Bundle-* entries and Export/Import-Package/Service entries as well. (Content of these entries has been taken from an opennaas bundle)
Creating wrapping bundle
Apache Karaf has a good example of how to generate a wrapping bundle for a non-bundled jar. Please have a look at following URLs:
https://issues.apache.org/jira/browse/KARAF-1280
https://svn.apache.org/repos/asf/karaf/tags/karaf-2.2.8/demos/deployer/wrap/pom.xml