Introduction

Apache projects, by definition, are all about source releases. However, like many projects do, we also provide binary releases for convenience. These can always be built from our source releases as well. This page provides a better insight into these binary distributions, how we create them and why. It also offers some recommendations on dealing with upgrades or a large number of installations.

Binary distributions from source

The Apache ACE project has multiple runnable targets. By convention, each of these is contained in a project starting with "run-" and each such project contains a bndrun file that exactly specifies what bundles are part of this target. This allows us to easily run such a target in Eclipse, and it also provides us with an option to create an executable jar file via our build. These executable jar files, together with their configuration, can be seen as our binary distributions. Customizing is as easy as editing the bndrun file and creating a new jar file. Another option you have is to simply copy an existing project and going from there.

Updating a distribution can be done by replacing the jar with a new one. Because of the settings in the bndrun file we ensure that the bundle cache is saved, so you don't loose any data. The bundles should be upgraded automatically. Note that we currently have one outstanding bug in bnd that prevents that, see bnd issue 424.

Binary distributions from ACE

Of course once you have to start managing multiple servers running ACE, it makes sense to use ACE for that. Eating our own dogfood. To do that, one can still use the bndrun files as the basis for creating the associations within the ACE client. The configuration data needs to be converted into XML so it is understood by the autoconf resource processor.

Extending Apache ACE

When creating binary distributions in both cases, you might want to add your own extensions to ACE (such as extra artifact recognizers and helpers). The easiest way to do that is to just add one or more extra projects to the workspace and include the bundles from those projects in the bndrun file. Of course you can also add all artifacts from ACE into a repository (OBR, Nexus, etc.) and create a new workspace from scratch, including the appropriate bundles.

  • No labels