<?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>M2-incubating</version>
		<relativePath>../pom.xml</relativePath>
	</parent>
	<artifactId>photark-filesystem</artifactId>
	<name>Apache PhotArk FileSystem Services</name>

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

		<dependency>
			<groupId>org.apache.photark</groupId>
			<artifactId>photark</artifactId>
			<version>M2-incubating</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.8.1</version>
			<scope>test</scope>
		</dependency>
	</dependencies>

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

</project>
