Choosing a Runtime


Fabric3 is designed to run in a variety of environments and provide application portability between them. This is important for flexibility when deploying into different production environments but also essential for effective iterative development. Fabric3 supports running applications out-of-container, in an integration test environment, or in a managed environment such as a JEE application server with minor configuration changes. This provides an efficient and automated mechanism for conducting local testing, integration testing, and production deployment. The following are brief descriptions of the available Fabric3 runtimes:






Runtime Layout


The runtime image is organized as:

/bin

 

 

 

 

Startup modules

 

/lib

 

 

 

 

Modules required to start the runtime host

 

/boot

 

 

 

 

Modules required for the runtime bootstrap and primordial system services

 

/host

 

 

 

 

Libraries shared between the runtime and application (e.g. web services annotations)

 

/extensions

 

 

 

 

Extension modules that are able to be loaded by all runtime instances

 

/runtimes

 

 

 

 

Specific runtime instance configuration is hosted by default under this directory

 

 

<runtime-name>

 

 

top level directory for a runtime configuration

 

 

 

/config

 

 

Contains systemConfig.xml for configuring the runtime and extensions

 

 

 

/deploy

 

 

File system deploy directory for the controller and single-VM runtimes

 

 

 

/repository

 

 

 

 

 

 

 

/runtime

 

Extensions only loaded for the runtime image

 

 

 

 

/user

 

User contributions (only populated on the controller and single-VM runtimes)

 

 

 

/data

 

 

Persistent data directory for a runtime instance (e.g. transaction log)

 

 

 

/tmp

 

 

Temporary data and artifact cache for a runtime instance

 


For basic startup, the runtime name is required, which maps to a configuration under runtimes:

java -jar server.jar controller 

launches a runtime using the runtimes/controller image

java -jar server.jar vm

launches a runtime using the runtimes/vm image

java -jar server.jar participant

launches a runtime using the runtimes/participant image

java -jar server.jar foo

launches a custom runtime using the runtimes/foo image