<?xml version="1.0" encoding="UTF-8"?>
<!-- 
Copyright 2010 California Institute of Technology. ALL RIGHTS
RESERVED. U.S. Government Sponsorship acknowledged.

$Id$
-->
<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>
  <artifactId>opendapps</artifactId>
  <name>Apache OODT Configurable OPeNDAP Profile Server</name>
  <description>A generic, configurable Apache OODT profile server
  implementation that easily connects to OPeNDAP data sources. Connections 
  are configured via an XML configuration file, providing information on how 
  to extract and translate datasets from OPeNDAP and THREDDS into OODT profiles.
  </description> 
  <scm>
   	<connection>scm:svn:https://svn.apache.org/repos/asf/oodt/tags/0.5/opendapps</connection>
   	<developerConnection>scm:svn:https://svn.apache.org/repos/asf/oodt/tags/0.5/opendapps</developerConnection>
   	<url>http://svn.apache.org/viewvc/oodt/tags/0.5/opendapps</url>
  </scm>
  <parent>
    <groupId>org.apache.oodt</groupId>
    <artifactId>oodt-core</artifactId>
    <version>0.5</version>
  </parent>
  <build>
    <plugins>
      <plugin>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <descriptorRefs>
            <descriptorRef>jar-with-dependencies</descriptorRef>
          </descriptorRefs>
        </configuration>
        <!-- enable creation of single jar to use this module stand alone -->
        <executions>
          <execution>
            <id>make-assembly</id> <!-- this is used for inheritance merges -->
            <phase>package</phase> <!-- bind to the packaging phase -->
            <goals>
              <goal>single</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
    </plugins>
  </build>
  <dependencies>
   <dependency>
     <groupId>edu.ucar</groupId>
     <artifactId>netcdf</artifactId>
     <version>4.2</version>
   </dependency>
   <dependency>
    <groupId>org.apache.oodt</groupId>
    <artifactId>oodt-profile</artifactId>
    <version>${project.parent.version}</version>
   </dependency>
   <dependency>
    <groupId>org.apache.oodt</groupId>
    <artifactId>oodt-xmlquery</artifactId>
    <version>${project.parent.version}</version>
   </dependency>
  </dependencies>
</project>
