<?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>
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache</groupId>
        <artifactId>apache</artifactId>
        <version>8</version>
    </parent>

    <!-- ====================================================================== -->
    <!-- Project description and basic configuration                            -->
    <!-- ====================================================================== -->
    <groupId>org.apache.photark</groupId>
    <artifactId>photark-parent</artifactId>
    <version>1.0-incubating-SNAPSHOT</version>
    <packaging>pom</packaging>
    <name>Apache PhotArk</name>

    <organization>
        <name>The Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
    </organization>

    <licenses>
        <license>
            <name>The Apache Software License, Version 2.0</name>
            <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
            <distribution>repo</distribution>
        </license>
    </licenses>

    <inceptionYear>2008</inceptionYear>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/photark/trunk/</connection>
        <developerConnection>scm:svn:https://svn.apache.org/repos/asf/incubator/photark/trunk/</developerConnection>
    </scm>

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

    <mailingLists>
        <mailingList>
            <name>Apache PhotArk User List</name>
            <subscribe>photark-user-subscribe@incubator.apache.org</subscribe>
            <unsubscribe>photark-user-unsubscribe@incubator.apache.org</unsubscribe>
            <post>photark-user@incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-photark-user</archive>
        </mailingList>
        <mailingList>
            <name>Apache PhotArk Dev List</name>
            <subscribe>photark-dev-subscribe@incubator.apache.org</subscribe>
            <unsubscribe>photark-dev-unsubscribe@incubator.apache.org</unsubscribe>
            <post>photark-dev@incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-photark-dev</archive>
        </mailingList>
        <mailingList>
            <name>Apache PhotArk Commits List</name>
            <subscribe>photark-commits-subscribe@incubator.apache.org</subscribe>
            <unsubscribe>photark-commits-unsubscribe@incubator.apache.org</unsubscribe>
            <post>photark-commits@incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-photark-commits</archive>
        </mailingList>
    </mailingLists>

    <prerequisites>
        <maven>2.0.8</maven>
    </prerequisites>
    
    <properties>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <project.reporting.outputEncoding>UTF-8</project.reporting.outputEncoding>
        <tuscany.version>2.0-M5.1</tuscany.version>
    </properties>
    
    

    <!-- ====================================================================== -->
    <!-- Maven Repositories                                                     -->
    <!-- ====================================================================== -->    
    <repositories>
        <!-- NOTE: The central Maven repository and Apache SNAPSHOT repository are inherited from the parent POM -->

        <!-- Apache Incubator repository for artifacts released by Incubator projects -->
        <repository>
            <id>apache.incubator</id>
            <name>Apache Incubator Repository</name>
            <url>http://people.apache.org/repo/m2-incubating-repository</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </repository>
        <repository>
           <id>dyuproject-repo</id>
     	   <name>dyuproject-repo</name>      
           <url>http://dyuproject.googlecode.com/svn/repos/maven2</url>
        </repository>
    </repositories>
    
    <!-- ====================================================================== -->
    <!-- Maven Plugin-Repositories                                              -->
    <!-- ====================================================================== -->    
    <pluginRepositories>
        <!-- Apache Incubator repository for artifacts released by Incubator projects -->
        <pluginRepository>
            <id>apache.incubator</id>
            <name>Apache Incubator Repository</name>
            <url>http://people.apache.org/repo/m2-incubating-repository</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>

        <!-- Apache SNAPSHOT repository for unreleased artifacts -->
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache SNAPSHOT Repository</name>
            <url>http://people.apache.org/repo/m2-snapshot-repository</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>

        <!-- Codehaus repository -->
        <!--
        <pluginRepository>
            <id>codehaus-snapshot</id>
            <name>Codehaus Snapshot Repository</name>
            <url>http://repository.codehaus.org</url>
            <releases>
                <enabled>true</enabled>
            </releases>
            <snapshots>
                <enabled>false</enabled>
            </snapshots>
        </pluginRepository>
        -->

        <!-- Codehaus SNAPSHOT repository -->
        <!--
        <pluginRepository>
            <id>codehaus-snapshot</id>
            <name>Codehaus Snapshot Repository</name>
            <url>http://snapshots.repository.codehaus.org</url>
            <releases>
                <enabled>false</enabled>
            </releases>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
        -->
    </pluginRepositories>

    <!-- ====================================================================== -->
    <!-- Distribution Management configuration                                  -->
    <!-- ====================================================================== -->
    <distributionManagement>
        <!-- Whilst in incubation, released project artifacts are deployed to the incubator repository -->
        <repository>
            <id>apache.incubator</id>
            <name>Apache Incubator Repository</name>
            <url>scp://people.apache.org/www/people.apache.org/repo/m2-incubating-repository</url>
        </repository>
        <snapshotRepository>
            <id>apache.snapshots</id>
            <name>Apache Snapshot Repository</name>
            <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url>
        </snapshotRepository>
    </distributionManagement>


    <profiles>
        <!-- ====================================================================== -->
        <!-- Default profile                                                        -->
        <!-- ====================================================================== -->
        <profile>
            <id>default</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <modules>
                <module>photark</module>
                <module>photark-security</module>
                <module>photark-filesystem</module>   
                <module>photark-flickr</module>                 
                <module>photark-jcr</module>
                <module>photark-picasa</module>
                <module>photark-search</module>
                <module>photark-ui</module>
                <module>photark-ui-admin</module>
                <module>photark-ui-security</module>
                <module>photark-appengine-webapp</module>                
                <module>photark-face-recognition</module>
                <module>photark-webapp</module>
                <!--module>photark-client-android</module-->
            </modules>
        </profile>

        <!-- ====================================================================== -->
        <!-- Profile to build release distribution                                  -->
        <!-- ====================================================================== -->
        <profile>
            <id>distribution</id>
            <modules>
                <module>distribution</module>
                <module>photark</module>
                <module>photark-security</module>
                <module>photark-filesystem</module>   
                <module>photark-flickr</module>                 
                <module>photark-jcr</module>
                <module>photark-picasa</module>
                <module>photark-search</module>
                <module>photark-ui</module>
                <module>photark-ui-admin</module>
                <module>photark-ui-security</module>
                <module>photark-appengine-webapp</module>
                <module>photark-face-recognition</module>
                <module>photark-social</module>
                <module>photark-webapp</module>
                <!--module>photark-client-android</module-->
            </modules>
        </profile>

        <!-- ====================================================================== -->
        <!-- Profile to build integration-test with tomcat                          -->
        <!-- ====================================================================== -->
        <profile>
            <id>integration</id>
            <modules>
                <module>distribution</module>
                <module>photark</module>
                <module>photark-security</module>
                <module>photark-filesystem</module>  
                <module>photark-flickr</module>                  
                <module>photark-jcr</module>
                <module>photark-picasa</module>
                <module>photark-search</module>
                <module>photark-ui</module>
                <module>photark-ui-admin</module>
                <module>photark-ui-security</module>
                <module>photark-ui-test</module>                
                <module>photark-appengine-webapp</module>
                <module>photark-face-recognition</module>
                <module>photark-social</module>
                <module>photark-webapp</module>
                <!--module>photark-client-android</module-->
            </modules>
        </profile>
        <!-- ====================================================================== -->
        <!-- Profile to run Apache License check plugin                             -->
        <!-- usage:                                                                 -->
        <!--    mvn rat:check                                                       -->
        <!-- ====================================================================== -->
        <profile>
            <id>rat</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.rat</groupId>
                        <artifactId>apache-rat-plugin</artifactId>
                        <version>0.6</version>
                        <executions>
                            <execution>
                                <phase>verify</phase>
                                <goals>
                                    <goal>check</goal>
                                </goals>
                            </execution>
                        </executions>
                        <configuration>
                            <excludes>
                                <!-- General informational files -->
                                <exclude>BUILDING</exclude>
                                <exclude>CHANGES</exclude>
                                <exclude>README</exclude>
                                <exclude>RELEASE_NOTES</exclude>
                                <exclude>**/DISCLAIMER</exclude>
                                <exclude>**/NOTICE</exclude>

                                <!-- generated content -->
                                <exclude>**/*.log</exclude>
                                <exclude>**/rat.txt</exclude>
                                <exclude>**/target/**/*</exclude>
                                <exclude>**/WEB-INF/lib/**/*</exclude>                                

                                <!-- Exclude Eclipse generated files -->
                                <exclude>**/.*/**</exclude>

                                <!--
                                    Exclude internal repository. These files
                                    are generated by Maven or only used for
                                    build purposes.
                                 -->
                                <exclude>**/internal-repository/**</exclude>
                            </excludes>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <!-- ====================================================================== -->
        <!-- Profile for verifying source code correctness                          -->
        <!-- ====================================================================== -->
        <profile>
            <id>sourcecheck</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-compiler-plugin</artifactId>
                        <configuration>
                            <source>1.5</source>
                            <target>1.5</target>
                            <showDeprecation>true</showDeprecation>
                            <compilerArgument>-Xlint:unchecked,deprecation,fallthrough,finally</compilerArgument>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <!-- ====================================================================== -->
    <!-- General build configuration                                            -->
    <!-- ====================================================================== -->
    <build>
        <defaultGoal>install</defaultGoal>

        <resources>
            <resource>
                <directory>src/main/resources</directory>
            </resource>
            <resource>
                <directory>${basedir}</directory>
                <includes>
                    <include>LICENSE</include>
                    <include>NOTICE</include>
                    <include>DISCLAIMER</include>                    
                    <include>README</include>
                    <include>META-INF/**/*</include>
                    <include>OSGI-INF/**/*</include>
                </includes>
            </resource>
        </resources>
        
        <testResources>
            <testResource>
                <directory>src/test/resources</directory>
                <includes>
                    <include>**/*</include>
                </includes>
            </testResource>
        </testResources>

        <pluginManagement>
            <plugins>

                <!-- compiler plugin configuration -->
                <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>
                    </configuration>
                </plugin>

                <!-- surefire plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>2.4.3</version>
                    <configuration>
                        <includes>
                            <include>**/*TestCase.java</include>
                        </includes>
                        <reportFormat>brief</reportFormat>
                        <useFile>false</useFile>
                        <forkMode>once</forkMode>
                        <argLine>-ea -Xmx256m</argLine>
                    </configuration>
                </plugin>

                <!-- jar plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>2.1</version>
                    <configuration>
                        <archive>
                            <manifestEntries>
                                <Extension-Name>${project.artifactId}</Extension-Name>
                                <Specification-Title>${name}</Specification-Title>
                                <Specification-Vendor>The Apache Software Foundation</Specification-Vendor>
                                <Specification-Version>${version}</Specification-Version>
                                <Implementation-Title>${name}</Implementation-Title>
                                <Implementation-Vendor-Id>org.apache</Implementation-Vendor-Id>
                                <Implementation-Vendor>The Apache Software Foundation</Implementation-Vendor>
                                <Implementation-Version>${version}</Implementation-Version>
                            </manifestEntries>
                         </archive>
                    </configuration>
                </plugin>

                <!-- code coverage check plugin configuration -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-clover-plugin</artifactId>
                    <configuration>
                        <jdk>1.5</jdk>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>
</project>
