coherence-community / oracle-bedrock

Oracle Bedrock
Other
55 stars 31 forks source link

Introduce the ability to clone applications in an ApplicationStream #349

Closed brianoliver closed 8 years ago

brianoliver commented 8 years ago

As a developer, often I have the requirement to launch one or more copies of existing applications in an Assembly (ie: ApplicationStream), typically for the purposes of testing high-availability and/or scalability.

While ApplicationStream offers a "relaunch" feature, it should also offer a "clone/duplicate/launch(n)" feature, allowing n clones of the applications in the application stream to be launched.

Examples include:

// pick one random application from a cluster and launch five additional clones.
cluster.unordered().limit(1).clone(5);

// launch an clone of the applications matching a filter
cluster.filter(...).clone(1);

// launch clones of all applications in a cluster using the specified stability predicate
cluster.clone(1, StabilityPredicate.of(...));

// launch a clone of the first application using the specified console
cluster.limit(1).clone(1, Console.system());