<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>

  <!-- The basics. -->
  <groupId>net.hydromatic</groupId>
  <artifactId>linq4j</artifactId>
  <packaging>jar</packaging>

  <!-- Version number. The version number committed to github should be
       TRUNK-SNAPSHOT except, briefly, when making a release. Next up: 0.1.4. -->
  <version>TRUNK-SNAPSHOT</version>

  <!-- More project information. -->
  <name>linq4j</name>
  <description>linq4j is a port of LINQ (Language-Integrated Query) to Java.</description>
  <url>http://github.com/julianhyde/linq4j</url>
  <inceptionYear>2012</inceptionYear>
  <organization>
    <name>Julian Hyde</name>
    <url>http://www.hydromatic.net</url>
  </organization>
  <licenses>
    <license>
      <name>Apache 2</name>
      <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>julianhyde</id>
      <name>Julian Hyde</name>
      <email>jhyde@pentaho.com</email>
      <url>https://github.com/julianhyde</url>
      <roles>
        <role>architect</role>
        <role>developer</role>
      </roles>
      <timezone>-8</timezone>
      <properties/>
    </developer>
  </developers>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
  </properties>

  <!-- Environment settings. -->
  <distributionManagement>
    <repository>
      <id>conjars</id>
      <name>Concurrent Conjars repository</name>
      <url>http://conjars.org/repo</url>
      <layout>default</layout>
    </repository>
  </distributionManagement>

  <issueManagement>
    <system>github</system>
    <url>https://github.com/julianhyde/linq4j/issues</url>
  </issueManagement>

  <mailingLists>
    <mailingList>
      <name>Linq4j developers list</name>
      <subscribe>linq4j-dev-subscribe@googlegroups.com</subscribe>
      <unsubscribe>linq4j-dev-unsubscribe@googlegroups.com</unsubscribe>
      <post>linq4j-dev@googlegroups.com</post>
      <archive>http://groups.google.com/group/linq4j-dev</archive>
    </mailingList>
  </mailingLists>

  <scm>
    <connection>scm:git:git://github.com/julianhyde/linq4j.git</connection>
    <url>scm:git:git://github.com/julianhyde/linq4j.git</url>
  </scm>

  <!-- Dependencies. -->
  <dependencies>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <scope>test</scope>
    </dependency>
  </dependencies>

  <build>
<!--
 <extensions>
    <extension>
      <groupId>org.apache.maven.wagon</groupId>
      <artifactId>wagon-ssh</artifactId>
      <version>1.0-beta-6</version>
    </extension>
 </extensions>  
-->

    <plugins>
      <plugin>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>2.3.2</version>
        <configuration>
          <source>1.5</source>
          <target>1.5</target>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>2.2.1</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <phase>verify</phase>
            <goals>
              <goal>jar-no-fork</goal>
            </goals>
            </execution>
            </executions>
      </plugin>
<!--
      <plugin>
        <groupId>org.codehaus.mojo</groupId>
        <artifactId>wagon-maven-plugin</artifactId>
        <version>1.0-beta-3</version>
        <configuration>
          <fromFile>${project.build.directory}/${project.build.finalName}.jar</fromFile> 
          <url>scp://servername/</url>
          <toDir>.</toDir>
        </configuration>
      </plugin>
-->
    </plugins>
  </build>

  <reporting>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>2.8.1</version>
        <configuration>
          <links>
            <link>http://docs.oracle.com/javase/7/docs/api/</link>
          </links>
        </configuration>
      </plugin>
    </plugins>
  </reporting>

</project>
