<!--

    Copyright (C) 2010 FuseSource, Corp. All rights reserved.
    http://fusesource.com

    The software in this package is published under the terms of the AGPL license
    a copy of which has been included with this distribution in the license.txt file.

-->

<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">
  <modelVersion>4.0.0</modelVersion>
  
  <parent>
    <groupId>org.fusesource</groupId>
    <artifactId>fuse-project</artifactId>
    <version>7.0.0.fuse-beta-051</version>
  </parent>

  <groupId>com.fusesource.fmc</groupId>
  <artifactId>fmc-project</artifactId>
  <packaging>pom</packaging>
  <version>0.9.8-beta</version>

  <name>${project.artifactId}</name>

  <url>http://fon.fusesource.org/</url>

  <organization>
    <name>FuseSource</name>
    <url>http://fusesource.com</url>
  </organization>

  <licenses>
    <license>
      <name>GNU AFFERO GENERAL PUBLIC LICENSE (AGPL) Version 3.0</name>
      <url>http://www.fsf.org/licensing/licenses/agpl.html</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <prerequisites>
    <maven>2.2.1</maven>
  </prerequisites>

  <properties>

    <fmc-port>8107</fmc-port>

    <forge-project-id>fon</forge-project-id>

    <!-- OSGi bundles properties -->
    <fon.osgi.import.fon.version>version="[$(version;==;${fon.osgi.version}),$(version;=+;${fon.osgi.version}))"</fon.osgi.import.fon.version>
    <fon.osgi.import.strict.version>version="[$(version;===;${fon.osgi.version}),$(version;==+;${fon.osgi.version}))"</fon.osgi.import.strict.version>
    <fon.osgi.import.default.version>[$(version;==;$(@)),$(version;+;$(@)))</fon.osgi.import.default.version>
    <fon.osgi.import.defaults>
      org.springframework.*;version="[3,4)",
      org.apache.commons.logging.*;version="[1.1,2)",
      org.apache.camel.*;version="[2.8,3)",
    </fon.osgi.import.defaults>
    <fon.osgi.import.before.defaults />
    <fon.osgi.import.additional />
    <fon.osgi.import.pkg>
      com.fusesource.fmc.*;${fon.osgi.import.fon.version},
      ${fon.osgi.import.before.defaults},
      ${fon.osgi.import.defaults},
      ${fon.osgi.import.additional},
      *
    </fon.osgi.import.pkg>
    <fon.osgi.activator />
    <fon.osgi.failok>false</fon.osgi.failok>
    <fon.osgi.private.pkg>!*</fon.osgi.private.pkg>
    <fon.osgi.export>org.fusesource.*;version=${fon.osgi.version};-noimport:=true</fon.osgi.export>
    <fon.osgi.split.pkg>-split-package:=first</fon.osgi.split.pkg>
    <fon.osgi.import>${fon.osgi.import.pkg}</fon.osgi.import>
    <fon.osgi.dynamic />
    <fon.osgi.symbolic.name>${project.groupId}.${project.artifactId}</fon.osgi.symbolic.name>
    <fon.osgi.exclude.dependencies>false</fon.osgi.exclude.dependencies>
    <fon.osgi.resource>{maven-resources}</fon.osgi.resource>
    <fon.osgi.services.export />
    <fon.osgi.embed.dependency>!*</fon.osgi.embed.dependency>



    <!-- environment stuff -->
    <scalate.editor>${env.SCALATE_EDITOR}</scalate.editor>
    <scalate.mode>development</scalate.mode>
    <scalate.workdir>${basedir}/target/scalate</scalate.workdir>

    <fabric.version>7.0.0.fuse-beta-051</fabric.version>
    <insight-version>${fabric.version}</insight-version>
    <fab-version>${fabric.version}</fab-version>
    <mq-fabric-version>${fabric.version}</mq-fabric-version>
    <fabric-virt-version>${fabric.version}</fabric-virt-version>

	   <!-- lets watch if these need to migrate into fabric.. -->
    <coffeebar-version>0.2.11</coffeebar-version>
	  <hadoop-version>0.20.2</hadoop-version>
    <!--
    <hbase-version>0.91.0-SNAPSHOT</hbase-version>
    -->
    <nmr-version>${servicemix-nmr-version}</nmr-version>
    <pax-exam-version>1.2.4</pax-exam-version>
    <pax-tiny-bundle-version>1.3.1</pax-tiny-bundle-version>

  </properties>


  <distributionManagement>
    <repository>
      <id>fusesource-nexus-staging</id>
      <name>Fusesource Release Repository</name>
      <url>http://repo.fusesource.com/nexus/service/local/staging/deploy/maven2</url>
    </repository>
    <snapshotRepository>
      <id>fusesource-nexus-snapshots</id>
      <name>Fusesource Nexus Snapshots</name>
      <!--
            <url>http://repo.fusesource.com/nexus/content/repositories/snapshots</url>
      -->
      <url>http://repo.fusesource.com/nexus/content/repositories/subscriber-snapshot</url>
    </snapshotRepository>
    <site>
      <id>website.fusesource.org</id>
      <name>website</name>
      <url>dav:http://fusesource.com/forge/dav/fon/maven/${project.version}</url>
    </site>
  </distributionManagement>
  <dependencies>

    <!-- test -->
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>${junit-version}</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <modules>
    <module>fmc-activemq-facade</module>
    <module>fmc-camel-facade</module>
    <module>fmc-servicemix-facade</module>
    <module>fmc-activemq</module>
    <module>fmc-ldap</module>
    <module>fmc-scala</module>
    <module>fmc-license</module>
    <module>fmc-webui</module>
    <module>fmc-itests</module>
    <module>fmc-restjmx</module>
    <module>fmc-maven</module>
    <module>fmc-hadoop</module>
    <module>fmc-docs</module>
    <module>fmc-branding</module>
    <module>fmc-distro</module>

    <!--
    TODO enable when we can get the CI build to work!!!
    <module>fmc-monitor</module>
    -->
    <module>samples/camel-activemq-web</module>
  </modules>

  <build>
    <defaultGoal>install</defaultGoal>

    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.felix</groupId>
          <artifactId>maven-bundle-plugin</artifactId>
          <version>${maven-bundle-plugin-version}</version>
          <extensions>true</extensions>
          <configuration>
            <excludeDependencies>${fon.osgi.exclude.dependencies}</excludeDependencies>
            <instructions>
              <Bundle-Name>${project.artifactId}</Bundle-Name>
              <Bundle-SymbolicName>${fon.osgi.symbolic.name}</Bundle-SymbolicName>
              <Bundle-Activator>${fon.osgi.activator}</Bundle-Activator>
              <Export-Package>${fon.osgi.export}</Export-Package>
              <Import-Package>${fon.osgi.import}</Import-Package>
              <DynamicImport-Package>${fon.osgi.dynamic}</DynamicImport-Package>
              <Private-Package>${fon.osgi.private.pkg}</Private-Package>
              <Implementation-Title>FuseSource FON</Implementation-Title>
              <Implementation-Version>${project.version}</Implementation-Version>
              <Include-Resource>${fon.osgi.resource}</Include-Resource>
              <_versionpolicy>${fon.osgi.import.default.version}</_versionpolicy>
              <_failok>${fon.osgi.failok}</_failok>
              <Export-Service>${fon.osgi.services.export}</Export-Service>
              <Embed-Dependency>${fon.osgi.embed.dependency}</Embed-Dependency>
            </instructions>
          </configuration>
        </plugin>
      </plugins>
    </pluginManagement>

    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.0.2</version>
        <configuration>
          <source>${maven.compiler.source}</source>
          <target>${maven.compiler.target}</target>
        </configuration>
      </plugin>


      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-deploy-plugin</artifactId>
        <version>2.5</version>
      </plugin>


      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>${surefire-version}</version>
        <configuration>
          <systemPropertyVariables>
            <scalate.package.resources>${scalate.package.resources}</scalate.package.resources>
            <scalate.generate.src>${scalate.generate.src}</scalate.generate.src>
          </systemPropertyVariables>
          
          <failIfNoTests>false</failIfNoTests>
          <forkMode>once</forkMode>
          <!-- these settings are mandatory to avoid SureFire giving a bogus system property to the web container -->
          <useSystemClassLoader>false</useSystemClassLoader>
          <useManifestOnlyJar>false</useManifestOnlyJar>
          <includes>
            <include>**/*Test.*</include>
          </includes>
          <excludes>
            <exclude>**/ParseFromToToTest.*</exclude>
          </excludes>
        </configuration>
      </plugin>

      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-jar-plugin</artifactId>
        <version>2.2</version>
        <configuration>
          <archive>
            <manifest>
              <addDefaultImplementationEntries>true</addDefaultImplementationEntries>
              <addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
            </manifest>
          </archive>
        </configuration>
      </plugin>

        <plugin>
            <groupId>org.apache.felix</groupId>
            <artifactId>maven-bundle-plugin</artifactId>
            <inherited>true</inherited>
            <executions>
                <execution>
                    <id>cleanVersions</id>
                    <phase>generate-sources</phase>
                    <goals>
                        <goal>cleanVersions</goal>
                    </goals>
                    <configuration>
                        <versions>
                            <fon.osgi.version>${project.version}</fon.osgi.version>
                        </versions>
                    </configuration>
                </execution>
            </executions>
        </plugin>
    </plugins>
  </build>

  <repositories>
    <repository>
      <id>fusesource.m2</id>
      <name>FuseSource Community Release Repository</name>
      <url>http://repo.fusesource.com/nexus/content/repositories/public</url>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
      <releases>
        <enabled>true</enabled>
      </releases>
    </repository>
    <repository>
      <id>fusesource.m2-snapshot</id>
      <name>FuseSource Community Snapshot Repository</name>
      <url>http://repo.fusesource.com/nexus/content/repositories/snapshots</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>
    <repository>
      <id>fusesource.nexus.m2-snapshot</id>
      <name>FuseSource Community Snapshot Repository</name>
      <url>http://repo.fusesource.com/nexus/content/groups/public-snapshots</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </repository>

  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>fusesource.nexus.m2-snapshot</id>
      <name>FuseSource Community Snapshot Repository</name>
      <url>http://repo.fusesource.com/nexus/content/groups/public-snapshots</url>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
      <releases>
        <enabled>false</enabled>
      </releases>
    </pluginRepository>
    
    <pluginRepository>
      <id>apache.snapshots</id>
      <name>Apache Development Snapshot Repository</name>
      <url>https://repository.apache.org/content/repositories/snapshots</url>
      <releases>
        <enabled>false</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
    
  </pluginRepositories>


  <dependencyManagement>
      <dependencies>
          <!-- Scalate -->
          <dependency>
              <groupId>org.fusesource.scalate</groupId>
              <artifactId>scalate-core</artifactId>
              <version>${scalate-version}</version>
          </dependency>
          <dependency>
              <groupId>org.fusesource.scalate</groupId>
              <artifactId>scalate-guice</artifactId>
              <version>${scalate-version}</version>
          </dependency>
          <dependency>
              <groupId>org.fusesource.scalate</groupId>
              <artifactId>scalate-page</artifactId>
              <version>${scalate-version}</version>
          </dependency>
          <dependency>
              <groupId>org.fusesource.scalate</groupId>
              <artifactId>scalate-test</artifactId>
              <version>${scalate-version}</version>
          </dependency>
          <dependency>
              <groupId>org.fusesource.scalate</groupId>
              <artifactId>scalate-util</artifactId>
              <version>${scalate-version}</version>
          </dependency>
          <dependency>
              <groupId>org.fusesource.scalate</groupId>
              <artifactId>scalate-wikitext</artifactId>
              <version>${scalate-version}</version>
          </dependency>
          <!-- Jetty -->
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-continuation</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-http</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-io</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-security</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-server</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-servlet</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-util</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-webapp</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-websocket</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <dependency>
              <groupId>org.eclipse.jetty</groupId>
              <artifactId>jetty-xml</artifactId>
              <version>${jetty-version}</version>
          </dependency>
          <!-- Jersey -->
          <dependency>
              <groupId>com.sun.jersey</groupId>
              <artifactId>jersey-core</artifactId>
              <version>${jersey-version}</version>
          </dependency>
          <dependency>
              <groupId>com.sun.jersey</groupId>
              <artifactId>jersey-json</artifactId>
              <version>${jersey-version}</version>
          </dependency>
          <dependency>
              <groupId>com.sun.jersey</groupId>
              <artifactId>jersey-server</artifactId>
              <version>${jersey-version}</version>
          </dependency>
          <dependency>
              <groupId>com.sun.jersey</groupId>
              <artifactId>jersey-servlet</artifactId>
              <version>${jersey-version}</version>
          </dependency>
          <dependency>
              <groupId>com.sun.jersey</groupId>
              <artifactId>jersey-client</artifactId>
              <version>${jersey-version}</version>
          </dependency>
          <!-- OSGi -->
          <dependency>
              <groupId>org.osgi</groupId>
              <artifactId>org.osgi.core</artifactId>
              <version>${osgi-version}</version>
          </dependency>
          <dependency>
              <groupId>org.osgi</groupId>
              <artifactId>org.osgi.compendium</artifactId>
              <version>${osgi-version}</version>
          </dependency>
          <!-- Scala -->
          <dependency>
              <groupId>org.scala-lang</groupId>
              <artifactId>scala-library</artifactId>
              <version>${scala-version}</version>
          </dependency>
          <dependency>
              <groupId>org.scala-lang</groupId>
              <artifactId>scala-compiler</artifactId>
              <version>${scala-version}</version>
          </dependency>

          <!-- OSGi Scala distro -->
          <dependency>
              <groupId>com.weiglewilczek.scala-lang-osgi</groupId>
              <artifactId>scala-library</artifactId>
              <version>${scala-osgi-version}</version>
          </dependency>

          <!-- Scalatest -->
          <dependency>
              <groupId>org.scalatest</groupId>
              <artifactId>scalatest_2.9.1</artifactId>
              <version>${scalatest-version}</version>
          </dependency>
          <!-- LogBack -->
          <dependency>
              <groupId>ch.qos.logback</groupId>
              <artifactId>logback-classic</artifactId>
              <version>${logback-version}</version>
          </dependency>
          <!-- Servlet API -->
          <dependency>
              <groupId>javax.servlet</groupId>
              <artifactId>servlet-api</artifactId>
              <version>${servlet-api-version}</version>
          </dependency>
          <!-- JAXB -->
          <dependency>
              <groupId>com.sun.xml.bind</groupId>
              <artifactId>jaxb-impl</artifactId>
              <version>${jaxb-version}</version>
          </dependency>
          <!-- Jackson -->
          <dependency>
              <groupId>org.codehaus.jackson</groupId>
              <artifactId>jackson-core-asl</artifactId>
              <version>${jackson-version}</version>
          </dependency>
          <dependency>
              <groupId>org.codehaus.jackson</groupId>
              <artifactId>jackson-mapper-asl</artifactId>
              <version>${jackson-version}</version>
          </dependency>
          <dependency>
              <groupId>org.codehaus.jackson</groupId>
              <artifactId>jackson-jaxrs</artifactId>
              <version>${jackson-version}</version>
          </dependency>
          <dependency>
              <groupId>org.codehaus.jackson</groupId>
              <artifactId>jackson-xc</artifactId>
              <version>${jackson-version}</version>
          </dependency>
          <!-- LinkedIn ZooKeeper -->
          <dependency>
              <groupId>org.linkedin</groupId>
              <artifactId>org.linkedin.zookeeper-impl</artifactId>
              <version>${linkedin-zookeeper-version}</version>
              <exclusions>
                  <exclusion>
                      <groupId>com.sun.jdmk</groupId>
                      <artifactId>jmxtools</artifactId>
                  </exclusion>
              </exclusions>
          </dependency>
          <!-- Log4j -->
          <dependency>
              <groupId>log4j</groupId>
              <artifactId>log4j</artifactId>
              <version>1.2.16</version>
          </dependency>
          <!-- Karaf version -->
          <dependency>
              <groupId>org.apache.karaf.shell</groupId>
              <artifactId>org.apache.karaf.shell.console</artifactId>
              <version>${karaf-version}</version>
          </dependency>
          <dependency>
              <groupId>org.apache.karaf.features</groupId>
              <artifactId>org.apache.karaf.features.core</artifactId>
              <version>${karaf-version}</version>
          </dependency>
          <dependency>
              <groupId>org.apache.karaf.admin</groupId>
              <artifactId>org.apache.karaf.admin.core</artifactId>
              <version>${karaf-version}</version>
          </dependency>
          <dependency>
              <groupId>org.apache.karaf.admin</groupId>
              <artifactId>org.apache.karaf.admin.management</artifactId>
              <version>${karaf-version}</version>
          </dependency>
      </dependencies>
  </dependencyManagement>

  <profiles>
    <!--
        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.7.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>
                <exclude>**/.git/**</exclude>
                <exclude>**/camel-web-oryx/**</exclude>
                <exclude>**/src/main/resources/META-INF/services/jersey-server-components</exclude>
                <exclude>**/WEB-INF/_scalate/**</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>
              </excludes>
              <useDefaultExcludes>false</useDefaultExcludes>
              <mapping>
                <ssp>DYNASCRIPT_STYLE</ssp>
                <jj>JAVADOC_STYLE</jj>
                <index>SCRIPT_STYLE</index>
                <jersey-server-components>SCRIPT_STYLE</jersey-server-components>
              </mapping>
            </configuration>
            <executions>
              <execution>
                <goals>
                  <goal>check</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>

  </profiles>
</project>
