|author||Greg Trasuk <firstname.lastname@example.org>||Mon Feb 17 22:05:39 2014 -0500|
|committer||Greg Trasuk <email@example.com>||Mon Feb 17 22:05:39 2014 -0500|
Admin Service is able to query all the ApplicationManager objects in the container context for application statuses. StarterServiceDeployer now creates a working directory for each service and places the File for that directory into the service's configuration as $workingDirectory. The StartupDeployer has been renamed to FolderBasedAppRunner which is more descriptive of its function. It scans a folder at startup and runs any application archives that it finds. Similarly, the ClientAppDeployer has been renamed to CommandLineAppRunner, since it runs the application specified on the command line. The Context class now supports getting all components that implement a given interface. This functionality is used to find all the ApplicationManager implementations that can be polled for applications.
Initial development on Apache River Container
mvn clean install
cd product/target/product* sh bin/run.sh [profile] arg*
If you don‘t specify [profile] the ‘default’ profile will be used. ‘arg*’ isn’t really used much in the service container profiles (like ‘default’).
Services are packaged into a jar file and placed into the ‘deploy’ folder of the profile that you want to run. When you run the container, all services in the profile are started up. The default profile monitors the deploy folder each 5s and starts up any new services you put into the deploy folder. The ‘default’ profile already includes a transient reggie instance and a transient mahalo instance. You can add your own services to this folder as well.
Have a look at the ‘reggie-module’ or ‘mahalo-module’ target folders to see what the archive should look like. Startup parameters are in ‘start.properties’. ‘start.properties’ calls out the startup class and the parameters to its constructor (typically the name of the configuration file and any overrides to the config).
cd product/target/product* sh bin/run.sh client AppName arg*
Starts up the container using the ‘client’ profile, which then starts the client that is named by ‘AppName’ (and only that client, no matter if there are multiple apps in the deploy folder).
The container will host client applications, making the downloads available via a codebase server, and setting up all the security polices that are required. Client apps are packaged much like the services mentioned above.
cd product/target/product* sh bin/run.sh client browser
Starts up the service browser.
Reggie-module and mahalo-module might be interesting samples. For a simpler ‘hello-world’ example with a Maven build, see https://github.com/trasukg/river-container-examples.