Cipango Maven Plugin Configuration Guide

This plugin is based on Jetty Maven Plugin, most of the options available on jetty plugin are also available.

To run a sip application from a maven project,

  1. add it in your POM file:
      <build>
        ...
        <plugins>  
          <plugin>
            <groupId>org.cipango</groupId>
            <artifactId>cipango-maven-plugin</artifactId>
         </plugin>
        </plugins>
      </build>
    
      <repositories>
        <repository>
          <id>cipango.org</id>
          <name>Cipango Plugin Repository</name>
          <url>http://repository.cipango.org</url>
        </repository>
      </repositories>
    
      <pluginRepositories>
        <pluginRepository>
          <id>cipango.org</id>
          <name>Cipango Plugin Repository</name>
          <url>http://repository.cipango.org</url>
        </pluginRepository>
      </pluginRepositories>
    

Plugin has been renamed from maven-cipango-plugin (branch 1.x) to cipango-maven-plugin to be compliant with Maven standarts

  1. start the plugin:
    mvn cipango:run

Running this plugin on microsoft Windows may have a exception like java.net.URISyntaxException: Illegal character in path at index 18: file:/C:/Documents and Settings/... when lauching plugin. Using maven 3 fix this issue. Please refer to issue JETTY-1063

How to configure the plugin

Container Configuration

Webapp Configuration
<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.cipango</groupId>
        <artifactId>cipango-maven-plugin</artifactId>
        <configuration>
          <scanIntervalSeconds>5</scanIntervalSeconds>
          <!-- Http configuration -->
          <connectors>
            <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector">
              <port>9090</port>
              <maxIdleTime>60000</maxIdleTime>
            </connector>
          </connectors>
          <!-- SIP configuration -->
          <sipConnectors>
            <sipConnector implementation="org.cipango.server.bio.UdpConnector">
              <port>5060</port>
            </sipConnector>
          </sipConnectors>
          <messageLog implementation="org.cipango.server.log.FileMessageLog">
            <filename>target/logs/yyyy_mm_dd.message.log</filename>
            <retainDays>90</retainDays>
            <append>true</append>
          </messageLog>
        </configuration>
      </plugin>
  </plugins>
</project>

Configure with diameter support

To enable diameter support with maven plugin, the following configuration should be used.

<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.cipango</groupId>
        <artifactId>cipango-maven-plugin</artifactId>
        <configuration>
          <jettyConfig>etc/diameter-mavenPlugin.xml</jettyConfig>
          <webAppConfig>
            <configurationClasses>
              <configurationClasse>org.mortbay.jetty.plugin.MavenWebInfConfiguration</configurationClasse>
              <configurationClasse>org.eclipse.jetty.webapp.WebXmlConfiguration</configurationClasse>
              <configurationClasse>org.eclipse.jetty.webapp.MetaInfConfiguration</configurationClasse>
              <configurationClasse>org.eclipse.jetty.webapp.FragmentConfiguration</configurationClasse>
              <configurationClasse>org.eclipse.jetty.webapp.JettyWebXmlConfiguration</configurationClasse>
              <configurationClasse>org.eclipse.jetty.webapp.TagLibConfiguration</configurationClasse>
              <configurationClasse>org.cipango.sipapp.SipXmlConfiguration</configurationClasse>
              <configurationClasse>org.cipango.diameter.app.DiameterConfiguration</configurationClasse>
            </configurationClasses>
            <contextPath>/</contextPath>
          </webAppConfig>
        </configuration>
        <dependencies>
          <dependency>
            <groupId>org.cipango</groupId>
            <artifactId>cipango-diameter</artifactId>
            <version>2.0-SNAPSHOT</version>
          </dependency>
        </dependencies>
      </plugin>
  </plugins>
</project>
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE Configure PUBLIC "-//Jetty//Configure//EN" "http://www.eclipse.org/jetty/configure.dtd">

<Configure class="org.cipango.server.Server" id="Server">

  <Call name="addLifeCycle">
    <Arg>
      <New id="node" class="org.cipango.diameter.Node">
        <Set name="server"><Ref id="Server"/></Set>
        <Call name="addConnector">
          <Arg>
            <New class="org.cipango.diameter.bio.DiameterSocketConnector">
              <Set name="port"><SystemProperty default="3868" name="diameter.port"/></Set>
              <Set name="node"><Ref id="node"/></Set>
            </New>
          </Arg>
        </Call>
        <Set name="router">
          <New class="org.cipango.diameter.Router">
            <Set name="node"><Ref id="node"/></Set>
            <Call name="addPeer">
              <Arg>
                <New class="org.cipango.diameter.Peer">
                  <Arg>hss.cipango.org</Arg>
                </New>
              </Arg>
            </Call>
          </New>
        </Set>
      </New>
    </Arg>
  </Call>

  <Call name="setAttribute">
    <Arg>org.cipango.diameter.Node</Arg>
    <Arg><Ref id="node"/></Arg>
  </Call>
</Configure>