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

  <!--

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

  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.servicemix</groupId>
    <artifactId>servicemix-pom</artifactId>
    <version>1.0</version>
  </parent>

  <groupId>org.apache.servicemix.kernel</groupId>
  <artifactId>kernel</artifactId>
  <packaging>pom</packaging>
  <version>1.0.0</version>
  <name>Apache ServiceMix Kernel</name>
  <inceptionYear>2007</inceptionYear>

  <modules>
    <module>main</module>
    <module>filemonitor</module>
    <module>testing</module>
    <module>gshell</module>
    <module>spring</module>
    <module>jaas</module>
    <module>assembly</module>
  </modules>

  <scm>
      <connection>scm:svn:http://svn.apache.org/repos/asf/servicemix/smx4/kernel/tags/kernel-1.0.0</connection>
      <developerConnection>scm:svn:https://svn.apache.org/repos/asf/servicemix/smx4/kernel/tags/kernel-1.0.0</developerConnection>
      <url>http://svn.apache.org/viewvc/servicemix/smx4/kernel/tags/kernel-1.0.0</url>
  </scm>

  <issueManagement>
      <system>jira</system>
      <url>http://issues.apache.org/activemq/browse/SMX4KNL</url>
  </issueManagement>

  <prerequisites>
      <maven>2.0.7</maven>
  </prerequisites>

  <properties>
      <ant.version>1.7.0_1</ant.version>
      <aopalliance.version>1.0_1</aopalliance.version>
      <asm.version>2.2.3_1</asm.version>
      <cglib.version>2.1_3_1</cglib.version>
      <commons.io.version>1.3.2_1</commons.io.version>
      <commons.logging.version>1.1.1</commons.logging.version>
      <felix.configadmin.version>1.0.0</felix.configadmin.version>
      <felix.main.version>1.0.4</felix.main.version>
      <felix.plugin.version>1.4.1</felix.plugin.version>
      <felix.framework.version>1.0.4</felix.framework.version>
      <felix.osgi.version>1.0.1</felix.osgi.version>
      <felix.compendium.version>1.0.1</felix.compendium.version>
      <felix.bundlerepository.version>1.0.2</felix.bundlerepository.version>
      <felix.prefs.version>1.0.2</felix.prefs.version>
      <geronimo.servlet.version>1.1.2</geronimo.servlet.version>
      <gshell.version>1.0-alpha-2-r654638</gshell.version>
      <junit.version>4.4_1</junit.version>
      <jline.version>0.9.94</jline.version>
      <log4j.version>1.2.14</log4j.version>
      <mina.version>1.1.6_1</mina.version>
      <pax.logging.version>1.1.1</pax.logging.version>
      <pax.url.version>0.3.2</pax.url.version>
      <servicemix.legal.version>1.0</servicemix.legal.version>
      <spring.osgi.version>1.1.0</spring.osgi.version>
      <spring.version>2.5.5</spring.version>
  </properties>

   <repositories>
       <!-- Default repository -->
       <repository>
           <id>central</id>
           <name>Default maven repo</name>
           <url>http://repo1.maven.org/maven2</url>
       </repository>
       <!-- ServiceMix repo -->
       <repository>
           <id>servicemix</id>
           <name>Apache ServiceMix Repository</name>
           <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
       </repository>
       <!-- OPS4J repo -->
       <repository>
           <id>ops4j</id>
           <name>OPS4j Repository</name>
           <url>http://repository.ops4j.org/maven2</url>
       </repository>
   </repositories>

  <pluginRepositories>
      <!-- ServiceMix repo -->
      <pluginRepository>
          <id>servicemix</id>
          <name>Apache ServiceMix Repository</name>
          <url>http://svn.apache.org/repos/asf/servicemix/m2-repo</url>
      </pluginRepository>
  </pluginRepositories>

  <dependencyManagement>
    <dependencies>
      <dependency>
          <groupId>org.apache.felix</groupId>
          <artifactId>org.osgi.compendium</artifactId>
          <version>${felix.compendium.version}</version>
          <exclusions>
            <exclusion>
              <groupId>org.apache.felix</groupId>
              <artifactId>org.osgi.foundation</artifactId>
            </exclusion>
            <exclusion>
              <groupId>org.apache.felix</groupId>
              <artifactId>javax.servlet</artifactId>
            </exclusion>
          </exclusions>
      </dependency>
	  <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-aop</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-beans</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-core</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-context</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.springframework</groupId>
          <artifactId>spring-test</artifactId>
          <version>${spring.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.servicemix.bundles</groupId>
          <artifactId>org.apache.servicemix.bundles.junit</artifactId>
          <version>${junit.version}</version>
      </dependency>
      <dependency>
          <groupId>log4j</groupId>
          <artifactId>log4j</artifactId>
          <version>${log4j.version}</version>
      </dependency>
      <dependency>
          <groupId>jline</groupId>
          <artifactId>jline</artifactId>
          <version>${jline.version}</version>
      </dependency>
      <dependency>
          <groupId>commons-logging</groupId>
          <artifactId>commons-logging</artifactId>
          <version>${commons.logging.version}</version>
      </dependency>
      <dependency>
          <groupId>org.apache.maven.artifact</groupId>
          <artifactId>maven-artifact</artifactId>
          <version>3.0-alpha-1</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
      <defaultGoal>install</defaultGoal>

      <pluginManagement>
          <plugins>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-eclipse-plugin</artifactId>
                  <version>2.4</version>
                  <configuration>
                      <outputDirectory>${basedir}/eclipse-classes</outputDirectory>
                      <downloadSources>true</downloadSources>
                      <downloadJavadocs>true</downloadJavadocs>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-release-plugin</artifactId>
                  <version>2.0-beta-7</version>
                  <configuration>
                      <useReleaseProfile>false</useReleaseProfile>
                      <preparationGoals>clean verify install</preparationGoals>
                      <goals>deploy</goals>
                      <arguments>-Prelease,deploy</arguments>
                      <autoVersionSubmodules>true</autoVersionSubmodules>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.felix</groupId>
                  <artifactId>maven-bundle-plugin</artifactId>
                  <version>${felix.plugin.version}</version>
                  <extensions>true</extensions>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-compiler-plugin</artifactId>
                  <version>2.0.2</version>
                  <configuration>
                      <source>1.5</source>
                      <target>1.5</target>
                      <maxmem>256M</maxmem>
                      <fork>${compiler.fork}</fork>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-idea-plugin</artifactId>
                  <version>2.1</version>
                  <configuration>
                      <downloadSources>true</downloadSources>
                      <downloadJavadocs>true</downloadJavadocs>
                  </configuration>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <version>2.3.1</version>
              </plugin>
              <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-shade-plugin</artifactId>
                  <version>1.1</version>
              </plugin>
          </plugins>
      </pluginManagement>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-dependency-plugin</artifactId>
              <version>2.0</version>
              <executions>
                  <execution>
                      <id>copy-legal</id>
                      <phase>generate-resources</phase>
                      <goals>
                          <goal>copy</goal>
                      </goals>
                      <configuration>
                          <artifactItems>
                              <artifactItem>
                                  <groupId>org.apache.servicemix.legal</groupId>
                                  <artifactId>legal</artifactId>
						          <version>${servicemix.legal.version}</version>
                                  <type>xml</type>
                                  <outputDirectory>target/legal/</outputDirectory>
                              </artifactItem>
                          </artifactItems>
                          <stripVersion>true</stripVersion>
                      </configuration>
                  </execution>
	          </executions>
              <dependencies>                  
                  <dependency>
                       <groupId>org.apache.servicemix.legal</groupId>
                       <artifactId>legal</artifactId>
                       <version>${servicemix.legal.version}</version>
                       <type>xml</type>
                  </dependency>
              </dependencies>
	      </plugin>
          <plugin>
              <artifactId>maven-remote-resources-plugin</artifactId>
              <version>1.0</version>
              <executions>
                  <execution>
                      <goals>
                          <goal>process</goal>
                      </goals>
                      <configuration>
                          <resourceBundles>
                              <resourceBundle>org.apache:apache-jar-resource-bundle:1.4</resourceBundle>
                          </resourceBundles>
                          <supplementalModels>
                              <supplementalModel>target/legal/legal.xml</supplementalModel>
                          </supplementalModels>
                          <properties>
                              <addLicense>true</addLicense>
                              <addArtifact>true</addArtifact>
                              <projectName>Apache ServiceMix</projectName>
                          </properties>
                      </configuration>
                  </execution>
              </executions>
          </plugin>
      </plugins>
  </build>

  <reporting>
      <plugins>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-javadoc-plugin</artifactId>
              <version>2.3</version>
          </plugin>
          <plugin>
              <groupId>org.apache.maven.plugins</groupId>
              <artifactId>maven-jxr-plugin</artifactId>
              <version>2.0</version>
          </plugin>
      </plugins>
  </reporting>

  <profiles>
      <profile>
          <id>fastinstall</id>
          <properties>
              <maven.test.skip>true</maven.test.skip>
          </properties>
      </profile>
      <profile>
          <id>rat</id>
          <build>
              <plugins>
                  <plugin>
                      <groupId>org.codehaus.mojo</groupId>
                      <artifactId>rat-maven-plugin</artifactId>
                      <version>1.0-alpha-3</version>
                      <executions>
                          <execution>
                              <phase>verify</phase>
                              <goals>
                                  <goal>check</goal>
                              </goals>
                          </execution>
                      </executions>
                      <configuration>
                          <reportFile>${project.build.directory}/${project.build.finalName}.rat</reportFile>
                          <excludes>
                              <exclude>**/target/**/*</exclude>
                              <!-- IDEA files -->
                              <exclude>**/*.iml</exclude>
                              <exclude>**/*.ipr</exclude>
                              <exclude>**/*.iws</exclude>
                              <!-- Eclipse files -->
                              <exclude>**/.*</exclude>
                              <exclude>**/eclipse-classes/**/*</exclude>
                          </excludes>
                      </configuration>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>release</id>
          <build>
              <plugins>
                  <!-- We want to deploy the artifact to a staging location for perusal -->
                  <plugin>
                      <inherited>true</inherited>
                      <artifactId>maven-deploy-plugin</artifactId>
                      <version>2.3</version>
                      <configuration>
                          <altDeploymentRepository>${deploy.altRepository}</altDeploymentRepository>
                          <updateReleaseInfo>true</updateReleaseInfo>
                      </configuration>
                  </plugin>
                  <!-- We want to sign the artifact, the POM, and all attached artifacts -->
                  <plugin>
                      <artifactId>maven-gpg-plugin</artifactId>
                      <version>1.0-alpha-4</version>
                      <executions>
                          <execution>
                              <goals>
                                  <goal>sign</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>setup.eclipse</id>
          <modules>
              <module>assembly</module>
          </modules>
          <properties>
              <eclipse.workspace.dir>${basedir}/../workspace</eclipse.workspace.dir>
          </properties>
          <build>
              <defaultGoal>eclipse:eclipse</defaultGoal>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-eclipse-plugin</artifactId>
                      <inherited>false</inherited>
                      <executions>
                          <execution>
                              <id>setup.eclipse.workspace</id>
                              <phase>process-test-sources</phase>
                              <goals>
                                  <goal>add-maven-repo</goal>
                              </goals>
                              <configuration>
                                  <workspace>${eclipse.workspace.dir}</workspace>
                              </configuration>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </profile>
      <profile>
          <id>deploy</id>
          <build>
              <defaultGoal>deploy</defaultGoal>
              <plugins>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-source-plugin</artifactId>
                      <version>2.0.4</version>
                      <executions>
                          <execution>
                              <id>attach-sources</id>
                              <goals>
                                  <goal>jar</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
                  <plugin>
                      <groupId>org.apache.maven.plugins</groupId>
                      <artifactId>maven-javadoc-plugin</artifactId>
                      <version>2.4</version>
                      <configuration>
                          <source>1.5</source>
                      </configuration>
                      <executions>
                          <execution>
                              <id>attach-javadocs</id>
                              <goals>
                                  <goal>jar</goal>
                              </goals>
                          </execution>
                      </executions>
                  </plugin>
              </plugins>
          </build>
      </profile>
  </profiles>

</project>
