Pax Development Guidelines

Skip to end of metadata
Go to start of metadata

Overview

This page serves as guideline for developing a Pax project, detailing project structure, maven project settings and other.

Generic rules about Pax projects:

  • must be buildable with Maven 2.
  • must follow Maven defaults for internal directory structure.
  • parent project must have a pom packaging
  • parent project pom must inherit the pax project pom

    where version to be used is as required preferably the latest version.

  • inherit directly/indirectly the pom from the parent project
  • if Maven generated documentation is used, then the src/main/site/ is located in the parent project.
    [TODO]

Structure

[TODO]

Projects without modules

[TODO]

Projects with modules

  • Name of the module must match the name of the artifact.
    [TODO]

Package names

  • Package names must start with org.ops4j.pax and then a name related to artifact/module name.
  • Any non exported classes should be placed in a package with a name that ends with .internal
    [TODO]

OSGi

A module or a project that will end up as a bundle should:

  • have a bundle packaging
  • be built using maven-bundle-plugin
  • have a Bundle Symblic Name (bsn) that follows the following rules:
    • if there is no split between the api and implementation, bsn should be equal with the most significant package name (e.g. org.ops4j.pax.web)
    • if there is a split between api and implementation, bsn of api bundle should be equal with the most significant package name (e.g. org.ops4j.pax.logging) and the bsn for implemenatation bundle should be the same as the bsn for the api plus ".impl" (e.g. org.pax.web.impl)
    • if there are more implementations for the same api the bsn of implementations should be the same as the bsn for the api plus a significant name for the implementation (e.g. org.ops4j.pax.web.jetty, org.pax.web.tomcat)
  • have a Bundle Version that matches the artifact version
    [TODO]

Template for Project parent POM.

  • [projectname] - The name of the project. Example; pax-logging-api
  • [projectkey] - The JIRA key. Example; PAXLOGGING. To obtain a new key, ask on general@lists.ops4j.org.
Labels:
None
Enter labels to add to this page:
Please wait 
Looking for a label? Just start typing.

Clicky Web Analytics