<?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>eclipse-hawk-plain</artifactId>
  <version>2.1.0-SNAPSHOT</version>
  <packaging>pom</packaging>

  <name>Eclipse Hawk Parent</name>
  <url>https://www.eclipse.org/hawk/</url>
  <description>
    Eclipse Hawk is a model indexing solution that can take models written with
    various technologies and turn them into graphs, for easier and faster
    querying.
  </description>

  <scm>
    <connection>scm:git:git://git.eclipse.org/gitroot/hawk/hawk.git</connection>
    <developerConnection>scm:git:ssh://git.eclipse.org:29418/hawk/hawk</developerConnection>
    <tag>HEAD</tag>
    <url>https://git.eclipse.org/c/hawk/hawk.git/</url>
  </scm>

  <licenses>
    <license>
      <name>Eclipse Public License 2.0</name>
      <url>https://www.eclipse.org/legal/epl-2.0/</url>
      <distribution>repo</distribution>
    </license>
  </licenses>

  <developers>
    <developer>
      <id>agarciad</id>
      <name>Antonio Garcia Dominguez</name>
      <url>https://cs.aston.ac.uk/~garcia-a/</url>
      <roles><role>Lead</role></roles>
    </developer>
    <developer>
      <id>dkolovos</id>
      <name>Dimitris Kolovos</name>
      <url>https://www.cs.york.ac.uk/people/dkolovos</url>
      <roles><role>Committer</role></roles>
    </developer>
    <developer>
      <id>jonco</id>
      <name>Jonathan Co</name>
      <roles><role>Committer</role></roles>
    </developer>
    <developer>
      <id>kbarmpis</id>
      <name>Konstantinos Barmpis</name>
      <roles><role>Committer</role></roles>
    </developer>
  </developers>

  <properties>
    <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    <epsilon.version>2.0.0</epsilon.version>
    <swt.version>3.114.0</swt.version>
  </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>
      <!-- Eclipse Platform -->
      <dependency>
        <groupId>org.eclipse.jgit</groupId>
        <artifactId>org.eclipse.jgit</artifactId>
        <version>5.7.0.202003110725-r</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.core.runtime</artifactId>
        <version>3.17.100</version>
      </dependency>

      <!-- JFace/SWT -->
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.swt</artifactId>
        <version>${swt.version}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.jface</artifactId>
        <version>3.19.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.jface.databinding</artifactId>
        <version>1.11.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.platform</groupId>
        <artifactId>org.eclipse.jface.text</artifactId>
        <version>3.16.200</version>
      </dependency>

      <!-- EMF -->
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.ecore</artifactId>
        <version>2.21.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.common</artifactId>
        <version>2.18.0</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.emf</groupId>
        <artifactId>org.eclipse.emf.ecore.xmi</artifactId>
        <version>2.16.0</version>
      </dependency>

      <!-- Orbit Equivalents -->
      <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.7</version>
      </dependency>
      <dependency>
        <groupId>org.apache.httpcomponents</groupId>
        <artifactId>httpclient</artifactId>
        <version>4.5.10</version>
      </dependency>
      <dependency>
        <groupId>com.google.guava</groupId>
        <artifactId>guava</artifactId>
        <version>27.1-jre</version>
      </dependency>
      <dependency>
        <groupId>commons-io</groupId>
        <artifactId>commons-io</artifactId>
        <version>2.2</version>
      </dependency>

      <!-- MapDB -->
      <dependency>
        <groupId>org.mapdb</groupId>
        <artifactId>mapdb</artifactId>
        <version>1.0.9</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>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-source-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-sources</id>
            <goals>
              <goal>jar</goal>
            </goals>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-javadoc-plugin</artifactId>
        <version>3.2.0</version>
        <executions>
          <execution>
            <id>attach-javadocs</id>
            <goals>
              <goal>jar</goal>
            </goals>
            <configuration>
              <additionalOptions>
                <additionalOption>-Xdoclint:none</additionalOption>
              </additionalOptions>
            </configuration>
          </execution>
        </executions>
      </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>
    <!-- These profiles are not for Jenkins: they are only for local builds and
         for making versions:set know about these pom-plain.xml files. -->
    <profile>
      <id>gpl</id>
      <modules>
        <module>neo4j2/org.eclipse.hawk.neo4j-v2/pom-plain.xml</module>
      </modules>
    </profile>
    <profile>
      <id>samples</id>
      <modules>
        <module>docs/org.eclipse.hawk.graph.samplerListener/pom-plain.xml</module>
      </modules>
    </profile>
    <profile>
      <id>svn</id>
      <modules>
        <module>core/plugins/org.eclipse.hawk.svn/pom-plain.xml</module>
      </modules>
    </profile>

    <profile>
      <id>signjars</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.eclipse.cbi.maven.plugins</groupId>
            <artifactId>eclipse-jarsigner-plugin</artifactId>
            <version>1.1.7</version>
            <executions>
              <execution>
                <id>signjars</id>
                <goals>
                  <goal>sign</goal>
                </goals>
              </execution>
            </executions>
          </plugin>
        </plugins>
      </build>
    </profile>
    <profile>
      <id>gpg</id>
      <build>
        <plugins>
          <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.8</version>
            <extensions>true</extensions>
            <configuration>
              <serverId>ossrh</serverId>
              <nexusUrl>https://oss.sonatype.org</nexusUrl>
              <!-- We want to check staged releases manually on
                   Sonatype OSSRH before we propagate to Central. -->
              <autoReleaseAfterClose>false</autoReleaseAfterClose>
            </configuration>
          </plugin>
          <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>
  </profiles>

</project>
