![]() ![]() Bndtools integrates with Maven via this plugin and via M2Eclipse. Bnd has a pluggable repository system allowing us to use arbitrary back-end repository technologies, including Ivy.įor Maven users the most popular approach to OSGi development is to use the Maven Bundle Plugin, which is another tool that embeds bnd. Neil Bartlett: Bndtools' "native" build system is bnd itself, which leverages Apache Ant for multi-project builds, and this is the way the OSGi Alliance builds their 1300+ bundles. InfoQ:Does BndTools integrate with other build environments such as Maven and Ant/Ivy? Bndtools helps with this as well: as soon as you save a change to a Java source file, the code is recompiled, packaged into a bundle and pushed into the running application. OSGi is all about improving the architecture of your application and creating reusable components, whereas JRebel is about getting your code out of the IDE and into the Java EE application server as quickly as possible.Īs it happens, OSGi also features dynamic hot-swapping of modules, which works well enough that I don't regard JRebel as being particularly useful when developing for OSGi. OSGi provides enforcement of module boundaries via encapsulation and controlled, explicit dependencies. Neil Bartlett: JRebel is a powerful tool for speeding up redeployment of code during development, but it does not provide any kind of module system, either at runtime or at build time. InfoQ: What advantages are there of using OSGi over JRebel and an ordinary Java project? Manually editing such information is laborious and error-prone. This is important because a full MANIFEST.MF contains quite a lot of duplicate information or information that should be derived directly from the Java code, for example the list of packages-level dependencies. Our philosophy is that the MANIFEST.MF should be treated almost like a compiler output: i.e., it should be generated from a simpler source artefact. In PDE you directly edit the MANIFEST.MF file that goes straight into the bundle without any post-processing. PDE follows a different philosophy to bnd and Bndtools, called "manifest first". Bndtools does not reuse PDE in any way, but both Bndtools and PDE are built on top of Eclipse's Java Development Tooling (JDT). Neil Bartlett: Eclipse PDE is another OSGi development environment based on Eclipse. InfoQ: How does BndTools compare to Eclipse's PDE? Because many other tools embed bnd, the descriptor files used by bnd have almost become a de-facto standard, meaning that it is easy for a Bndtools developer to collaborate with developers using other tools, or to migrate permanently to another tool if they choose. All of the smarts are in bnd essentially, and Bndtools just figures out when it should call bnd and presents the results nicely. As a low-level tool it is easily embeddable and can be called directly from the command line, used an ANT task, or embedded in Maven and IDEs.īndtools uses bnd as its "engine". It was developed by Peter Kriens (the OSGi Alliance's Technical Director) and is used by the OSGi Alliance to build their own suite of API, compatibility test and reference implementation bundles. Neil Bartlett: Bnd is an extremely powerful but low-level tool for building and analysing OSGi bundles. Today I use Bndtools for all of my OSGi development, and since Eclipse plug-ins are based on OSGi I even use Bndtools to develop itself. Over time these tools grew into a fairly complete, integrated development environment for OSGi. ![]() Since I had some experience with Eclipse plug-in development, I started to build small utilities that made life easier for me and my students. Neil Bartlett: I do a lot of OSGi training and always had a problem with the tools for OSGi development being unwieldy and difficult for beginners to understand and use. InfoQ caught up with Neil Bartlett, and began by asking why he created BndTools: Additionally, BndTools can also take care of automated semantic versioning, by comparing the built component to a previously released component, leaving decisions about whether to increment the micro, minor or major number an algorithmic instead of human decision. Instead of defining dependencies by direct editing of the Manifest.MF, it uses Bnd files to drive a toolchain based on the Bnd tool. Available as source code via its github repository, the tools can also be installed directly into an Eclipse runtime from the Eclipse Marketplace.īndTools provides a way of developing OSGi bundles with Eclipse. Neil Bartlett has released BndTools 1.0.0, an OSGi development environment for Eclipse. ![]()
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |