<?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">
   
   <modelVersion>4.0.0</modelVersion>
   <parent>
      <groupId>${groupId}</groupId>
      <artifactId>${rootArtifactId}</artifactId>
      <version>${version}</version>
      <relativePath>../pom.xml</relativePath>
   </parent>
   <artifactId>${rootArtifactId}-${artifactId}</artifactId>
   <name>Distribution (RADiX Distro of OODT)</name>
   <packaging>pom</packaging>
   <properties>
      <tomcat.version>5.5.23</tomcat.version>
   </properties>
   <profiles>
      <profile>
         <id>default</id>
         <activation>
            <activeByDefault>true</activeByDefault>
         </activation>
         <dependencies>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-filemgr</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-crawler</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-workflow</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-pge</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-pcs</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-resmgr</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-extensions</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-opsui</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-pcs-services</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-fmprod</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
         </dependencies>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <version>2.3</version>
                  <executions>
                     <execution>
                        <id>unpack-tomcat</id>
                        <phase>process-sources</phase>
                        <goals>
                           <goal>unpack</goal>
                        </goals>
                        <configuration>
                           <artifactItems>
                              <artifactItem>
                                 <groupId>tomcat</groupId>
                                 <artifactId>apache-tomcat</artifactId>
                                 <version>${tomcat.version}</version>
                                 <type>zip</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-opsui</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/opsui</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-pcs-services</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/pcs</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-fmprod</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/fmprod</outputDirectory>
                              </artifactItem>
                           </artifactItems>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-assembly-plugin</artifactId>
                  <version>2.2</version>
                  <configuration>
                     <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
                     </descriptors>
                  </configuration>
                  <executions>
                     <execution>
                        <phase>package</phase>
                        <goals>
                           <goal>single</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
      <profile>
         <id>fm-solr-catalog</id>
         <activation/>
         <dependencies>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-filemgr</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-crawler</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-workflow</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-pge</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-pcs</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-resmgr</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-extensions</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-solr</artifactId>
               <version>${project.parent.version}</version>
               <type>tar.gz</type>
               <classifier>bin</classifier>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-opsui</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-pcs-services</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-fmprod</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
            <dependency>
               <groupId>${groupId}</groupId>
               <artifactId>${rootArtifactId}-solr-webapp</artifactId>
               <version>${project.parent.version}</version>
               <type>war</type>
            </dependency>
         </dependencies>
         <build>
            <plugins>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-dependency-plugin</artifactId>
                  <version>2.3</version>
                  <executions>
                     <execution>
                        <id>unpack-tomcat</id>
                        <phase>process-sources</phase>
                        <goals>
                           <goal>unpack</goal>
                        </goals>
                        <configuration>
                           <artifactItems>
                              <artifactItem>
                                 <groupId>tomcat</groupId>
                                 <artifactId>apache-tomcat</artifactId>
                                 <version>${tomcat.version}</version>
                                 <type>zip</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-opsui</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/opsui</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-pcs-services</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/pcs</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-fmprod</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/fmprod</outputDirectory>
                              </artifactItem>
                              <artifactItem>
                                 <groupId>${groupId}</groupId>
                                 <artifactId>${parent.artifactId}-solr-webapp</artifactId>
                                 <type>war</type>
                                 <overWrite>false</overWrite>
                                 <outputDirectory>${project.build.directory}/apache-tomcat-${tomcat.version}/webapps/solr</outputDirectory>
                              </artifactItem>
                           </artifactItems>
                        </configuration>
                     </execution>
                  </executions>
               </plugin>
               <plugin>
                  <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-assembly-plugin</artifactId>
                  <version>2.2</version>
                  <configuration>
                     <descriptors>
                        <descriptor>src/main/assembly/assembly.xml</descriptor>
                     </descriptors>
                  </configuration>
                  <executions>
                     <execution>
                        <phase>package</phase>
                        <goals>
                           <goal>single</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
</project>
