<?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.photark</groupId>
		<artifactId>photark-parent</artifactId>
		<version>1.0-incubating-SNAPSHOT</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>photark-jcr</artifactId>
	<name>Apache PhotArk JCR based Implementation</name>

	<dependencies>
        <dependency>
            <groupId>org.apache.photark</groupId>
            <artifactId>photark-security</artifactId>
            <version>1.0-incubating-SNAPSHOT</version>
        </dependency>
        <dependency>
			<groupId>org.apache.photark</groupId>
			<artifactId>photark</artifactId>
			<version>1.0-incubating-SNAPSHOT</version>
		</dependency>
         <dependency>
			<groupId>org.apache.photark</groupId>
			<artifactId>photark-flickr</artifactId>
			<version>1.0-incubating-SNAPSHOT</version>
		</dependency>
         <dependency>
			<groupId>org.apache.photark</groupId>
			<artifactId>photark-picasa</artifactId>
			<version>1.0-incubating-SNAPSHOT</version>
		</dependency>
		
        <!-- Tuscany Dependencies -->
		<dependency>
			<groupId>org.apache.tuscany.sca</groupId>
			<artifactId>tuscany-sca-api</artifactId>
			<version>${tuscany.version}</version>
		</dependency>

		<dependency>
			<groupId>org.apache.tuscany.sca</groupId>
			<artifactId>tuscany-data-api</artifactId>
			<version>${tuscany.version}</version>
		</dependency>

		<!-- JackRabbit Dependencies -->
		<!-- The JCR API -->
		<dependency>
			<groupId>javax.jcr</groupId>
			<artifactId>jcr</artifactId>
			<version>1.0</version>
		</dependency>

		<!-- Jackrabbit content repository -->
		<dependency>
			<groupId>org.apache.jackrabbit</groupId>
			<artifactId>jackrabbit-core</artifactId>
			<version>1.6.1</version>
			<!-- 
			<exclusions>
				<exclusion>
					<artifactId>jackrabbit-text-extractors</artifactId>
					<groupId>org.apache.jackrabbit</groupId>
				</exclusion>
			</exclusions>
		    -->
		</dependency>

		<!-- Use Log4J for logging -->
		<dependency>
			<groupId>org.slf4j</groupId>
			<artifactId>slf4j-log4j12</artifactId>
			<version>1.5.3</version>
		</dependency>

		<dependency>
			<groupId>org.apache.geronimo.specs</groupId>
			<artifactId>geronimo-commonj_1.1_spec</artifactId>
			<version>1.0</version>
			<scope>runtime</scope>
		</dependency>

		<dependency>
			<groupId>commons-fileupload</groupId>
			<artifactId>commons-fileupload</artifactId>
			<version>1.2.1</version>
		</dependency>

		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-compress</artifactId>
			<version>1.0</version>
		</dependency>

		<dependency>
			<groupId>commons-lang</groupId>
			<artifactId>commons-lang</artifactId>
			<version>2.4</version>
		</dependency>

		<!-- marking dependency as provided to exclude from war file -->
		<dependency>
			<groupId>javax.servlet</groupId>
			<artifactId>servlet-api</artifactId>
			<version>2.5</version>
			<scope>provided</scope>
		</dependency>
		
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.5</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

	<build>
		<finalName>${artifactId}</finalName>
	</build>
</project>