Downloads
Please provide feedback about this code to mailto:Peter.Kriens@aqute.biz
Bnd tool
A tool that can be used as a command line utility, an ant task, an Eclipse plugin, and a maven plugin. It can be used to verify bundles, create bundles from the classpath and a description, as well as wrapping an existing bundle. See Bnd.
Releases
The current version is 0.0.384. The Maven Group Id is always biz.aQute. The maven repository can be found on:
http://www.aQute.biz/repo
| Download | Maven Artifact | Description |
|---|---|---|
| bnd.jar | bnd | Complete tool (plugin, ant, command line) |
| bndlib.jar | bndlib | Core bnd library. Is used in Maven, can be useful if you want to manipulate JAR files and generate manifests. |
| annotation.jar | annotation | Only annotations. Can be useful if you want to use the annotations but do not want the full bnd on your classpath |
Source code for bnd is always inside the jar in OPT-INF/src. The license for this source code is ASL 2.0. You can also find a CVS project of bnd at bnd.sourceforge.net.
Feedback
The project is maintained by Peter Kriens. If you have a problematic situation, please contact me with as much info as possible. Usually it is fixed almost immediately. If you want extensions, let me know what features you like.
Versions
| 20091209 | 0.0.384 | Added more error information when a ZIP/JAR is corrupt. Fixed bug in annotations where multiple/optional/dynamic did not work correctly. The type parameter did work though. |
| 20091201 | 0.0.381 | The annotations did not compile well under the Sun javac compiler because of a static class reference. Removed the class reference. |
| 20091105 | 0.0.378 | Supports specific bind and unbind methods for components |
| 20091103 | 0.0.375 | Added an annotations only version library |
| 20091102 | 0.0.374 | Added Export annotation and now has experimental version policies for that differ between implementing a package and using a package. Separately document in XBnd |
| 20091016 | 0.0.372 | Components can now use annotations, use -component:. Accepts wildcarded classes searched inside the made JAR. Components are in the bnd file: aQute.bnd.annotations.component. Is still alfa but like feedback. Fixed bug with Include-Resource filtering support. No longer warning when you use -exportcontents instead of classpath based directives. |
| 20091012 | 0.0.369 | Added ${env;<name>} macro |
| 20091002 | 0.0.366 | Fixed NullPointerException in the component handling, in checkClass |
| 20090901 | 0.0.356 | On a PC, Include Resource could include "\" as JAR path separator, this should be "/". |
| 20090826 | 0.0.355 | Fixed some errors in signature parsers. |
| 20090826 | 0.0.354 | Only allowed 4 character package names, fixed. DO |
| 20090820 | 0.0.353 | Fixes a serious bug in the class file parsing, causing it to think you're importing '.'. |
| 20090820 | 0.0.352 | Now supports parsing of generics as well. Supports plugins that come from the file system (set path:= to the classpath). Plugins can now be delayed in reporting their absence if they have a command: directive. They are only reported when the command string is used in a bnd file. Better (hopefully) file dependency management. And bug fixes. |
| 20090701 | 0.0.337 | There are continuous enhancements (and surprisingly few bug fixes). Significant new feature is that bnd now supports the new DS namespace with additional methods (activate, modified, deactivate), and configuration policy. |
| 20090324 | 0.0.313 | There have been a lot of changes in the last months because bnd is being used for the OSGi build. It has been extended with a classpath container, project/workspace model, bnd file editor, and lots of bug fixes. Due to time restrictions, I have not been able to document all the features and they are too much to list here. Please not that this release requires Java 5. |
| 20080504 | 0.0.257 | This is an intermediate version. I am making quite a few changes but some people need an update. Be careful not to use this in unaware production sites. I.e. do not update the maven plugin with this one! |
| 20080331 | 0.0.249 | Added an editor, allowed includes to not override already set properties by prepending them with a ~ |
| 20080326 | 0.0.243 | Fixed path handling of absolute paths in Eclipse .classpath files. Absolute files were causing errors. Order of -include is reversed. Included files erroneously overwrite their properties on the level they were included. Now properties in the same file as the -include instruction always override the included properties. However, properties later in the list of included files overwrite properties in earlier files. |
| 20080311 | 0.0.239 | Allow export of specifically mentioned metadata packages like META-INF. These are normally not exported but sometimes it is necessary. There is no wildcard expansion for these dirs. |
| 20080212 | 0.0.238 | Added a -remove-attribute: directive on the Import clause to remove inherited mandatory attributes. |
| 20080131 | 0.0.236 | Added a -nouses clause. Uses now only contains imported or exported packages but no private pacakges. Exports can override their uses, optionally including the calculated uses. Inlines (@x.jar) manifest headers were copied to the output manifest when the manifest was copied, the last one won. Inlines will now not copy the manifest |
| 20071222 | 0.0.223 | Dependencies to 1.6 creeped into the code, now compiles against 1.4 |
| 20071130 | 0.0.218 | Versions as attributes lacked quotes. It turns out that the value of an attribute was only quoted when it contain a commo or a semicolon. It now verifies if it is already quoted or if it is not a token according to the spec. Note that in the next release it is likely that the . will be allowed in an attribute value. |
| 20071129 | 0.0.215 | If a property had a \n and was copied to the manifest because it was a valid manifest header, and the \n was not followed by a space then the manifest would be corrupt. Now the jar will cleanup any attributes that have a newline |
| 20071022 | 0.0.208 | Did not parse the Parameter Annotation Attributes, they turned to be slightly different than other annotation attributes. |
| 20071005 | 0.0.201 | Crawls classes for come.acme.X.class like constructs. Fixes a parser bug that gave random problems for larger class files read from file (bnd reads from memory). |
| 20070927 | 0.0.198 | Did not augment mandatory attributes when version was not set. Bundle Activator does not show warning when it comes form an import. Added -exportcontents header. Fixed double entries on classpath when using with Eclipse. |
| 20070801 | 0.0.187 | Gives warning for wrap when rename fails. Implemented -removeheaders which remove headers from the output manifest |
| 20070801 | 0.0.178 | Add the target attribute on the reference for a Service-Component. Fixed Conditional-Package to not give superfluous warnings for split packages, . Add the target attribute on the reference for a Service-Component. Fixed Conditional-Package to not give superfluous warnings for split packages |
| 20070730 | 0.0.170 | Gives a proper error when a resource does not exists from Include-Resource. Adds a -split-package directive on Export-Package and Private-Package that defines a strategy when packages are split between different JARs |
| 20070614 | 0.0.160 | Will not create jar when an existing jar is newer than any sources (make functionality) or itself. Sets exit code now on the number of errors (if -failok is not set). Added new ant tasks for preprocessing the bnd way and getting the .classpath values. Added new macros toclassname, toclasspath, and findname. |
| 20070523 | 0.0.145 | Added an experimental feature: Conditional-Package, which will only include a package when it is required. This is a recursive definition |
| 20070522 | 0.0.143 | -o can now also be a directory. Skips META-INF in export, cleans up versions if they are not OSGi compliant, corrected bug in -include when - was used and file was not found, added new error and warning macros |
| 20070428 | 0.0.134 | Closing all streams |
| 20070428 | 0.0.131 | Nasty bug in handling of ! in private/export |
| 20070425 | 0.0.130 | mangled the import versions to follow OSGi rules |
| 20070422 | 0.0.129 | Ouch, used getBoolean instead of parseBoolean in doing the serviceFactory attribute for a component |
| 20070420 | 0.0.128 | -include supports properties like ${user.home} and when a file is prefixed with a - sign then its absence will not generate an error |
| 20070419 | 0.0.125 | new servicecomponent did always create servicefactory |
| 20070412 | 0.0.124 | bnd.jar did not run inside Eclipse because the plugin.xml contained a reference to a non existent preference page. Yes, I am working on better Eclipse support but it is not in any state yet |
| 20070409 | 0.0.122 | Cleaned up non-osgi compatible versions when building |
| 20070406 | 0.0.118 | Updated Service-Component handling. Now supports servicefactory, immediate, enabled, and factory attributes |
| 20070312 | 0.0.115 | Supports <>, {}, (), [], «», and ‹› for macro names. Inside macros, the delimiters are counted so you can use embedded parentheses. You can now use the filename of a jar on the class path in Include-Resource instead of the path name, useful with maven. |
| 20070215 | 0.0.112 | Uses name of bnd file when no Bundle-SymbolicName is set. |
clsd Class Dumper
Dumps a class file, see Clsd.
License of the source code is Apache Software License 2.0
Versions
| 20071005 | 1.0.0 | Initial version |
Maven Bundle Deployer
Deploys bundles to maven repositories using FTP.
Source code for deploy is available in the maven repository. The license for this source code is ASL 2.0.
Versions
| 20061113 | 1.0 | Initial release |
Sudoku
An example of how to separate an application between an OSGi part and a part that runs in the browser, using RPC to communicate. See Sudoku.



