<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>
	<groupId>org.eclipse.emfcloud</groupId>
	<artifactId>emfjson-jackson</artifactId>
	<packaging>jar</packaging>
	<version>2.1.0</version>
	<name>EMF JSON De-/Serialization using Jackson</name>
	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>7</version>
	</parent>

	<licenses>
		<license>
			<name>Eclipse Public License - v2.0</name>
			<url>http://www.eclipse.org/legal/epl-v20.html</url>
			<distribution>repo</distribution>
		</license>
		<license>
			<name>MIT License</name>
			<url>https://opensource.org/licenses/MIT</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<issueManagement>
		<system>GitHub Issues</system>
		<url>https://github.com/eclipse-emfcloud/emfjson-jackson/issues</url>
	</issueManagement>

	<developers>
		<developer>
			<id>ghillairet</id>
			<name>G. Hillairet</name>
			<email>g.hillairet@gmail.com</email>
		</developer>
		<developer>
			<name>Eclipse EMF.cloud Project</name>
			<email>emfcloud-dev@eclipse.org</email>
			<organization>Eclipse EMF.cloud</organization>
			<organizationUrl>https://projects.eclipse.org/projects/ecd.emfcloud</organizationUrl>
		</developer>
	</developers>

	<scm>
		<url>scm:git:git@github.com:eclipse-emfcloud/emfjson-jackson.git</url>
		<connection>scm:git:git@github.com:eclipse-emfcloud/emfjson-jackson.git</connection>
		<developerConnection>scm:git:git@github.com:eclipse-emfcloud/emfjson-jackson.git</developerConnection>
		<tag>HEAD</tag>
	</scm>

	<properties>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<maven.compiler.fork>true</maven.compiler.fork>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<jackson-version>2.12.6</jackson-version>
		<emf-version>2.19.0</emf-version>
		<emf-common-version>2.16.0</emf-common-version>
		<emf-codegen-version>2.19.0</emf-codegen-version>
		<xtext-version>2.19.0</xtext-version>
		<ecore-xtext-version>1.4.0</ecore-xtext-version>
		<ecore-xcore-version>1.11.0</ecore-xcore-version>
		<ecore-xcore-lib-version>1.4.0</ecore-xcore-lib-version>
		<checkstyle.plugin>3.1.2</checkstyle.plugin>
		<checkstyle>8.44</checkstyle>
	</properties>

	<pluginRepositories>
		<pluginRepository>
			<id>sonatype</id>
			<name>Sonatype</name>
			<url>https://oss.sonatype.org/content/groups/public</url>
		</pluginRepository>
	</pluginRepositories>

	<dependencies>

		<dependency>
			<groupId>org.eclipse.emf</groupId>
			<artifactId>org.eclipse.emf.common</artifactId>
			<version>${emf-common-version}</version>
		</dependency>

		<dependency>
			<groupId>org.eclipse.emf</groupId>
			<artifactId>org.eclipse.emf.ecore</artifactId>
			<version>${emf-version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson-version}</version>
		</dependency>

		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-annotations</artifactId>
			<version>${jackson-version}</version>
		</dependency>

		<!-- tests -->

		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.1</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.emf</groupId>
			<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
			<version>${emf-common-version}</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.assertj</groupId>
			<artifactId>assertj-core</artifactId>
			<version>3.13.2</version>
			<scope>test</scope>
		</dependency>

		<dependency>
			<groupId>org.mockito</groupId>
			<artifactId>mockito-core</artifactId>
			<version>3.0.0</version>
			<scope>test</scope>
		</dependency>

		<!-- xcore tests build -->

		<dependency>
			<groupId>org.eclipse.emf</groupId>
			<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
			<version>${ecore-xcore-lib-version}</version>
			<scope>provided</scope>
		</dependency>

		<dependency>
			<groupId>org.eclipse.xtext</groupId>
			<artifactId>org.eclipse.xtext.xbase.lib</artifactId>
			<version>${xtext-version}</version>
			<scope>provided</scope>
		</dependency>

	</dependencies>

	<profiles>
		<profile>
			<id>m2</id>
			<activation>
				<activeByDefault>true</activeByDefault>
			</activation>
			<build>

				<plugins>
					<plugin>
    					<groupId>biz.aQute.bnd</groupId>
    					<artifactId>bnd-maven-plugin</artifactId>
						<version>6.2.0</version>
						<extensions>true</extensions>
						<executions>
							<execution>
								<id>jar</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<bnd><![CDATA[
Bundle-SymbolicName: ${project.groupId}.${project.artifactId}
Import-Package: com.fasterxml.jackson.*;version="[2.6.0,3.0.0)",\
	*
Export-Package: org.eclipse.emfcloud.jackson.*
							]]></bnd>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-compiler-plugin</artifactId>
						<version>3.1</version>
						<configuration>
							<source>1.8</source>
							<target>1.8</target>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-javadoc-plugin</artifactId>
						<version>3.3.1</version>
						<executions>
							<execution>
								<id>attach-javadocs</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-surefire-plugin</artifactId>
						<version>2.18.1</version>
						<configuration>
							<argLine>-Xmx512M</argLine>
							<includes>
								<include>**/*TestSuite.java</include>
							</includes>
						</configuration>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-source-plugin</artifactId>
						<version>2.4</version>
						<executions>
							<execution>
								<id>attach-sources</id>
								<goals>
									<goal>jar</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-release-plugin</artifactId>
						<version>2.5.2</version>
						<configuration>
							<tagNameFormat>@{project.version}</tagNameFormat>
						</configuration>
					</plugin>

					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>build-helper-maven-plugin</artifactId>
						<version>1.9.1</version>
						<executions>
							<execution>
								<id>add-test-source</id>
								<phase>generate-test-sources</phase>
								<goals>
									<goal>add-test-source</goal>
								</goals>
								<configuration>
									<sources>
										<source>${basedir}/src/test/java-gen</source>
									</sources>
								</configuration>
							</execution>
							<execution>
								<id>parse-version</id>
								<goals>
									<goal>parse-version</goal>
								</goals>
							</execution>
						</executions>
					</plugin>

					<plugin>
						<artifactId>maven-clean-plugin</artifactId>
						<version>2.6.1</version>
						<configuration>
							<filesets>
								<fileset>
									<directory>src/test/java-gen</directory>
								</fileset>
							</filesets>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.eclipse.xtext</groupId>
						<artifactId>xtext-maven-plugin</artifactId>
						<version>${xtext-version}</version>
						<executions>
							<execution>
								<phase>generate-test-sources</phase>
								<goals>
									<goal>generate</goal>
								</goals>
							</execution>
						</executions>
						<configuration>
							<languages>
								<language>
									<setup>org.eclipse.xtext.ecore.EcoreSupport</setup>
								</language>
								<language>
									<setup>org.eclipse.emf.codegen.ecore.xtext.GenModelSupport</setup>
								</language>
								<language>
									<setup>org.eclipse.emf.ecore.xcore.XcoreStandaloneSetup</setup>
									<outputConfigurations>
										<outputConfiguration>
											<outputDirectory>${project.basedir}/src/test/java-gen</outputDirectory>
										</outputConfiguration>
									</outputConfigurations>
								</language>
							</languages>
							<sourceRoots>
								<root>${basedir}/src/test/resources/model</root>
							</sourceRoots>
						</configuration>
						<dependencies>
							<dependency>
								<groupId>org.eclipse.platform</groupId>
								<artifactId>org.eclipse.text</artifactId>
								<version>3.8.200</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.platform</groupId>
								<artifactId>org.eclipse.core.resources</artifactId>
								<version>3.13.400</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.xtext</groupId>
								<artifactId>org.eclipse.xtext.ecore</artifactId>
								<version>${xtext-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.xtext</groupId>
								<artifactId>org.eclipse.xtext.generator</artifactId>
								<version>${xtext-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.xtext</groupId>
								<artifactId>org.eclipse.xtext.builder.standalone</artifactId>
								<version>${xtext-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.codegen.ecore.xtext</artifactId>
								<version>${ecore-xtext-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.common</artifactId>
								<version>${emf-common-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.ecore</artifactId>
								<version>${emf-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.ecore.xmi</artifactId>
								<version>${emf-common-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.codegen</artifactId>
								<version>${emf-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.codegen.ecore</artifactId>
								<version>${emf-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.ecore.xcore</artifactId>
								<version>${ecore-xcore-version}</version>
							</dependency>
							<dependency>
								<groupId>org.eclipse.emf</groupId>
								<artifactId>org.eclipse.emf.ecore.xcore.lib</artifactId>
								<version>${ecore-xcore-lib-version}</version>
							</dependency>
						</dependencies>
					</plugin>
					<!-- to disable use -Dcheckstyle.skip -->
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-checkstyle-plugin</artifactId>
						<version>${checkstyle.plugin}</version>
						<configuration>
							<configLocation>emfcloud-checkstyle-8.44.xml</configLocation>
							<consoleOutput>true</consoleOutput>
							<excludes>**/src-gen/**/*.java</excludes>
						</configuration>
						<executions>
							<execution>
								<phase>validate</phase>
								<goals>
									<goal>check</goal>
								</goals>
							</execution>
						</executions>
						<dependencies>
							<dependency>
								<groupId>org.eclipse.emfcloud</groupId>
								<artifactId>org.eclipse.emfcloud.checkstyle</artifactId>
								<version>0.1.0-SNAPSHOT</version>
							</dependency>
							<dependency>
								<groupId>com.puppycrawl.tools</groupId>
								<artifactId>checkstyle</artifactId>
								<version>${checkstyle}</version>
							</dependency>
						</dependencies>
					</plugin>

				</plugins>

			</build>
		</profile>
		<profile>
			<id>m2-release</id>
			<distributionManagement>
				<snapshotRepository>
					<id>ossrh</id>
					<url>https://oss.sonatype.org/content/repositories/snapshots</url>
				</snapshotRepository>
			</distributionManagement>
			<build>
				<plugins>
					<!-- To release to Sonatype/Maven central -->
					<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>
							<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>
					<plugin>
						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-deploy-plugin</artifactId>
						<version>2.8</version>
						<configuration>
							<skip>true</skip>
						</configuration>
					</plugin>
					<plugin>
						<groupId>org.codehaus.mojo</groupId>
						<artifactId>versions-maven-plugin</artifactId>
						<version>2.7</version>
					</plugin>
				</plugins>
			</build>
		</profile>
	</profiles>

</project>
