<?xml version="1.0" encoding="UTF-8"?>
<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/maven-v4_0_0.xsd">

	<!-- for releasing to Maven Central / OSS Sonatype -->
	<parent>
		<groupId>org.sonatype.oss</groupId>
		<artifactId>oss-parent</artifactId>
		<version>9</version>
	</parent>

	<modelVersion>4.0.0</modelVersion>
	<groupId>org.biojava</groupId>
	<artifactId>biojava</artifactId>
	<packaging>pom</packaging>
	<version>5.0.0-alpha11</version>
	<name>biojava</name>
	<description>BioJava is an open-source project dedicated to providing a Java framework for processing biological
        data. It provides analytical and statistical routines, parsers for common file formats and allows the
        manipulation of sequences and 3D structures. The goal of the biojava project is to facilitate rapid application
        development for bioinformatics.
    </description>
	<url>http://www.biojava.org</url>
	<organization>
		<name>BioJava</name>
		<url>http://www.biojava.org</url>
	</organization>
	<licenses>
		<license>
			<name>GNU LGPL v2</name>
			<url>http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt</url>
			<distribution>repo</distribution>
		</license>
	</licenses>
	<properties>
		<jdk.version>1.8</jdk.version>
		<maven.enforcer.jdk-version>1.8</maven.enforcer.jdk-version>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<project.build.targetEncoding>UTF-8</project.build.targetEncoding>
		<maxmem>512M</maxmem>
		<mmtf.version>1.0.7</mmtf.version>
		<slf4j.version>1.7.21</slf4j.version>
		<log4j.version>2.6.1</log4j.version>
	</properties>
	<scm>
		<connection>scm:git:git://github.com/biojava/biojava.git</connection>
		<developerConnection>scm:git:git@github.com:biojava/biojava.git</developerConnection>
		<url>https://github.com/biojava/biojava</url>

		<tag>biojava-5.0.0-alpha11</tag>
	</scm>

	<!-- This section required for release at Maven Central. For a full list 
		of Developers, please see https://github.com/orgs/biojava/members For a list 
		of contributors, please see https://github.com/biojava/biojava/graphs/contributors -->
	<developers>
		<developer>
			<id>andreas</id>
			<name>Andreas Prlic</name>
			<email>andreas.prlic@gmail.com</email>
			<url>http://www.spice-3d.org</url>
			<organization>University of California, San Diego</organization>
			<organizationUrl>http://www.rcsb.org</organizationUrl>
			<roles>
				<role>project lead</role>
				<role>architect</role>
				<role>developer</role>
			</roles>
			<timezone>-9</timezone>
			<properties>
				<picUrl>http://tinyurl.com/mymsfga</picUrl>
			</properties>
		</developer>
		<developer>
			<id>lafita</id>
			<name>Aleix Lafita</name>
		</developer>
		<developer>
			<name>Amr AL-HOSSARY</name>
		</developer>
		<developer>
			<name>Andreas Dräger</name>
		</developer>
		<developer>
			<name>Andy Yates</name>
		</developer>
      	<developer>
            <name>Anthony Bradley</name>
      	</developer>
		<developer>
			<name>Carmelo Foti</name>
		</developer>
		<developer>
			<name>Chuan Hock Koh</name>
		</developer>
		<developer>
			<name>Douglas Myers-Turnbull</name>
		</developer>
		<developer>
			<name>Gediminas Rimsa</name>
		</developer>
		<developer>
			<name>George Waldon</name>
		</developer>
		<developer>
			<name>Hannes Brandstätter-Müller</name>
		</developer>
		<developer>
			<name>Elinow</name>
		</developer>
		<developer>
			<name>Jianjiong Gao</name>
		</developer>
		<developer>
			<name>Jonathan Warren</name>
		</developer>
		<developer>
			<name>Jose Manuel Duarte</name>
		</developer>
		<developer>
			<name>Jules Jacobsen</name>
		</developer>
		<developer>
			<name>Karl Nicholas</name>
		</developer>
		<developer>
			<name>Mark Chapman</name>
		</developer>
		<developer>
			<name>Michael Heuer</name>
		</developer>
		<developer>
			<name>Peter Rose</name>
		</developer>
		<developer>
			<name>Peter Troshin</name>
		</developer>
		<developer>
			<name>Richard Holland</name>
		</developer>
		<developer>
			<name>Robert Thornton</name>
		</developer>
		<developer>
			<name>Scooter Willis</name>
		</developer>
		<developer>
			<name>Spencer Bliven</name>
		</developer>
		<developer>
			<name>Sylvain Foisy</name>
		</developer>
	</developers>


	<build>
		<pluginManagement>
			<plugins>
				<plugin>
					<artifactId>maven-clean-plugin</artifactId>
					<version>3.0.0</version>
				</plugin>
				<plugin>
					<artifactId>maven-compiler-plugin</artifactId>
					<version>3.5.1</version>
					<configuration>
						<source>${jdk.version}</source>
						<target>${jdk.version}</target>
					</configuration>
				</plugin>
				<plugin>
					<artifactId>maven-dependency-plugin</artifactId>
					<version>2.10</version>
				</plugin>
				<plugin>
					<artifactId>maven-jar-plugin</artifactId>
					<!-- warning: before upgrading to a newer version of this plugin
					      there are some config changes required.
					      see https://github.com/biojava/biojava/issues/531
					      -->
					<version>2.6</version>
				</plugin>
				<plugin>
					<artifactId>maven-scm-plugin</artifactId>
					<version>1.9.4</version>
				</plugin>
				<plugin>
					<artifactId>maven-source-plugin</artifactId>
					<version>3.0.1</version>
				</plugin>
				<plugin>
					<artifactId>maven-failsafe-plugin</artifactId>
					<version>2.19.1</version>
				</plugin>
				<plugin>
					<groupId>net.sf</groupId>
					<artifactId>stat-scm</artifactId>
					<version>1.2.0</version>
				</plugin>
				<plugin>
					<groupId>org.jvnet.jaxb2.maven2</groupId>
					<artifactId>maven-jaxb2-plugin</artifactId>
					<version>0.13.1</version>
				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-release-plugin</artifactId>
					<version>2.5.3</version>
					<configuration>
						<remoteTagging>true</remoteTagging>
						<preparationGoals>clean install</preparationGoals>
						<autoVersionSubmodules>true</autoVersionSubmodules>

						<!-- work around for GPG hanging issue http://jira.codehaus.org/browse/MGPG-9 -->
						<mavenExecutorId>forked-path</mavenExecutorId>

						<!-- needed for jenkins release plugin -->
						<useReleaseProfile>true</useReleaseProfile>
						<arguments>-Pgpg-release</arguments>
					</configuration>

				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-javadoc-plugin</artifactId>
					<version>2.10.4</version>
					<configuration>
					    <additionalparam>-Xdoclint:none</additionalparam>
					    <!-- we need to allow script in comments or otherwise we can't use google analytics js in footer below - JD 2017-03-30 -->
						<additionalparam>--allow-script-in-comments</additionalparam>
						<maxmemory>256m</maxmemory>
						<footer>
							&lt;script src="http://www.google-analytics.com/urchin.js"
							type="text/javascript"&gt;&lt;/script&gt;&lt;script
							type="text/javascript"&gt;_uacct =
							"UA-1326640-1";urchinTracker();&lt;/script&gt;
						</footer>
					</configuration>

				</plugin>
				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-shade-plugin</artifactId>
					<version>2.4.3</version>
				</plugin>
				<plugin>
					<artifactId>maven-assembly-plugin</artifactId>
					<version>2.6</version>
					<configuration>
						<descriptors>
							<descriptor>src/main/assembly/assembly.xml</descriptor>
						</descriptors>
					</configuration>

					<!-- Attach the creation of the assembly to the package phase. -->
					<executions>
						<execution>
							<id>assemble</id>
							<phase>package</phase>
							<goals>
								<goal>single</goal>
							</goals>
						</execution>
					</executions>

				</plugin>
				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>findbugs-maven-plugin</artifactId>
					<version>3.0.3</version>
				</plugin>

				<plugin>
					<groupId>org.codehaus.mojo</groupId>
					<artifactId>buildnumber-maven-plugin</artifactId>
					<version>1.4</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-checkstyle-plugin</artifactId>
					<version>2.17</version>
				</plugin>

				<plugin>
					<groupId>org.apache.maven.plugins</groupId>
					<artifactId>maven-resources-plugin</artifactId>
					<version>3.0.1</version>
				</plugin>

				<plugin>
					<artifactId>maven-enforcer-plugin</artifactId>
					<version>1.4.1</version>
					<executions>
						<execution>
							<id>enforce-java</id>
							<goals>
								<goal>enforce</goal>
							</goals>
							<configuration>
								<rules>
									<requireJavaVersion>
										<version>${maven.enforcer.jdk-version}</version>
									</requireJavaVersion>
								</rules>
							</configuration>
						</execution>
					</executions>
				</plugin>

			</plugins>
		</pluginManagement>


		<plugins>

			<!-- for deployment on OSS Sonatype -->
			<plugin>
				<groupId>org.sonatype.plugins</groupId>
				<artifactId>nexus-staging-maven-plugin</artifactId>
				<version>1.6.7</version>
				<extensions>true</extensions>
				<configuration>
					<serverId>ossrh</serverId>
					<nexusUrl>https://oss.sonatype.org/</nexusUrl>
					<autoReleaseAfterClose>true</autoReleaseAfterClose>
				</configuration>
			</plugin>

			<!-- for digital signing of code -->
			<!--<plugin> -->
			<!--<groupId>org.apache.maven.plugins</groupId> -->
			<!--<artifactId>maven-gpg-plugin</artifactId> -->
			<!--<version>1.5</version> -->
			<!--<executions> -->
			<!--<execution> -->
			<!--<id>sign-artifacts</id> -->
			<!--<phase>verify</phase> -->
			<!--<goals> -->
			<!--<goal>sign</goal> -->
			<!--</goals> -->
			<!--</execution> -->
			<!--</executions> -->
			<!--</plugin> -->

			<!-- give more memory for junit tests -->
			<plugin>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.19.1</version>
				<configuration>
					<argLine>-Xmx1500M</argLine>
					<reuseForks>false</reuseForks>
					<forkCount>1</forkCount>

					<excludes>
						<!-- we exclude by default the long parsing tests, they will only be 
							executed if explicitly called -->
						<exclude>**/TestLongPdbVsMmCifParsing.java</exclude>
						<exclude>**/TestAtomCachePerformance.java</exclude>
						<exclude>**/EcodInstallationTest.java</exclude>
					</excludes>
				</configuration>
			</plugin>


			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jar-plugin</artifactId>

				<configuration>
					<archive>
						<addMavenDescriptor>false</addMavenDescriptor>
						<manifest>
							<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
							<addDefaultImplementationEntries>true</addDefaultImplementationEntries>

						</manifest>
						<manifestEntries>
							<Trusted-Library>true</Trusted-Library>
							<Permissions>all-permissions</Permissions>
							<Codebase>*</Codebase>
							<Application-Name>BioJava</Application-Name>
						</manifestEntries>
					</archive>
				</configuration>

			</plugin>


			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<configuration>
					<!-- <enableFilesSummary>true</enableFilesSummary> <enableSeveritySummary>true</enableSeveritySummary> -->
					<enableRulesSummary>false</enableRulesSummary>
					<!-- <consoleOutput>true</consoleOutput> -->
				</configuration>
			</plugin>

			<plugin>
				<groupId>com.versioneye</groupId>
				<artifactId>versioneye-maven-plugin</artifactId>
				<version>3.9.2</version>
			</plugin>

			<!-- code coverage plugin -->
			<plugin>
				<groupId>org.eluder.coveralls</groupId>
				<artifactId>coveralls-maven-plugin</artifactId>
				<version>4.2.0</version>
				<!--<configuration>-->
					<!--<repoToken>YOURTOKENGOESHERE</repoToken>-->
				<!--</configuration>-->
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>cobertura-maven-plugin</artifactId>
				<version>2.7</version>
				<configuration>
					<check>true</check>
					<format>xml</format>
					<maxmem>256m</maxmem>
					<!-- aggregated reports for multi-module projects -->
					<aggregate>true</aggregate>

					<instrumentation>
						<excludes>
							<exclude>org/biojava/nbio/structure/io/mmcif/MMCIFFileTools.class</exclude>
							<exclude>org/biojava/nbio/structure/symmetry/utils/SymmetryTools.class</exclude>
							<exclude>demo/DemoFATCAT.class</exclude>
							<exclude>org/biojava/nbio/structure/align/ce/CECalculator.class</exclude>
						</excludes>
						<ignores>
							<ignore>org.biojava.nbio.structure.io.mmcif.MMCIFFileTools*</ignore>
							<ignore>demo.*</ignore>
						</ignores>
					</instrumentation>
				</configuration>
				<executions>
					<execution>
						<goals>
							<goal>clean</goal>
						</goals>
					</execution>
				</executions>
			</plugin>

		</plugins>

		<extensions>
			<extension>
				<groupId>org.apache.maven.wagon</groupId>
				<artifactId>wagon-ssh</artifactId>
				<version>2.6</version>
			</extension>
		</extensions>



	</build>

	<dependencyManagement>
		<dependencies>
			<dependency>
				<groupId>junit</groupId>
				<artifactId>junit</artifactId>
				<version>4.12</version>
				<scope>test</scope>
			</dependency>
			<dependency>
				<groupId>org.slf4j</groupId>
				<artifactId>slf4j-api</artifactId>
				<version>${slf4j.version}</version>
			</dependency>
			<!-- binding for log4j 2 -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-slf4j-impl</artifactId>
				<version>${log4j.version}</version>
				<!-- runtime scope includes the test scope as well -->
				<scope>runtime</scope>
			</dependency>
			<!-- Log4j API and Core implementation required for binding -->
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-api</artifactId>
				<version>${log4j.version}</version>
				<!-- runtime scope includes the test scope as well -->
				<scope>runtime</scope>
			</dependency>
			<dependency>
				<groupId>org.apache.logging.log4j</groupId>
				<artifactId>log4j-core</artifactId>
				<version>${log4j.version}</version>
				<!-- runtime scope includes the test scope as well -->
				<scope>runtime</scope>
			</dependency>
			<dependency>
				<groupId>org.biojava.thirdparty</groupId>
				<artifactId>forester</artifactId>
				<version>1.038</version>
			</dependency>
		</dependencies>
	</dependencyManagement>

	<reporting>
		<plugins>
			<plugin>
				<artifactId>maven-javadoc-plugin</artifactId>
				<version>2.10.4</version>
				<configuration>
					<aggregate>true</aggregate>
					<breakiterator>true</breakiterator>
					<quiet>true</quiet>
					<source>1.7</source>
					<verbose>false</verbose>
					<linksource>true</linksource>

				</configuration>
			</plugin>
			<plugin>
				<artifactId>maven-project-info-reports-plugin</artifactId>
				<version>2.9</version>
				<reportSets>
					<reportSet>
						<reports>
							<report>index</report>
							<report>summary</report>
							<report>modules</report>
							<report>scm</report>
							<report>dependency-management</report>
							<report>dependencies</report>
							<report>dependency-convergence</report>
							<report>distribution-management</report>
						</reports>
					</reportSet>
				</reportSets>
			</plugin>
			<plugin>
				<groupId>org.codehaus.mojo</groupId>
				<artifactId>findbugs-maven-plugin</artifactId>
				<version>3.0.3</version>
			</plugin>

			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-checkstyle-plugin</artifactId>
				<version>2.17</version>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-jxr-plugin</artifactId>
				<version>2.5</version>
			</plugin>
		</plugins>
	</reporting>


	<profiles>

		<!-- Note: before you can use this build profile you need to set up an 
			environment that contains correctly signed keys. Configure the keystore properties 
			and the profile in ~/.m2/settings.xml -->
		<profile>
			<id>codesigning</id>
			<activation>
				<activeByDefault>false</activeByDefault>
			</activation>
			<build>
				<plugins>
					<plugin>

						<groupId>org.apache.maven.plugins</groupId>
						<artifactId>maven-jarsigner-plugin</artifactId>
						<version>1.4</version>
						<executions>
							<execution>
								<id>sign</id>
								<goals>
									<goal>sign</goal>
								</goals>
							</execution>
						</executions>

						<configuration>

							<verbose>true</verbose>
							<certs>true</certs>
							<storetype>${keystore.type}</storetype>
							<keystore>${keystore.path}</keystore>
							<alias>${keystore.alias}</alias>
							<storepass>${keystore.store.password}</storepass>
							<keypass>${keystore.key.password}</keypass>
							<signedjar>${project.build.directory}/${project.build.finalName}.jar</signedjar>
							<verify>true</verify>
							<verbose>true</verbose>
							<goal>sign</goal>
							<arguments>
								<argument>-tsa</argument>
								<argument>https://timestamp.geotrust.com/tsa</argument>
							</arguments>
						</configuration>
					</plugin>


				</plugins>
			</build>
		</profile>

		<profile>
			<id>release-sign-artifacts</id>
			<activation>
				<property>
					<name>performRelease</name>
					<value>true</value>
				</property>
			</activation>
			<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>
							</execution>
						</executions>
					</plugin>
				</plugins>
			</build>
		</profile>

	</profiles>

	<modules>

		<module>biojava-core</module>
		<module>biojava-alignment</module>
		<module>biojava-structure</module>
		<module>biojava-structure-gui</module>
		<module>biojava-sequencing</module>
		<module>biojava-genome</module>
		<module>biojava-modfinder</module>
		<module>biojava-ws</module>
		<module>biojava-protein-disorder</module>
		<module>biojava-aa-prop</module>
		<module>biojava-survival</module>
		<module>biojava-ontology</module>
		<!-- Keep integration tests last  -->
		<module>biojava-integrationtest</module>
	</modules>
	<inceptionYear>2000</inceptionYear>
	<issueManagement>
		<system>Github</system>
		<url>https://github.com/biojava/biojava/issues</url>
	</issueManagement>
		<ciManagement>
			<system>Travis</system>
			<url>https://travis-ci.org/biojava/biojava</url>
		</ciManagement>
</project>
