<?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">
  <modelVersion>4.0.0</modelVersion>

  <parent>
    <groupId>org.apache.sis</groupId>
    <artifactId>storage</artifactId>
    <version>0.8</version>
  </parent>


  <!-- ===========================================================
           Module Description
       =========================================================== -->
  <groupId>org.apache.sis.storage</groupId>
  <artifactId>sis-earth-observation</artifactId>
  <packaging>bundle</packaging>
  <name>Apache SIS Earth Observation storage</name>
  <description>
  <!-- Left alignment because this description will be copied in META-INF/MANIFEST.MF
       The leading space after the first line is necessary for proper formatting. -->
Landsat and MODIS metadata files to ISO 19115 metadata.
  </description>


  <!-- ===========================================================
           Developers and Contributors
       =========================================================== -->
  <developers>
    <developer>
      <name>Thi Phuong Hao Nguyen</name>
      <id>haonguyen</id>
      <email>nguyenthiphuonghao243@gmail.com</email>
      <organization>VNSC</organization>
      <organizationUrl>http://vnsc.org.vn</organizationUrl>
      <timezone>+7</timezone>
      <roles>
        <role>developer</role>
      </roles>
    </developer>
    <developer>
      <name>Rémi Maréchal</name>
      <email>remi.marechal@geomatys.com</email>
      <organization>Geomatys</organization>
      <organizationUrl>http://www.geomatys.com</organizationUrl>
      <timezone>+1</timezone>
      <roles>
        <role>developer</role>
      </roles>
    </developer>
    <developer>
      <name>Martin Desruisseaux</name>
      <id>desruisseaux</id>
      <email>desruisseaux@apache.org</email>
      <organization>Geomatys</organization>
      <organizationUrl>http://www.geomatys.com</organizationUrl>
      <timezone>+1</timezone>
      <roles>
        <role>developer</role>
      </roles>
    </developer>
  </developers>
  <contributors>
    <contributor>
      <name>Minh Chinh Vu</name>
      <email>chinhvm.uet.1995@gmail.com</email>
      <organization>VNSC</organization>
      <organizationUrl>http://vnsc.org.vn</organizationUrl>
      <timezone>+7</timezone>
      <roles>
        <role>developer</role>
      </roles>
    </contributor>
  </contributors>


  <!-- ===========================================================
           Build configuration
       =========================================================== -->
  <build>
    <plugins>
      <plugin>
        <groupId>org.apache.felix</groupId>
        <artifactId>maven-bundle-plugin</artifactId>
        <configuration>
          <instructions>
            <Bundle-SymbolicName>org.apache.sis.storage.earthobservation</Bundle-SymbolicName>
          </instructions>
        </configuration>
      </plugin>
    </plugins>
  </build>


  <!-- ===========================================================
           Dependencies
       =========================================================== -->
  <dependencies>
    <dependency>
      <groupId>org.apache.sis.storage</groupId>
      <artifactId>sis-storage</artifactId>
      <version>${project.version}</version>
    </dependency>
  </dependencies>

</project>
