Discussions

News: Building OSGi apps with Ant, made easy with Ivy and Bushel

  1. Bushel 0.6 is now available. The new version supports OSGi bundle manifests from within Ivy. This is done by masquerading the content of the MANIFEST.MF in the bundle jar as a ivy.xml file. Therefore, enabling the bundle metadata and artifacts to be installed in the Ivy cache, allowing them to be used by any of the standard Ivy Ant tasks (such as to build a classpath, or to install in a lib dir). You can read the full post here: http://ezaero.blogspot.com/2008/08/build-osgi-apps-with-ant-made-easy-with.html Or here's a link directly to the project: http://code.google.com/p/bushel/ The focus of this work is on building OSGi apps with Ant. It's just a personal preference. I have read Maven has a lot of good support for OSGi apps too. I'm also interested to hear how others manage IDE-less OSGi projects.

    Threaded Messages (7)

  2. I'm also interested to hear how others manage IDE-less OSGi projects.
    Are you familiar with Bnd? http://www.aqute.biz/Code/Bnd
  3. Bnd[ Go to top ]

    Hi James, I've previously skimmed the project website, but haven't used it yet. Upon further inspection, I think it may come in useful for some enhancements I was planning for Bushel. Cheers, Alex
  4. Re: Bnd[ Go to top ]

    Hi James,

    I've previously skimmed the project website, but haven't used it yet. Upon further inspection, I think it may come in useful for some enhancements I was planning for Bushel.

    Cheers,
    Alex
    What does Bushel provide above and beyond Bnd? Please understand that this is an merely an admission of ignorance and not a challenge.
  5. Re: Bnd[ Go to top ]

    Not being a Bnd expert, I can't speak with any great authority. But I think Bnd is mainly used for creating a bundle Jar file, with appropriate OSGi metadata in the MANIFEST.MF. Bushel on the other hand manages your external dependencies from within Ivy. So you get all the Ivy ant tasks (such as cachepath or retrieve) for free. Essentially you say which bundles you need and it will download** them and any transitive dependencies (currently only Require-Bundle is supported). Bushel was originally designed for assembling Target Platforms for Eclipse RCP projects. But it can be used to manage the dependencies of any OSGi project. I basically got tired of having loads of copies of RCP bundles all over the place and wanted just the bundles I used, not the whole Eclipse install. So unless I'm mistake, Bnd and Bushel really compliment each other. For example, you could feed the classpath generated by ivy:cachepath into Bnd when creating your bundle jar. Alex. **When I say download, version 0.6 is only file based, so you need to have them locally avaialable. Such as Eclipse install, or a bunch of bundle jars in a directory. Version 0.7 will allow you to download them from Eclipse Update Sites, or the SpringSource OSGi repo.
  6. Re: Bnd[ Go to top ]

    So you get all the Ivy ant tasks (such as cachepath or retrieve) for free.

    Essentially you say which bundles you need and it will download** them and any transitive dependencies (currently only Require-Bundle is supported).

    Bushel was originally designed for assembling Target Platforms for Eclipse RCP projects. But it can be used to manage the dependencies of any OSGi project. I basically got tired of having loads of copies of RCP bundles all over the place and wanted just the bundles I used, not the whole Eclipse install.

    So unless I'm mistake, Bnd and Bushel really compliment each other.
    Very cool. Once I really get going with OSGi (sooner than later I hope) this is something that I will have to try. I hope that as you add support for repositories like the Eclipse download site you will create an API that will allow for addition repositories to be added by users. Actually a repository download API could be a really valuable standalone feature for use in OSGi containers. I imagine something is already in the works like this in Java 7.
  7. Re: Bnd[ Go to top ]

    I should also clarify, Bushel isn't a standalone application. It provides OSGi support for the excellent Ant Ivy project.
  8. too many dependencies!!![ Go to top ]

    bushel,ivy ant, osgi... all needed for this thing to somehow make life easy ??? i dont think so .. :)