Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Page History

« Previous Version 20 Next »

Discussion on the design of the Maven 2 plugin.

Functional tests

Icon

The usage of Cargo for exeucting functional tests on a container do not need this m2 plugin. You should use directly the Cargo Java API from your JUnit/TestNG tests (as described on http://tinyurl.com/btmwa).

Use case #1: Start/stop a container

Ability to start/stop a container (possibly deploying some deployables to it as it start) - cargo:start, cargo:stop. This is not the most useful use case IMO but we should support it. In this scenario Maven would be used as a convenience to start a container.

Example of m2 configuration:

Use case #2: Deploy to a running container

Ability to deploy to a remote container. Very useful for automating deployments with Maven (cargo:deploy).

There are two different possible configurations depending on the type of Deployer you're using:

  • Local Deployers that can only deploy on your local machine. Those deployers need to be linked to a local container installed on your machine.
  • Remote Deployers that can deploy to any container that is already running (be them local or on a remote machine). Those deployers only need a configuration to run.

Local Deployers

Example of m2 configuration:

Remote Deployers

Example of m2 configuration:

Use case #3: Generate container configuration deployment structure

Ability to create a fully working custom configuration and possibly package some deployables in it. Then delivery this configuration as an artifact (cargo:package)

TODO

Additional notes

  • A configuration specifies only the setting for a single container. If the user wants to run on several containers he must use the m2 <execution> element.
  • We'll define a default for all configuration element so that just typing "mvn cargo:start" without any config will work. Let's use Jetty as the default container for war packaging (because it's the fastest to load) and Orion as the default for EAR packaging (again because it's the fastest we have for now - We really need to implement support for OpenEJB though).
  • For the deployer, allow replacing <hint> by <class> if the user wants to specify a given deployer by class name.
  • The autoDeployArtifact config property, if set to true (which will be the default) will automatially generate a <war> or <ear> element in both the <container> and <deployer> config elements.
  • No labels