Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Migrated to Confluence 5.3

Cipango Maven

...

Plugin Configuration Guide

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

To run a sip application from a maven project,

  1. you have to add it in your pomPOM file:
    Code Block
    xml
    xml
      <build>
        ...
        <plugins>  
          <plugin>
            <groupId>org.cipango</groupId>
            <artifactId>maven<artifactId>cipango-cipangomaven-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>
    
    execute the command
Info

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:
    No Format
    mvn cipango:run
Note

As Cipango is not available yet on public maven repositories, to use this plugin, you must download cipango sources and install itRunning 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

  • sipConnectors optional. List of sip connectors to use. If none are configured then UDP and TCP connectors at port 5060 and on first public address. You can override this default port number and host by using the system properties sip.port and sip.host on the command line, eg: mvn -Dsip.port=9999 -Dsip.host=localhost cipango:run.
  • messageLog optional. The sip messages logger to use. If none are configured, then a file message logger is created in the directory <code>target/logs</code>.
  • connectors, jettyConfig, scanIntervalSeconds, systemProperties, userRealms As described in the Maven Jetty Plugin.
Webapp Configuration
  • sipDefaultXml optional. A sipdefault.xml file to use instead of the default for the sipapp.
  • overrideSipXml optional. A sip.xml file to be applied AFTER the webapp's sip.xml file. Useful for applying different build profiles, eg test, production etc.
  • annotationsEnabled optional. Allow to disable annotations parsing. true by default.
  • contextPath, tmpDir, overrideWebXml, webDefaultXml As described in the Maven Jetty Plugin.
Code Block
xml
xml
<project>
  ...
  <plugins>
    ...
      <plugin>
        <groupId>org.cipango</groupId>
        <artifactId>maven<artifactId>cipango-cipangomaven-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.sipserver.bio.UdpConnector">
              <port>5060</port>
            </sipConnector>
          </sipConnectors>
          <messageLog implementation="org.cipango.server.log.MessageLogFileMessageLog">
            <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.

Code Block
xml
xml
titlepom.xml

<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>
Code Block
xml
xml
titleetc/diameter-mavenPlugin.xml

<?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>