Good question, Phil.
There are a number of areas where we believe that dm Server adds value above raw Equinox. These include:
- Applications, scoping, and plans
dm Server allows you to group your bundles into an application, either using a PAR file, or using a Plan file. Applications can also be scoped, isolating them and the services that they publish from other bundles and applications that are running in the same dm Server instance.
- Repositories and automatic provisioning
dm Server provides support for repositories, either local or remote, than can be populated with artifacts that can then be automatically provisioned into dm Server. For example, if you deploy a plan that references two bundles and a configuration, the two bundles and the configuration will be sourced from the configured repository. Furthermore, when a bundle is deployed dm Server will automatically satisfy the bundle's dependencies by installing additional bundles from the repository. This saves you the time and hassle of manually collecting together all of a bundle's dependencies and installing them until, eventually, the original bundle resolves.
- Enterprise library support
There are a large number of widely-used enterprise Java libraries that don't work out of the box in a raw OSGi environment. There are a number of hoops that you have to jump through to make them work, e.g. by importing packages which you wouldn't expect to need, or by setting a specific thread context class loader to work around some class loading assumptions in the library that don't hold true in OSGi by default. dm Server takes care of all of this for you so that the vast majority of enterprise libraries will work as expected.
- Developer productivity
dm Server comes with a rich set of Eclipse-based tooling that allows Eclipse projects to be deployed direct to dm Server, provides automatic manifest generation within Eclipse, provides bundle dependency and service visualisation, etc.
- Administration and management
dm Server provides both a web-based admin console and a ssh or local shell that can be used to administer and manage a dm Server instance including support for installing and managing artifacts, performing failure diagnosis, etc.
In addition to being able to install (deploy) bundles, dm Server also allows you to deploy applications (as a PAR or plan file as described above) and configuration. When configuration is deployed it is automatically made available via ConfigurationAdmin. dm Server also supports hot deployment: whenever a file is dropped into the pickup directory it will be deployed.
Please let me know if you'd like any more information on any of the above, or in general.
Last edited by Glyn Normington; Nov 11th, 2009 at 11:31 AM.