I was not aware of wrap option in felix runtime....on a similar context, I did see the wrap / bundle option in maven-plugin-bundle. I tried using bundleall once but looks like the repository it's referring is lacking latest versions which results a failure in my case.
Thanks for the pointer, I'll take a look into pax-url-wrap in details On Fri, Jun 10, 2011 at 12:33 PM, Achim Nierbeck <[email protected]> wrote: > Well the wrap URL Handler works out of the box in Karaf > because pax-url-wrap is provided by standard. > > If you want to use the wrap URL Handler in your own > Felix/Equinox based OSGi runtime you need to install the > pax-url-wrap bundle also. > > regards, Achim > > Am 10.06.2011 21:20, schrieb [email protected]: >> >> Shamik, >> >> >> >> I completely understand how you feel about making bundles out of >> non-bundled .jar files. The standard answer is to contact the vendor and >> have them make bundles for you. However, this can take a while to accomplish >> and sometimes, especially for open-source .jar's, it may be difficult to get >> in touch with the folks who made the original .jar file. In addition to >> that method, there are a couple of quick and easy ways to make a osgi bundle >> out of a non-osgi .jar file. >> >> >> >> First, you may want to consider using Karaf. This product can ride of top >> of felix (or equinox), and it has a number of helper functions that will >> make your job easier. >> >> >> >> Second, when you install a non-bundled .jar file into Felix, try using the >> following syntax: >> >> osgi:install wrap:mvn:<artifactId>/<groupId>/version >> >> >> >> I haven't tried this in Felix, but in Karaf over the top of Felix, this >> will automagically wrap your non-osgi bundle. "Wrapping" in the process of >> using a tool to add osgi-stuff into a non-osgi .jar file's MANIFEST.MF file. >> While this may not be the best approach for an operational environment, >> this will definately help you get your test stuff working. >> >> >> >> To make a more operational-ready bundle, you can use the bnd tool to wrap >> your existing bundle. Bnd is a very powerful tool and is pretty well >> documented. Google it for more information. >> >> >> >> Please let me know if this helps! >> >> >> ----- Original Message ----- >> From: "Shamik Bandopadhyay"<[email protected]> >> To: [email protected] >> Sent: Friday, June 10, 2011 2:52:09 PM >> Subject: Re: Felix maven-bundle-plugin transitive dependency issue >> >> Hi, >> >> Thanks for your reply. Being a newbie, I'm finding a li'l hard to >> grasp the concept maybe. I agree, that embedding transitive dependency >> might not be the greatest idea since it contradicts OSGI fundamental. >> But at the sametime what bothers me is how do we address the non-osgi >> jars ? I can "n" number of jars in my project which maybe have other >> transitive dependencies. I don't see how efficient is the process of >> manually identifing them and make them OSGi enabled. I found the >> transitive dependency support comes handy in these cases. >> >> Unfortunately, I'm still not able to figure out how the >> <Embed-Transitive> property works for the maven-plugin-bundle. >> After,trying all possible combinations(so far), I haven't seen a >> single instance where a transitive jar got embedded in the bundle. >> >> I perhaps, need to do more reading to understand this. >> >> Can you pls share any pointers for best practises in this regard? >> >> Appreciate your help... >> >> -Thanks >> >> On Fri, Jun 10, 2011 at 11:41 AM,<[email protected]> wrote: >>> >>> Shamik, >>> >>> >>> >>> Embedding the transitive dependencies is one of those things that you can >>> do in OSGi, but usually you shouldn't. The problem is that your bundle is >>> likely not going to use most of the transitive dependencies. So, embedding >>> them into your bundle can leave you with a much larger bundle than you >>> really need with a bunch of "stuff" you don't need. Another problem that >>> you'll see when embedding transitive dependencies is that you may run into a >>> circumstance where a transitive dependency (especially for older stuff) >>> isn't available any more. In this case, your build will break. >>> >>> >>> >>> A better approach is to identify those bundles that you are actually >>> going to use (which you've already done), and deploy those into OSGi before >>> you deploy your taxonomy dao bundle. A rule of thumb that I use is, if a >>> bundle is listed in the dependencies section of the pom, that bundle should >>> be available within OSGi. >>> >>> >>> >>> So, in short, try not embedding any dependencies in your bundle; instead, >>> deploying all of the necessary bundles into OSGi first. If that doesn't >>> work, only then should you try to embed. >>> >>> >>> >>> Please let me know if that helps! >>> >>> >>> ----- Original Message ----- >>> From: "Shamik Bandopadhyay"<[email protected]> >>> To: [email protected] >>> Sent: Friday, June 10, 2011 1:56:54 PM >>> Subject: Felix maven-bundle-plugin transitive dependency issue >>> >>> Hi, >>> >>> I'm new to OSGI and trying to deploy my first application. I've a >>> spring dependency in my pom. While deploying I realized that Felix >>> runtime requires all transitive dependencies to install the bundle >>> properly. Since then, I'm sort of struggling to resolve this issue. >>> I've tried embedded-dependency and embedded-transitive options, but of >>> no luck. Here's my pom. >>> >>> >>> <project xmlns="http://maven.apache.org/POM/4.0.0" >>> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" >>> xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 >>> http://maven.apache.org/xsd/maven-4.0.0.xsd"> >>> <modelVersion>4.0.0</modelVersion> >>> <groupId>com.test</groupId> >>> <artifactId>taxonomydaobundle</artifactId> >>> <version>1.0.0</version> >>> <packaging>bundle</packaging> >>> <name>Taxonomy Dao Bundle</name> >>> <url>http://maven.apache.org</url> >>> <repositories> >>> <repository> >>> <id>fusesource</id> >>> <url>http://repo.fusesource.com/maven2</url> >>> <snapshots> >>> <enabled>false</enabled> >>> </snapshots> >>> <releases> >>> <enabled>true</enabled> >>> </releases> >>> </repository> >>> <repository> >>> <id>apache-public</id> >>> >>> <url>https://repository.apache.org/content/groups/public/</url> >>> <snapshots> >>> <enabled>true</enabled> >>> </snapshots> >>> <releases> >>> <enabled>true</enabled> >>> </releases> >>> </repository> >>> </repositories> >>> >>> <properties> >>> >>> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> >>> </properties> >>> >>> <dependencies> >>> <dependency> >>> <groupId>com.test</groupId> >>> <artifactId>taxonomymodelbundle</artifactId> >>> <version>1.0.0</version> >>> <scope>compile</scope> >>> </dependency> >>> <dependency> >>> <groupId>org.springframework</groupId> >>> <artifactId>spring</artifactId> >>> <version>2.5.5</version> >>> </dependency> >>> <dependency> >>> <groupId>junit</groupId> >>> <artifactId>junit</artifactId> >>> <version>3.8.1</version> >>> <scope>test</scope> >>> </dependency> >>> </dependencies> >>> >>> <build> >>> <plugins> >>> <plugin> >>> <groupId>org.apache.felix</groupId> >>> <artifactId>maven-bundle-plugin</artifactId> >>> <version>2.0.1</version> >>> <extensions>true</extensions> >>> <configuration> >>> <instructions> >>> >>> <Export-Package>com.test.taxonomy.api.*;version=1.0.0 >>> </Export-Package> >>> >>> <Import-Package>com.test.taxonomy.message.*;version=1.0.0, >>> * >>> </Import-Package> >>> >>> <Embed-Dependency>*;scope=compile|runtime</Embed-Dependency> >>> <Embed-Transitive>true</Embed-Transitive> >>> </instructions> >>> </configuration> >>> </plugin> >>> <plugin> >>> <groupId>org.apache.maven.plugins</groupId> >>> <artifactId>maven-compiler-plugin</artifactId> >>> <version>2.1</version> >>> <configuration> >>> <source>1.6</source> >>> <target>1.6</target> >>> </configuration> >>> </plugin> >>> </plugins> >>> </build> >>> </project> >>> >>> mvn install only embeds the direct dependency jars in the bundle. >>> When I try to install the bundle in Felix, its throwing import errors >>> as it's failing to resolve the dependencies. Here's a snippet : >>> >>> Imported Packages ERROR: bsh -- Cannot be resolved >>> ERROR: com.caucho.burlap.client -- Cannot be resolved >>> ERROR: com.caucho.burlap.io -- Cannot be resolved >>> ERROR: com.caucho.burlap.server -- Cannot be resolved >>> ERROR: com.caucho.hessian.client -- Cannot be resolved >>> ERROR: com.caucho.hessian.io -- Cannot be resolved >>> ERROR: com.caucho.hessian.server -- Cannot be resolved >>> ERROR: com.ibatis.common.util -- Cannot be resolved >>> ERROR: com.ibatis.common.xml -- Cannot be resolved >>> ERROR: com.ibatis.sqlmap.client -- Cannot be resolved >>> ERROR: com.ibatis.sqlmap.client.event -- Cannot be resolved >>> ERROR: com.ibatis.sqlmap.engine.builder.xml -- Cannot be resolved >>> ERROR: com.ibatis.sqlmap.engine.impl -- Cannot be resolved >>> ERROR: com.ibatis.sqlmap.engine.transaction -- Cannot be resolved >>> ERROR: com.ibatis.sqlmap.engine.transaction.external -- Cannot be >>> resolved >>> ERROR: com.ibatis.sqlmap.engine.type -- Cannot be resolved >>> ERROR: com.ibm.wsspi.uow -- Cannot be resolved >>> ERROR: com.jamonapi -- Cannot be resolved >>> ERROR: com.mchange.v2.c3p0 -- Cannot be resolved >>> ERROR: com.sun.enterprise.loader -- Cannot be resolved and overwritten >>> by Boot Delegation >>> ERROR: com.sun.net.httpserver -- Cannot be resolved and overwritten by >>> Boot Delegation >>> ERROR: com.sun.rowset -- Cannot be resolved and overwritten by Boot >>> Delegation >>> ERROR: commonj.timers -- Cannot be resolved >>> ERROR: commonj.work -- Cannot be resolved >>> ERROR: edu.emory.mathcs.backport.java.util.concurrent -- Cannot be >>> resolved >>> ERROR: freemarker.cache -- Cannot be resolved >>> ERROR: freemarker.template -- Cannot be resolved >>> >>> My understanding was using<Embed-Transitive>true</Embed-Transitive> >>> will embed all transitive dependency jars in the bundle,but apparently >>> that's not been the case so far. >>> >>> I'll appreciate if someone can tell what's the right approach to >>> resolve this issue. >>> >>> -Thanks >>> >>> --------------------------------------------------------------------- >>> To unsubscribe, e-mail: [email protected] >>> For additional commands, e-mail: [email protected] >>> >>> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: [email protected] >> For additional commands, e-mail: [email protected] >> >> > > > --------------------------------------------------------------------- > To unsubscribe, e-mail: [email protected] > For additional commands, e-mail: [email protected] > > --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]

