<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd" xmlns="http://maven.apache.org/POM/4.0.0"
	       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">

  <modelVersion>4.0.0</modelVersion>
  <groupId>org.eclipse.hawk</groupId>
  <artifactId>mondo-hawk-plain</artifactId>
  <version>0.0.1-SNAPSHOT</version>
  <packaging>pom</packaging>

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

  <modules>
    <module>core/plugins/org.eclipse.hawk.core/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.emf/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.emfresource/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.epsilon/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.graph/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.http/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.jgit/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.localfolder/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.modelio.exml/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.orientdb/pom-plain.xml</module>
    <module>core/plugins/org.eclipse.hawk.timeaware/pom-plain.xml</module>
    <module>greycat/org.eclipse.hawk.greycat/pom-plain.xml</module>
    <module>server/plugins/org.eclipse.hawk.service.api/pom-plain.xml</module>
    <module>server/plugins/org.eclipse.hawk.service.artemis/pom-plain.xml</module>
    <module>server/plugins/org.eclipse.hawk.service.emf/pom-plain.xml</module>
  </modules>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.ecore</artifactId>
        <version>2.10.2-v20150123-0348</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.common</artifactId>
        <version>2.10.1-v20150123-0348</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
        <version>2.10.2-v20150123-0348</version>
      </dependency>
      <dependency>
	      <groupId>org.slf4j</groupId>
	      <artifactId>slf4j-api</artifactId>
	      <version>1.7.7</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jgit</groupId>
        <artifactId>org.eclipse.jgit</artifactId>
        <version>5.5.0.201909110433-r</version>
      </dependency>
      <dependency>
	      <groupId>org.apache.httpcomponents</groupId>
	      <artifactId>httpclient</artifactId>
	      <version>4.3.6</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <sourceDirectory>src</sourceDirectory>
    <directory>target-plain</directory>
    <outputDirectory>target-plain/classes</outputDirectory>
    <testOutputDirectory>target-plain/test-classes</testOutputDirectory>    
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <version>3.3</version>
	      <configuration>
	        <source>1.8</source>
	        <target>1.8</target>
	      </configuration>
      </plugin>
    </plugins>
  </build>

  <repositories>
    <!-- Has Epsilon interim releases as snapshots -->
    <repository>
      <id>datathings</id>
      <url>https://registry.datathings.com/repository/public/</url>
    </repository>
  </repositories>

  <pluginRepositories>
    <pluginRepository>
      <id>cbi</id>
      <url>https://repo.eclipse.org/content/repositories/cbi-releases/</url>
    </pluginRepository>
  </pluginRepositories>

  <distributionManagement>
    <repository>
      <uniqueVersion>false</uniqueVersion>
      <id>ossrh</id>
      <name>OSSRH Release Staging Repository</name>
      <url>https://oss.sonatype.org/service/local/staging/deploy/maven2</url>
    </repository>
    <snapshotRepository>
      <uniqueVersion>false</uniqueVersion>
      <id>ossrh</id>
      <name>OSSRH Snapshots Repository</name>
      <url>https://oss.sonatype.org/content/repositories/snapshots</url>
    </snapshotRepository>
  </distributionManagement>

  <profiles>
    <profile>
      <id>gpl</id>
      <modules>
        <module>neo4j2/org.eclipse.hawk.neo4j-v2/pom-plain.xml</module>
      </modules>
    </profile>
    <profile>
      <id>gpg</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.apache.maven.plugins</groupId>
            <artifactId>maven-gpg-plugin</artifactId>
            <version>1.6</version>
            <executions>
              <execution>
                <id>sign-artifacts</id>
                <phase>verify</phase>
                <goals>
                  <goal>sign</goal>
                </goals>
                <configuration>
                  <gpgArguments>
                    <arg>--pinentry-mode</arg>
                    <arg>loopback</arg>
                  </gpgArguments>
                </configuration>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>signjars</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>1.1.5</version>
            <executions>
              <execution>
                <id>signjars</id>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
  </profiles>

</project>
