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 7 Next »

Here are some quick steps to follow if you wish to add support for a new container in Cargo:

  • Subscribe to the cargo dev mailing list and ask as many question you'd like there! (smile)
  • Create a JIRA issue on (you'll need to register). I'll then add you to the cargo-developers group in JIRA and assign the issue to you
  • Checkout Cargo from SVN trunk
  • Understand the Cargo project's directory structure
  • Have a look at existing container implementations (search for example for Resin3xLocalContainer or Orion2xLocalContainer).
  • Create a org.codehaus.cargo.container.containerName package if it doesn't already exist. This package must be located in the trunk/core/api/container project (Note: we are in the process of moving container implementations to their own project and in the future you'll create that package in trunk/core/containers/containerName.
  • Create the following classes:
    • A container implementation class named _ServerNameNxContainerType_Container where ServerName is the name of the container, N the version and ContainerType the type of container (Local or Remote). For example: JBoss3xLocalContainer.
    • A configuration implementation class named _ServerNameConfigurationType_Configuration where ConfigurationType can be StandaloneLocal or ExistingLocal. For example JBossStandaloneLocalConfiguration.
    • You may need to implement some ancillary classes but those are the main 2 required. Check how the other container are implemented to see how to implement them and what other classes you may need to implement.
  • Cargo has an SPI that you should use and that should make it easy for you. Your container class should extend org.codehaus.cargo.container.spi.Abstract_ContainerType_Container and your configuration class should extend org.codehaus.cargo.container.spi.configuration.Abstract_ConfigurationType_Configuration.
  • Register your new classes in the generic API in the Factory classes trunk/core/api/generic so that users can use your new container by using the generic API.
  • Add your container to the tests in trunk/samples/java. This means editing the * classes and adding your container in the suite() method.
  • Run the Cargo build to ensure everything is working. You'll probably find that you haven't followed the Cargo project's coding conventions... Fix those and build again until it passes! (wink)
  • Register on Codehaus' confluence. Once this is done I'll add you to the cargo-developers user group so that you have the right to edit yourself the Cargo web site pages
  • Document the new container on the Cargo web site
  • Create a SVN patch and attach it to the JIRA issue you have created above

Thanks and happy coding!

  • No labels