<?xml version="1.0"?>
<project>
    <parent>
        <artifactId>ehcache-parent</artifactId>
        <groupId>net.sf.ehcache</groupId>
        <version>1.5.0</version>
    </parent>
    <modelVersion>4.0.0</modelVersion>
    <groupId>net.sf.ehcache</groupId>
    <artifactId>ehcache-jmsreplication</artifactId>
    <name>JMS Replication</name>
    <version>0.4</version>
    <packaging>jar</packaging>
    <description>This module provides replication via JMS 1.1</description>
    <dependencies>
        <dependency>
            <groupId>net.sf.ehcache</groupId>
            <artifactId>ehcache</artifactId>
            <version>[1.6.0-beta5,]</version>
        </dependency>
        <dependency>
            <groupId>javax.jms</groupId>
            <artifactId>jms-api</artifactId>
            <version>1.1-rev-1</version>
            <scope>provided</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.1</version>
            <scope>test</scope>
        </dependency>
        <!--  Test scope -->
        <dependency>
            <groupId>com.sun.messaging.mq</groupId>
            <artifactId>imq</artifactId>
            <version>4.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>com.sun.messaging.mq</groupId>
            <artifactId>fscontext</artifactId>
            <version>4.2</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.activemq</groupId>
            <artifactId>activemq-core</artifactId>
            <version>5.1.0</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <properties>
        <!--Install each message queue and specify these properties-->
        <activemq.bin.dir>/Users/gluck/work/apache-activemq-5.1.0/bin</activemq.bin.dir>
        <openmq.bin.dir>/Users/gluck/work/mq/bin</openmq.bin.dir>
    </properties>

    <repositories>
        <repository>
            <id>java.net2</id>
            <name>Java.net Maven2 Repository</name>
            <url>http://download.java.net/maven/2</url>
            <releases>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </releases>
            <snapshots>
                <enabled>true</enabled>
                <updatePolicy>daily</updatePolicy>
            </snapshots>
        </repository>
    </repositories>

    <build>
        <plugins>
            <plugin>
                <artifactId>maven-compiler-plugin</artifactId>
                <configuration>
                    <source>1.5</source>
                    <target>1.5</target>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <!--We test using two popular message queues -->
                        <id>start-message-queues</id>
                        <phase>pre-integration-test</phase>
                        <configuration>
                            <tasks>
                                <echo>Starting Active MQ from ${activemq.bin.dir} on ${os.name}</echo>
                                <exec dir="${activemq.bin.dir}" spawn="true" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="activemq"/>
                                </exec>
                                <echo>Starting Open MQ from ${openmq.bin.dir} on ${os.name}</echo>
                                <exec dir="${openmq.bin.dir}" spawn="true" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="imqbrokerd"/>
                                </exec>
                                <echo>Creating Open MQ administered objects in object store at /tmp from
                                    ${openmq.bin.dir} on ${os.name}
                                </echo>
                                <exec dir="${openmq.bin.dir}" spawn="false" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="imqusermgr add -u test -p test -f"/>
                                </exec>
                                <exec dir="${openmq.bin.dir}" spawn="false" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="imqobjmgr add -t tf -l 'MyConnectionFactory' -o imqReconnect='true' -o imqPingInterval='5'
                                     -o imqDefaultUsername='test' -o imqDefaultPassword='test'
                                     -j java.naming.provider.url=file:///tmp -j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory -f "/>
                                </exec>
                                <exec dir="${openmq.bin.dir}" spawn="false" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="imqobjmgr add -t qf -l 'queueConnectionFactory' -o imqReconnect='true' -o imqPingInterval='5'
                                     -o imqDefaultUsername='test' -o imqDefaultPassword='test'
                                     -j java.naming.provider.url=file:///tmp -j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory -f "/>
                                </exec>
                                <exec dir="${openmq.bin.dir}" spawn="false" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="imqobjmgr add -t t -l 'ehcache' -o 'imqDestinationName=EhcacheTopicDest' -j java.naming.provider.url=file:///tmp -j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory -f "/>
                                </exec>
                                <exec dir="${openmq.bin.dir}" spawn="false" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="imqobjmgr add -t q -l 'ehcacheGetQueue' -o 'imqDestinationName=EhcacheGetQueueDest' -j java.naming.provider.url=file:///tmp -j java.naming.factory.initial=com.sun.jndi.fscontext.RefFSContextFactory -f "/>
                                </exec>
                                <sleep seconds="5"/>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-surefire-plugin</artifactId>
                <inherited>true</inherited>
                <configuration>
                    <includes>
                        <include>**/*UnitTest.java</include>
                    </includes>
                    <excludes>
                        <exclude>**/*$*</exclude>
                        <exclude>**/Abstract*Test.java</exclude>
                        <exclude>**/Test*.java</exclude>
                        <exclude>**/constructs/web/**</exclude>
                    </excludes>
                    <forkMode>pertest</forkMode>
                    <childDelegation>false</childDelegation>
                    <disableXmlReport>true</disableXmlReport>
                    <printSummary>true</printSummary>
                    <redirectTestOutputToFile>true</redirectTestOutputToFile>
                    <systemProperties>
                        <property>
                            <name>java.awt.headless</name>
                            <value>true</value>
                        </property>
                        <property>
                            <name>
                                net.sf.ehcache.speedAdjustmentFactor
                            </name>
                            <value>
                                ${net.sf.ehcache.speedAdjustmentFactor}
                            </value>
                        </property>
                    </systemProperties>
                </configuration>
                <executions>
                    <execution>
                        <id>integration-tests</id>
                        <phase>integration-test</phase>
                        <goals>
                            <goal>test</goal>
                        </goals>
                        <configuration>
                            <includes>
                                <include>**/*IntegrationTest.java</include>
                                <include>**/*JMSReplicationTest.java</include>
                                <include>**/*WebTest.java</include>
                            </includes>
                            <excludes>
                                <exclude>**/Abstract*Test.java</exclude>
                            </excludes>
                        </configuration>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-antrun-plugin</artifactId>
                <executions>
                    <execution>
                        <id>stop-message-queues</id>
                        <phase>post-integration-test</phase>
                        <configuration>
                            <tasks>
                                <echo>Stopping Message Queues on ${os.name}</echo>
                                <exec dir="src/test/scripts" spawn="false" os="Mac OS X, Linux, AIX, Solaris"
                                      executable="sh">
                                    <arg line="stop_message_queues"/>
                                </exec>
                            </tasks>
                        </configuration>
                        <goals>
                            <goal>run</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-checkstyle-plugin</artifactId>
                <executions>
                    <execution>
                        <phase>validate</phase>
                        <goals>
                            <goal>checkstyle</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <configLocation>${basedir}/checkstyle/checkstyle.xml</configLocation>
                    <suppressionsLocation>${basedir}/checkstyle/suppressions.xml</suppressionsLocation>
                    <headerLocation>${basedir}/checkstyle/ClassHeader.txt</headerLocation>
                    <enableRSS>false</enableRSS>
                    <linkXRef>true</linkXRef>
                    <consoleOutput>true</consoleOutput>
                    <failsOnError>true</failsOnError>
                    <failOnViolation>true</failOnViolation>
                    <includeTestSourceDirectory>true</includeTestSourceDirectory>
                    <enableRulesSummary>true</enableRulesSummary>
                </configuration>
            </plugin>

            <plugin>
                <artifactId>maven-assembly-plugin</artifactId>
                <configuration>
                    <filters>
                        <filter>src/assemble/filter.properties</filter>
                    </filters>
                    <descriptors>
                        <descriptor>src/assemble/distribution.xml</descriptor>
                    </descriptors>
                    <tarLongFileMode>gnu</tarLongFileMode>
                </configuration>
                <executions>
                    <execution>
                        <id>assemble</id>
                        <phase>verify</phase>
                        <goals>
                            <goal>assembly</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

        </plugins>
    </build>


    <!-- Note: site URL repeated here to ensure correct deployment path -->
    <distributionManagement>
        <repository>
            <id>sourceforge-releases</id>
            <name>Sourceforge Release Repository</name>
            <url>http://oss.sonatype.org/content/repositories/sourceforge-releases</url>
        </repository>
        <snapshotRepository>
            <id>sourceforge-snapshots</id>
            <name>Sourceforge Snapshot Repository</name>
            <url>http://oss.sonatype.org/content/repositories/sourceforge-snapshots</url>
        </snapshotRepository>
    </distributionManagement>
</project>