<?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/xsd/maven-4.0.0.xsd">
    <parent>
        <groupId>org.apache.airavata</groupId>
        <artifactId>gfac</artifactId>
        <version>0.12</version>
        <relativePath>../pom.xml</relativePath>
    </parent>

    <modelVersion>4.0.0</modelVersion>
    <artifactId>airavata-gfac-hadoop</artifactId>
    <name>Airavata GFac Hadoop implementation</name>
    <description>This is the extension of GFAC to use Hadoop.</description>
    <url>http://airavata.apache.org/</url>

    <dependencies>
        <!-- Logging -->
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>

        <!-- GFAC schemas -->
        <dependency>
            <groupId>org.apache.airavata</groupId>
            <artifactId>airavata-gfac-core</artifactId>
            <version>${project.version}</version>
        </dependency>
        <!-- Test -->
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.testng</groupId>
            <artifactId>testng</artifactId>
            <version>6.1.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>jcl-over-slf4j</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>org.apache.airavata</groupId>
            <artifactId>airavata-server-configuration</artifactId>
	    <scope>test</scope>
        </dependency>
	    <dependency>
            <groupId>org.apache.airavata</groupId>
            <artifactId>airavata-client-configuration</artifactId>
            <scope>test</scope>
        </dependency>



        <!-- Hadoop provider related dependencies -->
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-core</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.hadoop</groupId>
            <artifactId>hadoop-client</artifactId>
            <version>1.0.3</version>
        </dependency>
        <dependency>
            <groupId>org.apache.whirr</groupId>
            <artifactId>whirr-core</artifactId>
            <version>0.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.whirr</groupId>
            <artifactId>whirr-hadoop</artifactId>
            <version>0.7.1</version>
        </dependency>
        <dependency>
            <groupId>org.hamcrest</groupId>
            <artifactId>hamcrest-all</artifactId>
            <version>1.1</version>
        </dependency>
        <dependency>
            <groupId>org.mockito</groupId>
            <artifactId>mockito-all</artifactId>
            <version>1.8.5</version>
        </dependency>
        <dependency>
            <groupId>commons-configuration</groupId>
            <artifactId>commons-configuration</artifactId>
            <version>1.7</version>
        </dependency>
        <dependency>
            <groupId>net.sf.jopt-simple</groupId>
            <artifactId>jopt-simple</artifactId>
            <version>3.2</version>
        </dependency>
    </dependencies>

</project>
