<?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>org.apache.drat</groupId>
                <artifactId>dms</artifactId>
                <version>0.1</version>
                <relativePath>../pom.xml</relativePath>
        </parent>
        <name>DRAT Proteus</name>
        <artifactId>dms-proteus</artifactId>
        <packaging>war</packaging>
        <description></description>
	<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>
	<properties>
		<wicket.version>7.8.0</wicket.version>
		<log4j.version>2.3</log4j.version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
        <cxf.version>2.2.3</cxf.version>
        <!-- allowed values: R7, 1.0, 1.5, 2.0 or none -->
		<wtp.version>none</wtp.version>
	</properties>
	<dependencies>
		<!--  WICKET DEPENDENCIES -->
		<dependency>
			<groupId>org.apache.wicket</groupId>
			<artifactId>wicket-core</artifactId>
			<version>${wicket.version}</version>
		</dependency>

         <!-- LOGGING DEPENDENCIES - LOG4J -->
         <dependency>
                 <groupId>org.apache.logging.log4j</groupId>
                 <artifactId>log4j-slf4j-impl</artifactId>
                 <version>${log4j.version}</version>
         </dependency>
         <dependency>
                 <groupId>org.apache.logging.log4j</groupId>
                 <artifactId>log4j-core</artifactId>
                 <version>${log4j.version}</version>
         </dependency>

		<!--  JUNIT DEPENDENCY FOR TESTING -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>${junit.version}</version>
			<scope>test</scope>
		</dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-rs-client</artifactId>
            <version>3.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.apache.cxf</groupId>
            <artifactId>cxf-rt-transports-http-hc</artifactId>
            <!-- 2.7.8 or 3.0.0-milestone1 -->
            <version>3.1.2</version>
        </dependency>
        <dependency>
            <groupId>org.wicketstuff</groupId>
            <artifactId>wicketstuff-restannotations</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>org.wicketstuff</groupId>
            <artifactId>wicketstuff-restannotations-json</artifactId>
            <version>${wicket.version}</version>
        </dependency>
        <dependency>
            <groupId>net.lingala.zip4j</groupId>
            <artifactId>zip4j</artifactId>
            <version>1.3.2</version>
        </dependency>
	    <dependency>
		   <groupId>org.apache.httpcomponents</groupId>
		   <artifactId>httpclient</artifactId>
		   <version>4.5.2</version>
		   <scope>runtime</scope>
		</dependency>        
        <dependency>
            <groupId>org.apache.oodt</groupId>
            <artifactId>cas-metadata</artifactId>
            <version>${oodt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.oodt</groupId>
            <artifactId>cas-filemgr</artifactId>
            <version>${oodt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.oodt</groupId>
            <artifactId>cas-workflow</artifactId>
            <version>${oodt.version}</version>
        </dependency>
        <dependency>
            <groupId>org.apache.oodt</groupId>
            <artifactId>pcs-core</artifactId>
            <version>${oodt.version}</version>
        </dependency>
	    <dependency>
	       <groupId>org.reflections</groupId>
	       <artifactId>reflections</artifactId>
	       <version>0.9.9-RC1</version>
	    </dependency>
	    <dependency>
	    	<groupId>org.apache.commons</groupId>
	    	<artifactId>commons-exec</artifactId>
	    	<version>1.3</version>
	    </dependency>
		<dependency>
		  <groupId>org.apache.solr</groupId>
		  <artifactId>solr-solrj</artifactId>
		  <version>4.2.1</version>
		</dependency>	    
	</dependencies>
	<build>
	    <resources>
	        <resource>
	            <filtering>false</filtering>
	            <directory>src/main/resources</directory>
	        </resource>
	        <resource>
	            <filtering>false</filtering>
	            <directory>src/main/java</directory>
	            <includes>
	                <include>**</include>
	            </includes>
	            <excludes>
	                <exclude>**/*.java</exclude>
	            </excludes>
	        </resource>
	    </resources>
	    <testResources>
	        <testResource>
	            <filtering>false</filtering>
	            <directory>src/test/resources</directory>
	        </testResource>
	        <testResource>
	            <filtering>false</filtering>
	            <directory>src/test/java</directory>
	            <includes>
	                <include>**</include>
	            </includes>
	            <excludes>
	                <exclude>**/*.java</exclude>
	            </excludes>
	        </testResource>
	    </testResources>	
		<plugins>
			<plugin>
				<inherited>true</inherited>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<version>3.1</version>
				<configuration>
					<source>1.8</source>
					<target>1.8</target>
					<encoding>UTF-8</encoding>
					<showWarnings>true</showWarnings>
					<showDeprecation>true</showDeprecation>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-eclipse-plugin</artifactId>
				<version>2.9</version>
				<configuration>
					<downloadSources>true</downloadSources>
					<wtpversion>${wtp.version}</wtpversion>
				</configuration>
			</plugin>
        <plugin>
            <groupId>org.apache.tomcat.maven</groupId>
            <artifactId>tomcat7-maven-plugin</artifactId>
            <version>2.2</version>
            <configuration>
                <port>8181</port>
                <systemProperties>
                    <CATALINA_OPTS>-Djava.awt.headless=true -Dfile.encoding=UTF-8
                                    -server -Xms1536m -Xmx1536m
                                    -XX:NewSize=256m -XX:MaxNewSize=256m -XX:PermSize=256m
                                    -XX:MaxPermSize=512m -XX:+DisableExplicitGC
                                    -XX:+UseConcMarkSweepGC
                                    -XX:+CMSIncrementalMode
                                    -XX:+CMSIncrementalPacing
                                    -XX:CMSIncrementalDutyCycleMin=0
                                    -XX:-TraceClassUnloading
                    </CATALINA_OPTS>
                </systemProperties>
                <contextFile>${basedir}/src/main/webapp/META-INF/context.xml</contextFile>
                <path>/${project.build.finalName}</path>               
            </configuration>        
        </plugin>    
		</plugins>
	</build>

	<repositories>
		<repository>
			<id>Apache Nexus</id>
			<url>https://repository.apache.org/content/repositories/snapshots/</url>
			<releases>
				<enabled>false</enabled>
			</releases>
			<snapshots>
				<enabled>true</enabled>
			</snapshots>
		</repository>
	</repositories>
	</project>
