JBoss Community Archive (Read Only)

WildFly Camel

Gravia Provisioning

Gravia provisioning works similar to Karaf or Eclipse feature provisioning, but without OSGi.

A feature is defined as set of abstract Resources with associated Capabilities/Requirements. All known features are stored in a Repository. At runtime the Provisioner gets a set of Resource candidates from the Repository and uses a Resolver to find a consistent wiring solution for the current state of the Environment. After this no-impact analysis, the Provisioner installs the required set of Resources to the Environment.

Use Cases

WildFly Camel Features

WildFly Camel uses Gravia Provisioning to install Camel features for camel-jms, camel-jmx, camel-cxf into WildFly on demand. It is expected that the list of installable components/features will grow. Using Gravia, modules can be added on demand and it won't be necessary to add the complete set of possible modules to WildFly upfront and (perhaps more importantly) hard-wire them together.

Complex Product Distributions

Gravia should provide the necessary functionality to build complex product distributions. Teams can work independently on their respective components and express them as Resources that have associated Capabilities/Requirements. The build process would use the Gravia Provisioner to find a complete and consistent wiring solution for the set of components that make up the final product distribution. It is like Eclipse or Karaf feature provisioning at build time.

The Gravia Repository may be visible to the organisation or even product only. Repository metadata would be versioned to guarantee reproducible build results. Maven plugins could be provided that generate Gravia metadata from build information (i.e. direct maven dependencies) and populate the repository. This is similar to the maven bundle plugin and the OBR metadata it can generate.

Application Plugins

Applications that have the notion of plugins (i.e. 3rd party provided component) that can be installed/updated/removed at runtime could use Gravia to provide that functionality. Eclipse and Karaf are both tied to OSGi. Gravia targets environments that do not (want to) have a dependency on OSGi.

JBoss.org Content Archive (Read Only), exported from JBoss Community Documentation Editor at 2020-03-13 13:58:35 UTC, last content change 2013-08-01 12:12:27 UTC.