<?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>
    <groupId>org.apache.qpid</groupId>
    <artifactId>qpid</artifactId>
    <version>1.0-incubating-M2-SNAPSHOT</version>
    <name>Qpid</name>
    <url>http://cwiki.apache.org/confluence/display/qpid</url>

    <packaging>pom</packaging>

    <scm>
        <connection>scm:svn:http://svn.apache.org/repos/asf/incubator/qpid/trunk</connection>
        <developerConnection>scm:svn:http://svn.apache.org/repos/asf/incubator/qpid/trunk</developerConnection>
        <url>http://svn.apache.org/viewvc/incubator/qpid/trunk/</url>
    </scm>

    <prerequisites>
        <maven>2.0.4</maven>
    </prerequisites>

    <inceptionYear>2006</inceptionYear>
    <mailingLists>
        <mailingList>
            <name>Qpid Developer List</name>
            <subscribe>qpid-dev-subscribe@incubator.apache.org</subscribe>
            <unsubscribe>qpid-dev-unsubscribe@incubator.apache.org</unsubscribe>
            <post>qpid-dev@incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-qpid-dev</archive>
        </mailingList>
        <mailingList>
            <name>Qpid Commits List</name>
            <subscribe>qpid-commits-subscribe@incubator.apache.org</subscribe>
            <unsubscribe>qpid-commits-unsubscribe@incubator.apache.org</unsubscribe>
            <post>qpid-commits@incubator.apache.org</post>
            <archive>http://mail-archives.apache.org/mod_mbox/incubator-qpid-commits</archive>
        </mailingList>
    </mailingLists>
    <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>
    <organization>
        <name>Apache Software Foundation</name>
        <url>http://www.apache.org/</url>
    </organization>
    <properties>
        <topDirectoryLocation>.</topDirectoryLocation>

        <surefire.fork.mode>once</surefire.fork.mode>
        <surefire.format>brief</surefire.format>
        <surefire.usefile>false</surefire.usefile>
        <compile.forked>false</compile.forked>
        <java.source.version>1.5</java.source.version>
        <compile.flags>-Xlint:fallthrough,finally</compile.flags>

        <!--Versions for various plugins and features -->
        <antrun.version>1.2-SNAPSHOT</antrun.version>
        <assembly.version>2.1</assembly.version>
        <cobertura.version>2.0</cobertura.version>
        <compiler.version>2.0.1</compiler.version>
        <dependency.plugin.version>1.0</dependency.plugin.version>
        <eclipse.plugin.version>2.2</eclipse.plugin.version>
        <jar.version>2.0</jar.version>
        <javadoc.version>2.0</javadoc.version>
        <jxr.version>2.0</jxr.version>
        <mprojectinfo.version>2.0</mprojectinfo.version>
        <resources.version>2.2</resources.version>
        <site.version>2.0-beta-5</site.version>
        <surefire-report.version>2.1-SNAPSHOT</surefire-report.version>
        <surefire.version>2.2</surefire.version>

        <amqj.logging.level>debug</amqj.logging.level>

        <eclipse.workspace.dir>${basedir}/${topDirectoryLocation}/../workspace</eclipse.workspace.dir>
    </properties>

    <modules>
        <module>common</module>
        <module>broker</module>
        <module>client</module>
        <module>cluster</module>
        <module>systests</module>
    </modules>

    <build>
        <resources>
            <resource>
                <directory>src/main/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </resource>
            <resource>
                <directory>src/main/resources</directory>
                <includes>
                    <include>**</include>
                </includes>
            </resource>
            <resource>
                <directory>src/main/resources-filtered</directory>
                <includes>
                    <include>**</include>
                </includes>
                <filtering>true</filtering>
            </resource>
            <resource>
                <directory>target/generated/src/main/resources</directory>
                <includes>
                    <include>**</include>
                </includes>
            </resource>
        </resources>
        <testResources>
            <testResource>
                <directory>src/test/java</directory>
                <excludes>
                    <exclude>**/*.java</exclude>
                </excludes>
            </testResource>
            <testResource>
                <directory>src/test/resources</directory>
                <includes>
                    <include>**</include>
                </includes>
            </testResource>
            <testResource>
                <directory>src/test/java</directory>
                <excludes>
                    <exclude>**/*.xml</exclude>
                </excludes>
                <filtering>true</filtering>
            </testResource>
        </testResources>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-antrun-plugin</artifactId>
                    <version>${antrun.version}</version>
                    <dependencies>
                        <dependency>
                            <groupId>ant</groupId>
                            <artifactId>ant-nodeps</artifactId>
                            <version>1.6.5</version>
                        </dependency>

                    </dependencies>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-jar-plugin</artifactId>
                    <version>${jar.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>${resources.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <version>${compiler.version}</version>
                    <configuration>
                        <source>${java.source.version}</source>
                        <target>${java.source.version}</target>
                        <fork>${compile.forked}</fork>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-surefire-plugin</artifactId>
                    <version>${surefire.version}</version>
                    <configuration>
                        <excludes>
                            <exclude>**/*$*</exclude>
                        </excludes>
                        <reportFormat>${surefire.format}</reportFormat>
                        <useFile>${surefire.usefile}</useFile>
                        <forkMode>${surefire.fork.mode}</forkMode>
                        <childDelegation>false</childDelegation>
                        <argLine>-ea</argLine>
                        <systemproperties>
                            <property>
                                <name>amqj.logging.level</name>
                                <value>${amqj.logging.level}</value>
                            </property>
                        </systemproperties>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-site-plugin</artifactId>
                    <version>${site.version}</version>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-eclipse-plugin</artifactId>
                    <version>${eclipse.plugin.version}</version>
                    <configuration>
                        <!--downloadSources>true</downloadSources-->
                        <buildcommands>
                            <java.lang.String>org.eclipse.jdt.core.javabuilder</java.lang.String>
                            <java.lang.String>com.atlassw.tools.eclipse.checkstyle.CheckstyleBuilder</java.lang.String>
                            <java.lang.String>net.sourceforge.pmd.runtime.pmdBuilder</java.lang.String>
                        </buildcommands>
                        <projectnatures>
                            <nature>org.eclipse.jdt.core.javanature</nature>
                            <nature>com.atlassw.tools.eclipse.checkstyle.CheckstyleNature</nature>
                            <nature>net.sourceforge.pmd.runtime.pmdNature</nature>
                        </projectnatures>
                    </configuration>
                </plugin>
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-idea-plugin</artifactId>
                    <configuration>
                        <downloadSources>true</downloadSources>
                        <downloadJavadocs>true</downloadJavadocs>
                    </configuration>
                </plugin>

            </plugins>

        </pluginManagement>
        <defaultGoal>install</defaultGoal>
    </build>

    <dependencyManagement>
        <dependencies>

            <dependency>
                <groupId>commons-cli</groupId>
                <artifactId>commons-cli</artifactId>
                <version>1.0</version>
            </dependency>

            <dependency>
                <groupId>commons-codec</groupId>
                <artifactId>commons-codec</artifactId>
                <version>1.3</version>
            </dependency>
            <dependency>
                <groupId>commons-collections</groupId>
                <artifactId>commons-collections</artifactId>
                <version>3.1</version>
            </dependency>

            <dependency>
                <groupId>commons-configuration</groupId>
                <artifactId>commons-configuration</artifactId>
                <version>1.2</version>
            </dependency>

            <dependency>

                <groupId>commons-lang</groupId>
                <artifactId>commons-lang</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>commons-logging</groupId>
                <artifactId>commons-logging</artifactId>
                <version>1.0.4</version>
            </dependency>

            <dependency>
                <groupId>org.apache.geronimo.specs</groupId>
                <artifactId>geronimo-jms_1.1_spec</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>xml-resolver</groupId>
                <artifactId>xml-resolver</artifactId>
                <version>1.1</version>
            </dependency>
            <dependency>
                <groupId>net.sf.saxon</groupId>
                <artifactId>saxon</artifactId>
                <version>8.7</version>
            </dependency>

            <dependency>
                <groupId>jython</groupId>
                <artifactId>jython</artifactId>
                <version>2.1</version>
            </dependency>
            <dependency>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
                <version>1.2.12</version>
            </dependency>
            <dependency>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-simple</artifactId>
                <version>1.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-core</artifactId>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-filter-ssl</artifactId>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>org.apache.mina</groupId>
                <artifactId>mina-java5</artifactId>
                <version>1.0.0</version>
            </dependency>
            <dependency>
                <groupId>backport-util-concurrent</groupId>
                <artifactId>backport-util-concurrent</artifactId>
                <version>2.2</version>
            </dependency>
            <dependency>
                <groupId>junit</groupId>
                <artifactId>junit</artifactId>
                <version>3.8.2</version>
            </dependency>
            <dependency>
                <groupId>ant</groupId>
                <artifactId>ant-junit</artifactId>
                <version>1.6.5</version>
            </dependency>

            <dependency>
                <groupId>org.easymock</groupId>
                <artifactId>easymockclassextension</artifactId>
                <version>2.2</version>
                <scope>test</scope>
            </dependency>
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>qpid-common</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>qpid-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>qpid-broker</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>qpid-mgmt-core</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>qpid-mgmt-client</artifactId>
                <version>${project.version}</version>
            </dependency>
            <dependency>
                <groupId>org.apache.qpid</groupId>
                <artifactId>qpid-cluster</artifactId>
                <version>${project.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>cobertura-maven-plugin</artifactId>
                <version>${cobertura.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-project-info-reports-plugin</artifactId>
                <version>${mprojectinfo.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-report-plugin</artifactId>
                <version>${surefire-report.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-javadoc-plugin</artifactId>
                <version>${javadoc.version}</version>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <configuration>
                    <configLocation>${basedir}/${topDirectoryLocation}/checkstyle.xml</configLocation>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-pmd-plugin</artifactId>
                <configuration>
                    <targetJdk>${java.source.version}</targetJdk>
                    <rulesets>
                        <ruleset>${basedir}/.ruleset</ruleset>
                    </rulesets>
                </configuration>
            </plugin>
        </plugins>
    </reporting>

    <repositories>
        <!-- not picking up any snapshots at the moment
        <repository>
          <id>apache.snapshots</id>
          <name>Apache SNAPSHOT Repository</name>
          <url>http://people.apache.org/repo/m2-snapshot-repository</url>
          <snapshots>
            <enabled>true</enabled>
          </snapshots>
        </repository>
        -->
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>apache.snapshots</id>
            <name>Apache SNAPSHOT Repository</name>
            <url>http://people.apache.org/repo/m2-snapshot-repository</url>
            <snapshots>
                <enabled>true</enabled>
            </snapshots>
        </pluginRepository>
    </pluginRepositories>

    <profiles>
        <profile>
            <id>fastinstall</id>
            <properties>
                <maven.test.skip>true</maven.test.skip>
            </properties>
        </profile>
        <profile>
            <id>nochecks</id>
        </profile>

        <profile>
            <!-- default profile enables checkstyle and Xlint stuff -->
            <id>sourcecheck</id>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-checkstyle-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>false</showDeprecation>
                            <compilerArgument>${compile.flags}</compilerArgument>
                        </configuration>
                    </plugin>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-pmd-plugin</artifactId>
                    </plugin>
                </plugins>
            </build>
        </profile>

        <profile>
            <id>setup.eclipse</id>
            <build>
                <defaultGoal>process-test-sources</defaultGoal>
                <plugins>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-eclipse-plugin</artifactId>
                        <executions>
                            <execution>
                                <id>setup.eclipse.project</id>
                                <phase>process-test-sources</phase>
                                <goals>
                                    <goal>eclipse</goal>
                                </goals>
                            </execution>
                            <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>
                    <plugin>
                        <groupId>org.apache.maven.plugins</groupId>
                        <artifactId>maven-antrun-plugin</artifactId>
                        <version>${antrun.version}</version>
                        <dependencies>
                            <dependency>
                                <groupId>ant</groupId>
                                <artifactId>ant-nodeps</artifactId>
                                <version>1.6.5</version>
                            </dependency>
                            <dependency>
                                <groupId>ant</groupId>
                                <artifactId>ant-trax</artifactId>
                                <version>1.6.5</version>
                            </dependency>
                        </dependencies>
                        <executions>
                            <execution>
                                <id>setup.workspace</id>
                                <phase>validate</phase>
                                <configuration>
                                    <tasks>
                                        <path id="ecp.ws.path" location="${eclipse.workspace.dir}"/>
                                        <property name="full.eclipse.workspace" refid="ecp.ws.path"/>

                                        <mkdir dir="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings"/>
                                        <mkdir dir="${full.eclipse.workspace}/.metadata/.plugins/com.atlassw.tools.eclipse.checkstyle"/>
                                        <mkdir dir="${full.eclipse.workspace}/.metadata/.plugins/net.sourceforge.pmd.eclipse"/>
                                        <copy file="${basedir}/${topDirectoryLocation}/checkstyle.xml"
                                              tofile="${full.eclipse.workspace}/qpid-checkstyle.xml"/>
                                        <copy file="${basedir}/${topDirectoryLocation}/etc/apache-header.txt"
                                              tofile="${full.eclipse.workspace}/apache-header.txt"/>

                                        <!-- Add checkstyle config -->
                                        <copy file="${basedir}/${topDirectoryLocation}/etc/eclipse/template.checkstyle-config.xml"
                                              tofile="${full.eclipse.workspace}/.metadata/.plugins/com.atlassw.tools.eclipse.checkstyle/checkstyle-config.xml"
                                              overwrite="no">
                                            <filterset>
                                                <filter token="CHECKSTYLE_CONFIG_FILE"
                                                        value="${full.eclipse.workspace}/qpid-checkstyle.xml"/>
                                                <filter token="APACHE_HEADER_FILE"
                                                        value="${full.eclipse.workspace}/apache-header.txt"/>
                                            </filterset>
                                        </copy>

                                        <xslt style="${basedir}/${topDirectoryLocation}/etc/eclipse/addcheckstyle.xsl"
                                              in="${full.eclipse.workspace}/.metadata/.plugins/com.atlassw.tools.eclipse.checkstyle/checkstyle-config.xml"
                                              out="${full.eclipse.workspace}/.metadata/.plugins/com.atlassw.tools.eclipse.checkstyle/checkstyle-config.xml.new">
                                            <param name="checkstyleconfig"
                                                   expression="${full.eclipse.workspace}/qpid-checkstyle.xml"/>
                                        </xslt>
                                        <copy
                                                file="${full.eclipse.workspace}/.metadata/.plugins/com.atlassw.tools.eclipse.checkstyle/checkstyle-config.xml.new"
                                                tofile="${full.eclipse.workspace}/.metadata/.plugins/com.atlassw.tools.eclipse.checkstyle/checkstyle-config.xml"
                                                overwrite="yes"/>


                                        <!-- Add warning flags that we want -->
                                        <propertyfile
                                                file="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs">
                                            <entry key="org.eclipse.jdt.core.compiler.problem.missingSerialVersion"
                                                   value="ignore"/>
                                            <entry key="org.eclipse.jdt.core.compiler.problem.unusedImport"
                                                   value="ignore"/>
                                            <entry key="org.eclipse.jdt.core.compiler.problem.annotationSuperInterface"
                                                   value="ignore"/>
                                        </propertyfile>


                                        <!-- Add code format rules -->
                                        <concat destfile="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.core.prefs"
                                                append="true" fixlastline="true">
                                            <filelist dir="${basedir}/${topDirectoryLocation}/etc/eclipse"
                                                      files="org.eclipse.jdt.core.prefs"/>
                                        </concat>
                                        <loadfile property="eclipse.code.format"
                                                  srcFile="${basedir}/${topDirectoryLocation}/etc/eclipse/QpidCodeFormatter.xml"/>
                                        <loadfile property="eclipse.code.templates"
                                                  srcFile="${basedir}/${topDirectoryLocation}/etc/eclipse/codetemplates.xml"/>
                                        <propertyfile
                                                file="${full.eclipse.workspace}/.metadata/.plugins/org.eclipse.core.runtime/.settings/org.eclipse.jdt.ui.prefs">
                                            <entry key="formatter_profile" value="_Qpid Java Conventions"/>
                                            <entry key="org.eclipse.jdt.ui.formatterprofiles"
                                                   value="${eclipse.code.format}"/>
                                            <entry key="org.eclipse.jdt.ui.text.custom_code_templates"
                                                   value="${eclipse.code.templates}"/>

                                            <!-- Add import order -->
                                            <entry key="org.eclipse.jdt.ui.importorder"
                                                   value="java;javax;org.w3c;org.xml;junit;com;org;"/>
                                            <!-- Sort order -->
                                            <entry key="org.eclipse.jdt.ui.visibility.order" value="B,R,D,V,"/>
                                            <entry key="outlinesortoption" value="T,SF,F,SI,I,C,SM,M,"/>
                                            <entry key="org.eclipse.jdt.ui.enable.visibility.order" value="true"/>
                                        </propertyfile>
                                    </tasks>
                                </configuration>
                                <goals>
                                    <goal>run</goal>
                                </goals>
                            </execution>
                        </executions>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
