<?xml version="1.0" encoding="UTF-8"?>
<!--
  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at
  
  http://www.apache.org/licenses/LICENSE-2.0
  
  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.
-->
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
  <parent>
    <groupId>org.apache</groupId>
    <artifactId>apache</artifactId>
    <version>9</version>
  </parent>
  <modelVersion>4.0.0</modelVersion>

  <groupId>org.apache.activemq</groupId>
  <artifactId>apollo-project</artifactId>
  <version>1.0</version>
  <packaging>pom</packaging>

  <name>Apache ActiveMQ Apollo Project</name>
  <inceptionYear>2005</inceptionYear>

  <properties>

    <!-- base url for site deployment.  See distribution management for full url.  Override this in settings.xml for staging -->
    <website-base-url>scp://people.apache.org/x1/www/activemq.apache.org/apollo</website-base-url>

    <target-dir>target</target-dir>
    <projectName>Apache Apollo</projectName>

    <!-- dependencies that track scala version changes -->
    <scala-version>2.9.1</scala-version>
    <scalatest-version>1.6.1</scalatest-version>
    
    <activemq-version>5.4.1</activemq-version>
    <servicemix.kernel.version>1.1.0</servicemix.kernel.version>
    <spring-version>2.5.5</spring-version>
    <activesoap-version>1.3</activesoap-version>
    <annogen-version>0.1.0</annogen-version>
    <ant-version>1.6.2</ant-version>
    <aopalliance-version>1.0</aopalliance-version>
    <axion-version>1.0-M3-dev</axion-version>
    <axis-version>1.2-RC1</axis-version>

    <cglib-version>2.0</cglib-version>
    <commons-beanutils-version>1.6.1</commons-beanutils-version>
    <commons-collections-version>3.2.1</commons-collections-version>
    <openjpa-version>1.2.0</openjpa-version>
    <commons-dbcp-version>1.2.2</commons-dbcp-version>
    <commons-httpclient-version>3.1</commons-httpclient-version>
    <commons-logging-version>1.1</commons-logging-version>
    <commons-pool-version>1.4</commons-pool-version>
    <commons-primitives-version>1.0</commons-primitives-version>
    <directory-asn1-version>0.3.2</directory-asn1-version>
    <directory-kerboros-version>0.5</directory-kerboros-version>
    <directory-mina-version>0.7.3</directory-mina-version>
    <directory-version>1.5.4</directory-version>
    <geronimo-version>1.0</geronimo-version>
    <howl-version>0.1.8</howl-version>
    <hsqldb-version>1.7.2.2</hsqldb-version>
    <jdom-version>1.0</jdom-version>
    <jetty-version>7.1.6.v20100715</jetty-version>
    <jmock-version>1.0.1</jmock-version>
    <junit-version>4.7</junit-version>
    <jxta-version>2.0</jxta-version>
    <log4j-version>1.2.14</log4j-version>
    <nlog4j-version>1.5.2</nlog4j-version>
    <org-apache-derby-version>10.1.3.1</org-apache-derby-version>
    <p2psockets-version>1.1.2</p2psockets-version>
    <regexp-version>1.3</regexp-version>
    <rome-version>0.8</rome-version>

    <slf4j-version>1.6.1</slf4j-version>

    <jaxb-api-version>2.1</jaxb-api-version>
    <jaxb-version>2.1.6</jaxb-version>
    <xjc-version>2.1.10.1</xjc-version>
    <stax-api-version>1.0.1</stax-api-version>
    <stax-version>1.2.0</stax-version>

    <xalan-version>2.6.0</xalan-version>
    <xmlbeans-version>2.0.0-beta1</xmlbeans-version>
    <xmlpull-version>1.1.3.4d_b4_min</xmlpull-version>
    <xstream-version>1.3.1</xstream-version>
    <xbean-version>3.4</xbean-version>
    <felix-version>1.0.0</felix-version>

    <hawtdispatch-version>1.8</hawtdispatch-version>
    <hawtbuf-version>1.8</hawtbuf-version>
    <stompjms-version>1.8</stompjms-version>
    
    <bdb-version>4.1.10</bdb-version>

    <leveldb-api-version>0.1</leveldb-api-version>
    <leveldb-version>0.2</leveldb-version>
    <leveldbjni-version>1.1</leveldbjni-version>

    <jasypt-version>1.6</jasypt-version>

    <scalate-version>1.5.3</scalate-version>
    <scalamd-version>1.5</scalamd-version>

    <servlet-api-version>2.5</servlet-api-version>
    <jackson-version>1.7.5</jackson-version>
    <logback-version>0.9.24</logback-version>
    <jersey-version>1.5</jersey-version>
    <snakeyaml-version>1.7</snakeyaml-version>
      
    <!-- maven plugin versions -->
    <maven-scala-plugin-version>2.15.2</maven-scala-plugin-version>
    <maven-surefire-plugin-version>2.4.3</maven-surefire-plugin-version>
    <jetty-plugin-version>7.0.1.v20091125</jetty-plugin-version>
    
    <!-- disable unique version timestamps in snapshots -->
    <uniqueVersion>false</uniqueVersion>
    
    <josql-version>1.5</josql-version>
    
    <!-- osgi stuff -->
    <osgi-version>4.2.0</osgi-version>
    <karaf-version>2.2.2</karaf-version>
    <features-maven-plugin-version>2.1.0</features-maven-plugin-version>
    
    <osgi.fragment.host>${project.groupId}.apollo-broker</osgi.fragment.host>
    <mvnplugins-version>1.15</mvnplugins-version>
  </properties>

  <prerequisites>
    <maven>3.0</maven>
  </prerequisites>

  <url>http://activemq.apache.org/apollo</url>

  <mailingLists>
    <mailingList>
      <name>Development List</name>
      <subscribe>dev-subscribe@activemq.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@activemq.apache.org</unsubscribe>
      <post>dev@activemq.apache.org</post>
    </mailingList>
  </mailingLists>

  <distributionManagement>
    <site>
      <!-- this needs to match a server in your settings.xml with upload settings -->
      <id>apollo-website</id>
      <url>${website-base-url}/versions/${project.version}/maven/</url>
    </site>
  </distributionManagement>

  <modules>
    <module>apollo-boot</module>
    <module>apollo-scala</module>
    <module>apollo-util</module>
    <module>apollo-broker</module>
    <module>apollo-selector</module>
    <module>apollo-leveldb</module>
    <module>apollo-bdb</module>
    <module>apollo-dto</module>
    <module>apollo-stomp</module>
    <module>apollo-web</module>
    <module>apollo-cli</module>
    <module>apollo-website</module>
    <module>apollo-openwire-generator</module>
    <module>apollo-openwire</module>
    <module>apollo-distro</module>
  </modules>

  <scm>
    <connection>scm:svn:https://svn.apache.org/repos/asf/activemq/activemq-apollo/tags/apollo-project-1.0</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/activemq/activemq-apollo/tags/apollo-project-1.0</developerConnection>
    <url>http://svn.apache.org/viewvc/activemq/activemq-apollo/tags/apollo-project-1.0</url>
  </scm>

  <dependencyManagement>
    <dependencies>

      <!-- =============================== -->
      <!-- Setup default exclusions -->
      <!-- =============================== -->
      <dependency>
        <groupId>commons-logging</groupId>
        <artifactId>commons-logging</artifactId>
        <version>${commons-logging-version}</version>
        <exclusions>
          <exclusion>
            <groupId>avalon-framework</groupId>
            <artifactId>avalon-framework</artifactId>
          </exclusion>
          <exclusion>
            <groupId>logkit</groupId>
            <artifactId>logkit</artifactId>
          </exclusion>
          <exclusion>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
          </exclusion>
          <exclusion>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      
      <dependency>
        <groupId>com.thoughtworks.xstream</groupId>
        <artifactId>xstream</artifactId>
        <version>${xstream-version}</version>
        <exclusions>
          <exclusion>
            <!-- xom is an optional dependency of xstream and not ASF compatible. -->
            <groupId>xom</groupId>
            <artifactId>xom</artifactId>
          </exclusion>
        </exclusions>
      </dependency>


    </dependencies>
  </dependencyManagement>

  <build>
  
    <!-- to allow the eclipse profile to use a different target directory -->
    <outputDirectory>${basedir}/${target-dir}/classes</outputDirectory>
    <testOutputDirectory>${basedir}/${target-dir}/test-classes</testOutputDirectory>

    <pluginManagement>
      <plugins>
      <!-- 
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-eclipse-plugin</artifactId>
          <version>2.7</version>
          <configuration>
            <downloadSources>true</downloadSources>
            <downloadJavadocs>true</downloadJavadocs>
            <outputDirectory>${basedir}/eclipse-classes</outputDirectory>
          </configuration>
        </plugin>
       -->
        <plugin>
          <groupId>com.sun.tools.jxc.maven2</groupId>
          <artifactId>maven-jaxb-schemagen-plugin</artifactId>
          <version>1.3-dev</version>
        </plugin>
        <plugin>
          <groupId>org.apache.servicemix.tooling</groupId>
          <artifactId>features-maven-plugin</artifactId>
          <version>1.0</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-antrun-plugin</artifactId>
          <version>1.1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-assembly-plugin</artifactId>
          <version>2.2-beta-4</version>
          <configuration>
            <tarLongFileMode>gnu</tarLongFileMode>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-stage-plugin</artifactId>
          <version>1.0-alpha-1</version>
        </plugin>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-surefire-plugin</artifactId>
          <version>${maven-surefire-plugin-version}</version>
          <configuration>
            <redirectTestOutputToFile>false</redirectTestOutputToFile>
            <forkMode>once</forkMode>
            <argLine>-enableassertions</argLine>
            <failIfNoTests>false</failIfNoTests>
            <workingDirectory>${project.build.directory}</workingDirectory>
            <includes>
              <include>**/*Test.java</include>
              <include>**/*TestCase.java</include>
            </includes>
            <excludes>
              <exclude>**/legacy/**</exclude>
              <exclude>**/jaxb/**</exclude>
            </excludes>
            <!--
            <parallel>methods</parallel>
            <threadCount>16</threadCount>
            -->
          </configuration>
        </plugin>
        
        <!-- <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>ianal-maven-plugin</artifactId>
          <version>1.0-alpha-1</version>
        </plugin> -->
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>javacc-maven-plugin</artifactId>
          <version>2.4.1</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>rat-maven-plugin</artifactId>
          <version>1.0-alpha-3</version>
          <configuration>
            <excludeSubProjects>false</excludeSubProjects>
          </configuration>
        </plugin>
        <plugin>
          <groupId>org.mortbay.jetty</groupId>
          <artifactId>maven-jetty-plugin</artifactId>
          <version>${jetty-version}</version>
        </plugin>
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>build-helper-maven-plugin</artifactId>
          <version>1.2</version>
        </plugin>
        <!-- 
        <plugin>
          <groupId>org.codehaus.mojo</groupId>
          <artifactId>cobertura-maven-plugin</artifactId>
          <version>2.0</version>
          <configuration>
          </configuration>
        </plugin> 
        -->
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-release-plugin</artifactId>
          <version>2.1</version>
          <configuration>
            <useReleaseProfile>false</useReleaseProfile>
            <goals>deploy</goals>
            <arguments>-Papache-release</arguments>
            <autoVersionSubmodules>true</autoVersionSubmodules>
          </configuration>
        </plugin>
        
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
          <optimize>true</optimize>
          <debug>true</debug>
          <showDeprecation>true</showDeprecation>
          <showWarnings>true</showWarnings>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-enforcer-plugin</artifactId>
        <executions>
          <execution>
            <phase>validate</phase>
            <goals>
              <goal>enforce</goal>
            </goals>
            <configuration>
              <rules>
                <requireMavenVersion>
                  <version>[2.0.10,)</version>
                </requireMavenVersion>
              </rules>
            </configuration>
          </execution>
        </executions>
      </plugin>
      
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-site-plugin</artifactId>
        <version>3.0</version>
        <executions>
         <execution>
           <id>attach-descriptor</id>
           <goals>
             <goal>attach-descriptor</goal>
           </goals>
         </execution>
       </executions>
       
       <configuration>
          <reportPlugins>
            <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-project-info-reports-plugin</artifactId>
              <version>2.4</version>
              <configuration>
                <dependencyDetailsEnabled>false</dependencyDetailsEnabled>
                <dependencyLocationsEnabled>false</dependencyLocationsEnabled>
              </configuration>
              <!-- simpler configuration without reportSets available for usual cases -->
              <reports>
                <report>index</report>
                <report>dependencies</report>
                <report>issue-tracking</report>
                <report>license</report>
                <report>mailing-list</report>
                <report>modules</report>
                <report>project-team</report>
                <report>plugin-management</report>
                <report>plugins</report>
                <report>scm</report>
              </reports>
            </plugin>
            <plugin>
              <groupId>org.scala-tools</groupId>
              <artifactId>maven-scala-plugin</artifactId>
              <configuration>
                <scalaVersion>${scala-version}</scalaVersion>
              </configuration>
            </plugin>
          </reportPlugins>
        </configuration>
      </plugin>
      
      <!-- <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <version>2.3.4</version>
        <extensions>true</extensions>
        <inherited>true</inherited>
        <configuration>
          <instructions>
            <Fragment-Host>${osgi.fragment.host}</Fragment-Host>
            <Implementation-Title>${project.artifactId}</Implementation-Title>
            <Implementation-Version>${project.version}</Implementation-Version>
            <Bundle-Name>${project.artifactId}</Bundle-Name>
            <Bundle-SymbolicName>${project.groupId}.${project.artifactId}</Bundle-SymbolicName>
            <Export-Package>{local-packages};version=${project.version};-noimport:=true</Export-Package>
            <Import-Package>*</Import-Package>
            <Private-Package>!*</Private-Package>
            <_versionpolicy-impl>[$(version;==;$(@)),$(version;=+;$(@)))</_versionpolicy-impl>
            <_versionpolicy-uses>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy-uses>
            <_versionpolicy>[$(version;==;$(@)),$(version;+;$(@)))</_versionpolicy>
            <_failok>false</_failok>
          </instructions>
        </configuration>
      </plugin> -->
      
    </plugins>
  </build>

  <profiles>
    
    <!-- Integration tests.  Take a long time to run so, disabled by default -->
    <profile>
      <id>itests</id>
      <modules>
        <module>apollo-itests</module>
      </modules>
    </profile>

    <!-- to build the unstable modules -->
    <profile>
      <id>unstable</id>
      <modules>
      </modules>
    </profile>
    
    <!-- 
        Do a license check by running       : mvn -P license license:check  
        UPdate the license check by running : mvn -P license license:format  
      -->
    <profile>
      <id>license</id>
      <build>
        <plugins>
          <plugin>
            <groupId>com.mycila.maven-license-plugin</groupId>
            <artifactId>maven-license-plugin</artifactId>
            <version>1.6.0</version>
            <configuration>
              <quiet>false</quiet>
              <header>src/main/resources/license-header.txt</header>
              <aggregate>true</aggregate>
              <includes>
                  <include>src/**</include>
                  <include>**/pom.xml</include>
              </includes>
              <excludes>
                <!-- can remove once http://code.google.com/p/maven-license-plugin/issues/detail?id=72 is resolved -->
                <exclude>**/*.scaml</exclude>
                <exclude>**/LICENSE.txt</exclude>
                <exclude>**/LICENSE</exclude>
                <exclude>**/.svn/**</exclude>
            
                <!-- ignore files produced during a build -->
                <exclude>**/target/**</exclude>
            
                <!-- ignore binary files -->
                <exclude>**/*.jpg</exclude>
                <exclude>**/*.png</exclude>
                <exclude>**/*.gif</exclude>
                <exclude>**/*.ico</exclude>
                <exclude>**/*.keystore</exclude>
                
                <exclude>**/*.keystore</exclude>
                
                <exclude>src/scripts/jquery.js</exclude>
                <exclude>src/main/resources/org/apache/activemq/apollo/cli/commands/etc/black-list.txt</exclude>
                <exclude>src/main/filtered-resources/org/apache/activemq/apollo/cli/banner.txt</exclude>
                <exclude>src/main/filtered-resources/org/apache/activemq/apollo/cli/commands/version.txt</exclude>
                <exclude>src/main/filtered-resources/org/apache/activemq/apollo/cli/tips.txt</exclude>
                <exclude>src/main/filtered-resources/org/apache/activemq/apollo/broker/version.txt</exclude>

              </excludes>
              <useDefaultExcludes>false</useDefaultExcludes>
              <mapping>
                  <jj>JAVADOC_STYLE</jj>
                  <proto>DOUBLESLASH_STYLE</proto>
                  <index>SCRIPT_STYLE</index>
              </mapping>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>        
          </plugin>
        </plugins>
      </build>
    </profile>
    
    <!--
      To generate a graph of the project dependencies, run: mvn -P graph graph:project
    -->
    <profile>
      <id>graph</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.fusesource.mvnplugins</groupId>
            <artifactId>maven-graph-plugin</artifactId>
            <version>${mvnplugins-version}</version>
          </plugin>
        </plugins>
      </build>
    </profile>

    <profile>
      <id>eclipse</id>
      <properties>
        <target-dir>eclipse-classes</target-dir>
      </properties>
      <build>
        <testResources>
          <testResource>
            <directory>${basedir}/src/test/ide-resources</directory>
            <includes><include>**</include></includes>
          </testResource>
        </testResources>
      </build>
    </profile>

    <profile>
      <id>apache-release</id>
      <activation>
        <property>
          <name>apache-release</name>
        </property>
      </activation>
      <properties>
        <test>false</test>
      </properties>
      <modules>
        <module>apollo-itests</module>
      </modules>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-assembly-plugin</artifactId>
            <executions>
              <execution>
                <goals>
                  <goal>single</goal>
                </goals>
                <phase>package</phase>
                <configuration>
                  <runOnlyAtExecutionRoot>true</runOnlyAtExecutionRoot>
                  <descriptorRefs>
                    <descriptorRef>
                      source-release
                    </descriptorRef>
                  </descriptorRefs>
                </configuration>
              </execution>
            </executions>
            <dependencies>
              <dependency>
                <!-- apache version not yet released -->
                <!--<groupId>org.apache</groupId>-->
                <groupId>org.apache.geronimo.genesis</groupId>
                <artifactId>apache-source-release-assembly-descriptor</artifactId>
                <!-- apache version not yet known -->
                <version>2.0</version>
              </dependency>
            </dependencies>
          </plugin>
          
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-surefire-plugin</artifactId>
            <version>${maven-surefire-plugin-version}</version>
            <configuration>
              <test>false</test>
            </configuration>
          </plugin>
          
          <!-- Generate the Scala Docs so that they can be included in the javadoc artifact -->
          <plugin>
            <groupId>org.scala-tools</groupId>
            <artifactId>maven-scala-plugin</artifactId>
            <version>${maven-scala-plugin-version}</version>
            <executions>
              <execution>
                <id>doc</id>
                <phase>process-classes</phase>
                <goals>
                  <goal>doc</goal>
                </goals>
                <configuration>
                  <jvmArgs>
                    <jvmArg>-Xmx1024m</jvmArg>
                    <jvmArg>-Xss8m</jvmArg>
                  </jvmArgs>
                  <scalaVersion>${scala-version}</scalaVersion>
                </configuration>                
              </execution>
            </executions>
          </plugin>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-jar-plugin</artifactId>
            <version>2.3.1</version>
            <executions>
              <execution>
                <id>scaladoc</id>
                <phase>package</phase>
                <goals>
                  <goal>jar</goal>
                </goals>
                <configuration>
                  <classesDirectory>${project.build.directory}/site/scaladocs</classesDirectory>
                  <classifier>scaladoc</classifier>
                </configuration>                
              </execution>
            </executions>
          </plugin>
          
        </plugins> 
      </build>
    </profile>

    <profile>
      <id>undercover</id>
        <repositories>
          <repository>
            <id>zact</id>
            <url>http://zact.googlecode.com/svn/maven/repository</url>
          </repository>
        </repositories>
        <pluginRepositories>
          <pluginRepository>
            <id>zact</id>
            <url>http://zact.googlecode.com/svn/maven/repository</url>
          </pluginRepository>
        </pluginRepositories>
        <build>
          <plugins>
            <plugin>
              <groupId>undercover</groupId>
              <artifactId>undercover-maven-plugin</artifactId>
              <version>0.8.4</version>
              <executions>
                <execution>
                  <phase>test</phase>
                  <goals>
                    <goal>undercover</goal>
                  </goals>
                </execution>
              </executions>
            </plugin>
          </plugins>
        </build>      
    </profile>
  </profiles>
    
  <repositories>

    <repository>
      <id>apache.snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <snapshots><enabled>true</enabled></snapshots>
      <releases><enabled>false</enabled></releases>
    </repository>

    <repository>
      <id>fusesource-snapshots</id>
      <url>http://repo.fusesource.com/nexus/content/groups/public-snapshots</url>
      <releases><enabled>false</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </repository>

    <repository>
      <id>java.net.m2</id>
      <url>http://download.java.net/maven/2</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <repository>
      <id>glassfish-repo-archive</id>
      <url>http://maven.glassfish.org/content/groups/glassfish</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>

    <repository>
      <id>scala-tools.org-releases</id>
      <url>http://scala-tools.org/repo-releases</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>
    <repository>
      <id>scala-tools.org-snapshots</id>
      <url>http://scala-tools.org/repo-snapshots</url>
      <snapshots><enabled>true</enabled></snapshots>
      <releases><enabled>false</enabled></releases>
    </repository>

    <repository>
      <id>oracleReleases</id>
      <url>http://download.oracle.com/maven</url>
      <layout>default</layout>
    </repository>
  
	  <repository>
      <id>sonatype-nexus-snapshots</id>
      <name>Sonatype Nexus Snapshots</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
      <releases><enabled>false</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
	  </repository>

    <!-- for net.sf.josql dependency not yet in central -->
    <repository>
      <id>com.fusesource.m2</id>
      <url>http://repo.fusesource.com/nexus/content/groups/public/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </repository>

  </repositories>

  <pluginRepositories>

    <pluginRepository>
      <id>com.fusesource.m2</id>
      <url>http://repo.fusesource.com/nexus/content/groups/public/</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </pluginRepository>

    <pluginRepository>
      <id>apache-snapshots</id>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <snapshots><enabled>true</enabled></snapshots>
      <releases><enabled>false</enabled></releases>
    </pluginRepository>

    <pluginRepository>
      <id>fusesource-snapshots</id>
      <url>http://repo.fusesource.com/nexus/content/groups/public-snapshots</url>
      <releases><enabled>false</enabled></releases>
      <snapshots><enabled>true</enabled></snapshots>
    </pluginRepository>

    <pluginRepository>
      <id>scala-tools.org-releases</id>
      <url>http://scala-tools.org/repo-releases</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </pluginRepository>

    <pluginRepository>
      <id>scala-tools.org-snapshots</id>
      <url>http://scala-tools.org/repo-snapshots</url>
      <snapshots><enabled>true</enabled></snapshots>
      <releases><enabled>false</enabled></releases>
    </pluginRepository>

    <pluginRepository>
      <id>java.net-releases</id>
      <url>http://download.java.net/maven/2</url>
      <releases><enabled>true</enabled></releases>
      <snapshots><enabled>false</enabled></snapshots>
    </pluginRepository>

  </pluginRepositories>

</project>
