<?xml version="1.0" encoding="UTF-8"?>
<project xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_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>

  <parent>
    <groupId>cd.connect.composites.java</groupId>
    <artifactId>connect-composite-parent</artifactId>
	  <version>1.2</version>
    <relativePath>../connect-composite-parent</relativePath>
  </parent>
  <artifactId>connect-composite-restapp</artifactId>
  <version>1.1</version>
  <packaging>jar</packaging>
  <name>connect-composite-restapp</name>

	<description>
		composite REST app - this represents the baseline version that the Connect-Java repository uses
		for building microservice based REST apps. As they are all Jersey based, there is no real need for
		Spring or Guice. They always include Tracing, Prometheus, Health checks, Application Lifecycle, easy
		config injection, Bathe for application start with Service Loader initializers.

		We are focused on using JIB for Docker generation.
	</description>

	<url>https://clearpointnz.github.io/connect/</url>
	<developers>
		<developer>
			<email>richard@bluetrainsoftware.com</email>
			<id>rvowles</id>
			<name>Richard Vowles</name>
			<organization>on behalf of ClearPoint NZ Ltd</organization>
		</developer>
	</developers>

	<licenses>
		<license>
			<name>Apache License 2.0</name>
			<url>https://opensource.org/licenses/Apache-2.0</url>
		</license>
	</licenses>

	<scm>
		<connection>scm:git:git@github.com:clearpointnz/connect-java.git</connection>
		<developerConnection>scm:git:git@github.com:clearpointnz/connect-java.git</developerConnection>
		<url>git@github.com:clearpointnz/connect-java.git</url>
		<tag>connect-composite-restapp-1.1</tag>
	</scm>

  <properties>
  </properties>

  <dependencies>
	  <!-- prometheus -->
	  <dependency>
		  <groupId>cd.connect.composites.java</groupId>
		  <artifactId>connect-composite-prometheus</artifactId>
		  <version>[1.1,2)</version>
	  </dependency>

	  <!-- opentracing + logging connectivity -->
	  <dependency>
		  <groupId>cd.connect.composites.java</groupId>
		  <artifactId>connect-composite-tracing</artifactId>
		  <version>[1.1,2)</version>
	  </dependency>

	  <!-- opentracing for jaxrs -->
	  <dependency>
		  <groupId>io.opentracing.contrib</groupId>
		  <artifactId>opentracing-jaxrs2</artifactId>
		  <version>0.5.0</version>
	  </dependency>

	  <!-- declarative config -->
	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-app-declare-config</artifactId>
		  <version>[1.1,2)</version>
	  </dependency>

	  <!-- lifecycle events -->
	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-app-lifecycle</artifactId>
		  <version>[1.1,2)</version>
	  </dependency>

	  <!-- jersey server & client libs -->
	  <dependency>
		  <groupId>cd.connect.composites.java</groupId>
		  <artifactId>connect-composite-jersey</artifactId>
		  <version>[1.4,2)</version>
	  </dependency>

	  <!-- common jersey features for infrastructure, logging, exception handling, etc -->
	  <dependency>
		  <groupId>cd.connect.jersey</groupId>
		  <artifactId>connect-jersey-common</artifactId>
		  <version>[1.3,2)</version>
	  </dependency>

	  <!-- this gives us structured logging -->
	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-java-logging-log4j2</artifactId>
		  <version>1.1</version>
	  </dependency>

	  <!-- logging contexts -->
	  <dependency>
		  <groupId>cd.connect.composites.java</groupId>
		  <artifactId>connect-composite-logging</artifactId>
		  <version>[1.2,2)</version>
	  </dependency>

	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-prometheus-jersey</artifactId>
		  <version>[2.2,3)</version>
	  </dependency>

	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-java-jackson</artifactId>
		  <version>[1.2,2)</version>
	  </dependency>

	  <dependency>
		  <groupId>org.glassfish.jersey.containers</groupId>
		  <artifactId>jersey-container-grizzly2-http</artifactId>
		  <version>${jersey.version}</version>
	  </dependency>

	  <!-- runner and property loader -->
	  <dependency>
		  <groupId>com.bluetrainsoftware.bathe</groupId>
		  <artifactId>bathe-booter</artifactId>
		  <version>[3.2,4)</version>
		  <exclusions>
			  <exclusion>
				  <groupId>org.springframework.boot</groupId>
				  <artifactId>spring-boot-loader</artifactId>
			  </exclusion>
		  </exclusions>
	  </dependency>

	  <dependency>
		  <groupId>com.bluetrainsoftware.bathe.initializers</groupId>
		  <artifactId>system-property-loader</artifactId>
		  <version>3.1</version>
		  <exclusions>
			  <exclusion>
				  <groupId>*</groupId>
				  <artifactId>*</artifactId>
			  </exclusion>
		  </exclusions>
	  </dependency>

	  <!-- ensures JUL goes to SLF4J -->
	  <dependency>
		  <groupId>com.bluetrainsoftware.bathe.initializers</groupId>
		  <artifactId>jul-bridge</artifactId>
		  <version>2.1</version>
		  <exclusions>
			  <exclusion>
				  <groupId>*</groupId>
				  <artifactId>*</artifactId>
			  </exclusion>
		  </exclusions>
	  </dependency>

	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-env-logging</artifactId>
		  <version>[1.1,2)</version>
	  </dependency>

	  <dependency>
		  <groupId>cd.connect.common</groupId>
		  <artifactId>connect-env-property-headers</artifactId>
		  <version>[1.3,2)</version>
	  </dependency>
  </dependencies>

	<build>
		<plugins>
			<plugin>
				<groupId>io.repaint.maven</groupId>
				<artifactId>tiles-maven-plugin</artifactId>
				<version>2.10</version>
				<extensions>true</extensions>
				<configuration>
					<filtering>false</filtering>
					<tiles>
            <tile>cd.connect.tiles:tile-release:[1.1, 2)</tile>
					</tiles>
				</configuration>
			</plugin>
		</plugins>
	</build>

</project>
