<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>es.us.isa</groupId>
	<artifactId>restest</artifactId>
	<version>1.0.0</version>
	<packaging>jar</packaging>

	<name>RESTest</name>
	<description>A framework for automated black-box testing of RESTful web APIs</description>
	<url>https://github.com/isa-group/RESTest</url>

	<licenses>
		<license>
			<name> GNU Lesser General Public License (LGPL), version 3</name>
			<url>http://www.gnu.org/licenses/lgpl-3.0.en.html</url>
			<distribution>repo</distribution>
		</license>
	</licenses>

	<issueManagement>
		<system>Github</system>
		<url>https://github.com/isa-group/RESTest/issues</url>
	</issueManagement>

    <developers>
        <developer>
            <id>Martin-Lopez</id>
            <name>Alberto Martin-Lopez</name>
            <email>amarlop@us.es</email>
            <url>http://personal.us.es/amarlop/</url>
            <organization>University of Seville</organization>
            <organizationUrl>http://www.us.es</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>segura</id>
            <name>Sergio Segura</name>
            <email>sergiosegura@us.es</email>
            <url>http://personal.us.es/sergiosegura/</url>
            <organization>University of Seville</organization>
            <organizationUrl>http://www.us.es</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
        <developer>
            <id>japarejo</id>
            <name>José Antonio Parejo</name>
            <email>japarejo@us.es</email>
            <url>https://www.isa.us.es/3.0/members/jose-a-parejo/</url>
            <organization>University of Seville</organization>
            <organizationUrl>http://www.us.es</organizationUrl>
            <roles>
                <role>Developer</role>
            </roles>
        </developer>
		<developer>
			<id>jfdelarosa</id>
			<name>José Ramón Fernández de la Rosa</name>
			<email>jfdelarosa@us.es</email>
			<organization>University of Seville</organization>
			<organizationUrl>http://www.us.es</organizationUrl>
			<roles>
				<role>Developer</role>
			</roles>
		</developer>
	</developers>

	<scm>
		<connection>scm:git:https://github.com/isa-group/RESTest.git</connection>
		<developerConnection>scm:git:https://github.com/isa-group/RESTest.git</developerConnection>
		<url>https://github.com/isa-group/RESTest/tree/master</url>
	  <tag>restest-1.0.0</tag>
  </scm>

	<distributionManagement>
		<snapshotRepository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/content/repositories/snapshots</url>
		</snapshotRepository>
		<repository>
			<id>ossrh</id>
			<url>https://oss.sonatype.org/service/local/staging/deploy/maven2/</url>
		</repository>
	</distributionManagement>



	<properties>
		<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
		<maven.compiler.source>1.8</maven.compiler.source>
		<maven.compiler.target>1.8</maven.compiler.target>
		<aspectj.version>1.9.5</aspectj.version>
		<jmetal.version>5.9</jmetal.version>
		<swagger.version>2.1.2</swagger.version>
		<openapivalidator.version>2.11.0</openapivalidator.version>
		<restassured.version>4.2.0</restassured.version>
		<jackson.version>2.11.0</jackson.version>
		<allure.version>2.13.3</allure.version>
		<mockito.version>3.3.3</mockito.version>
		<sonar.projectKey>isa-group_RESTest</sonar.projectKey>
		<sonar.organization>isa-group</sonar.organization>
		<sonar.host.url>https://sonarcloud.io</sonar.host.url>
        <argLine />
	</properties>

	<dependencies>

		<!-- SWAGGER DEPENDENCIES -->
		<!-- https://mvnrepository.com/artifact/io.swagger.core.v3/swagger-core -->
		<dependency>
			<groupId>io.swagger.core.v3</groupId>
			<artifactId>swagger-core</artifactId>
			<version>${swagger.version}</version>
		</dependency>


		<!-- OPENAPI VALIDATOR DEPENDENCIES -->
		<!-- https://mvnrepository.com/artifact/com.atlassian.oai/swagger-request-validator -->
		<dependency>
			<groupId>com.atlassian.oai</groupId>
			<artifactId>swagger-request-validator-core</artifactId>
			<version>${openapivalidator.version}</version>
		</dependency>

		<dependency>
			<groupId>com.atlassian.oai</groupId>
			<artifactId>swagger-request-validator-restassured</artifactId>
			<version>${openapivalidator.version}</version>
		</dependency>


		<!-- REST ASSURED DEPENDENCIES -->
		<!-- REST Assured -->
		<dependency>
			<groupId>io.rest-assured</groupId>
			<artifactId>rest-assured</artifactId>
			<version>${restassured.version}</version>
		</dependency>


		<!-- JACKSON DEPENDENCIES -->
		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-core -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-core</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.core/jackson-databind -->
		<dependency>
			<groupId>com.fasterxml.jackson.core</groupId>
			<artifactId>jackson-databind</artifactId>
			<version>${jackson.version}</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/com.fasterxml.jackson.dataformat/jackson-dataformat-yaml -->
		<dependency>
			<groupId>com.fasterxml.jackson.dataformat</groupId>
			<artifactId>jackson-dataformat-yaml</artifactId>
			<version>${jackson.version}</version>
		</dependency>


        <!-- JMETAL DEPENDENCIES -->
        <!-- JMetal multi-objective optimization framework  -->
        <dependency>
            <groupId>org.uma.jmetal</groupId>
            <artifactId>jmetal-core</artifactId>
            <version>${jmetal.version}</version>
        </dependency>

        <dependency>
            <groupId>org.uma.jmetal</groupId>
            <artifactId>jmetal-problem</artifactId>
            <version>${jmetal.version}</version>
        </dependency>

        <dependency>
            <groupId>org.uma.jmetal</groupId>
            <artifactId>jmetal-algorithm</artifactId>
            <version>${jmetal.version}</version>
        </dependency>

        <dependency>
            <groupId>org.uma.jmetal</groupId>
            <artifactId>jmetal-exec</artifactId>
            <version>${jmetal.version}</version>
        </dependency>


        <!-- TEST DEPENDENCIES -->
		<!-- JUnit 4 -->
		<dependency>
			<groupId>junit</groupId>
			<artifactId>junit</artifactId>
			<version>4.13.1</version>
		</dependency>

		<!-- Allure Junit 4 -->
		<dependency>
			<groupId>io.qameta.allure</groupId>
			<artifactId>allure-junit4</artifactId>
			<version>${allure.version}</version>
		</dependency>

		<!-- Allure RESTAsured -->
		<dependency>
			<groupId>io.qameta.allure</groupId>
			<artifactId>allure-rest-assured</artifactId>
			<version>${allure.version}</version>
		</dependency>
		<!-- Mockito -->
		<dependency>
  			<groupId>org.mockito</groupId>
  			<artifactId>mockito-core</artifactId>
  			<version>${mockito.version}</version>
			<scope>test</scope>
		</dependency>


		<!-- MISC DEPENDENCIES -->
		<!-- Apache Common IO -->
		<dependency>
			<groupId>commons-io</groupId>
			<artifactId>commons-io</artifactId>
			<version>2.7</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-lang3</artifactId>
			<version>3.10</version>
		</dependency>

		<!-- https://mvnrepository.com/artifact/org.apache.commons/commons-text -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-text</artifactId>
			<version>1.8</version>
		</dependency>

		<!-- Apache Commongs Math -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-math3</artifactId>
			<version>3.6.1</version>
		</dependency>

		<!-- Library to generate random strings from regular expressions -->
		<dependency>
			<groupId>com.github.mifmif</groupId>
			<artifactId>generex</artifactId>
			<version>1.0.2</version>
		</dependency>

		<!-- Extended Java WordNet Library -->
		<dependency>
			<groupId>net.sf.extjwnl</groupId>
			<artifactId>extjwnl</artifactId>
			<version>1.9.4</version>
		</dependency>

		<!-- Princeton WordNet 3.1 -->
		<dependency>
			<groupId>net.sf.extjwnl</groupId>
			<artifactId>extjwnl-data-wn31</artifactId>
			<version>1.2</version>
		</dependency>

		<!-- CSV library -->
		<dependency>
			<groupId>org.apache.commons</groupId>
			<artifactId>commons-csv</artifactId>
			<version>1.8</version>
		</dependency>

		<!-- Apache log4j2 API -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-api</artifactId>
			<version>2.13.3</version>
		</dependency>

		<!-- Apache log4j2 core -->
		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-core</artifactId>
			<version>2.13.3</version>
		</dependency>

		<dependency>
			<groupId>org.apache.logging.log4j</groupId>
			<artifactId>log4j-iostreams</artifactId>
			<version>2.13.3</version>
		</dependency>

		<!-- Java tuples -->
		<dependency>
			<groupId>org.javatuples</groupId>
			<artifactId>javatuples</artifactId>
			<version>1.2</version>
		</dependency>

		<!-- JSONmutator dependency -->
		<dependency>
			<groupId>es.us.isa</groupId>
			<artifactId>json-mutator</artifactId>
			<version>0.0.1</version>
		</dependency>

		<!-- IDLreasoner dependency -->
		<dependency>
			<groupId>es.us.isa</groupId>
			<artifactId>idl-reasoner</artifactId>
			<version>0.0.1</version>
		</dependency>

		<!-- IDL dependency -->
		<dependency>
			<groupId>es.us.isa</groupId>
			<artifactId>idl</artifactId>
			<version>0.0.1</version>
		</dependency>

	</dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-compiler-plugin</artifactId>
				<configuration>
					<source>8</source>
					<target>8</target>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-assembly-plugin</artifactId>
				<version>3.3.0</version>
				<executions>
					<execution>
						<id>make-assembly</id>
						<phase>package</phase>
						<goals>
							<goal>single</goal>
						</goals>
						<configuration>
							<archive>
								<manifest>
									<mainClass>es.us.isa.restest.main.TestGenerationAndExecution</mainClass>
									<addDefaultImplementationEntries>true</addDefaultImplementationEntries>
									<addDefaultSpecificationEntries>true</addDefaultSpecificationEntries>
								</manifest>
							</archive>
							<finalName>restest-full</finalName>
							<appendAssemblyId>false</appendAssemblyId>
							<descriptorRefs>
								<descriptorRef>jar-with-dependencies</descriptorRef>
							</descriptorRefs>
						</configuration>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-surefire-plugin</artifactId>
				<version>2.21.0</version>
				<configuration>
					<useSystemClassLoader>false</useSystemClassLoader>
					<argLine>@{argLine} -javaagent:"${settings.localRepository}/org/aspectj/aspectjweaver/${aspectj.version}/aspectjweaver-${aspectj.version}.jar"</argLine>
					<properties>
						<property>
							<name>listener</name>
							<value>io.qameta.allure.junit4.AllureJunit4</value>
						</property>
					</properties>
					<systemProperties>
						<property>
							<name>allure.results.directory</name>
							<value>${project.build.directory}/allure-results</value>
						</property>
					</systemProperties>
				</configuration>
				<dependencies>
					<dependency>
						<groupId>org.aspectj</groupId>
						<artifactId>aspectjweaver</artifactId>
						<version>${aspectj.version}</version>
					</dependency>
				</dependencies>
			</plugin>
			<plugin>
				<groupId>io.qameta.allure</groupId>
				<artifactId>allure-maven</artifactId>
				<version>2.10.0</version>
				<configuration>
					<reportVersion>2.13.3</reportVersion>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.jacoco</groupId>
				<artifactId>jacoco-maven-plugin</artifactId>
				<version>0.8.5</version>
				<executions>
					<execution>
						<id>prepare-agent</id>
						<goals>
							<goal>prepare-agent</goal>
						</goals>
					</execution>
					<execution>
						<id>report</id>
						<goals>
							<goal>report</goal>
						</goals>
					</execution>
				</executions>
			</plugin>
			<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>true</autoReleaseAfterClose>
				</configuration>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-source-plugin</artifactId>
				<version>3.2.1</version>
				<executions>
					<execution>
						<id>attach-sources</id>
						<goals>
							<goal>jar-no-fork</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>
					</execution>
				</executions>
			</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>
					</execution>
				</executions>
			</plugin>
			<plugin>
				<groupId>org.apache.maven.plugins</groupId>
				<artifactId>maven-release-plugin</artifactId>
				<version>3.0.0-M1</version>
				<configuration>
					<autoVersionSubmodules>true</autoVersionSubmodules>
					<useReleaseProfile>false</useReleaseProfile>
					<releaseProfiles>release</releaseProfiles>
					<goals>deploy</goals>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>
