<?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">
   <parent>
      <groupId>org.jboss</groupId>
      <artifactId>jboss-parent</artifactId>
      <version>20</version>
   </parent>
   <modelVersion>4.0.0</modelVersion>
   <groupId>org.obsidiantoaster</groupId>
   <artifactId>generator-backend</artifactId>
   <name>Obsidian Generator: Backend</name>
   <version>1.0.0.Alpha2</version>
   <packaging>war</packaging>

   <properties>
      <fabric8.version>2.2.176</fabric8.version>
      <fabric8.maven.plugin.version>3.1.92</fabric8.maven.plugin.version>
      <version.wildfly.swarm>2017.2.0</version.wildfly.swarm>
      <maven.compiler.source>1.8</maven.compiler.source>
      <maven.compiler.target>1.8</maven.compiler.target>
      <failOnMissingWebXml>false</failOnMissingWebXml>
      <obsidian.forge.version>${project.version}</obsidian.forge.version>
      <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
      <forge.version>3.5.0.Final</forge.version>
      <forge.service.version>1.0.0.Beta3</forge.service.version>
      <furnace.version>2.25.0.Final</furnace.version>
      <!-- SCM properties -->
      <obs.scm.git.connection>scm:git:git://github.com/obsidian-toaster/generator-backend.git</obs.scm.git.connection>
      <obs.scm.dev.connection>scm:git:git@github.com:obsidian-toaster/generator-backend.git</obs.scm.dev.connection>
      <obs.scm.url>http://github.com/obsidian-toaster/generator-backend</obs.scm.url>
      <obs.scm.tag>HEAD</obs.scm.tag>
      <!-- Nexus Staging Repo -->
      <serverId>jboss-releases-repository</serverId>
      <nexusUrl>https://repository.jboss.org/nexus/</nexusUrl>
      <skipStaging>false</skipStaging>
   </properties>

   <dependencyManagement>
      <dependencies>
         <dependency>
            <groupId>org.wildfly.swarm</groupId>
            <artifactId>bom-all</artifactId>
            <version>${version.wildfly.swarm}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>org.jboss.arquillian</groupId>
            <artifactId>arquillian-bom</artifactId>
            <version>1.1.10.Final</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.forge</groupId>
            <artifactId>forge-bom</artifactId>
            <version>${forge.version}</version>
            <scope>import</scope>
            <type>pom</type>
         </dependency>
         <dependency>
            <groupId>io.fabric8</groupId>
            <artifactId>fabric8-project-bom-with-platform-deps</artifactId>
            <version>${fabric8.version}</version>
            <type>pom</type>
            <scope>import</scope>
         </dependency>
         <dependency>
            <groupId>org.jboss.forge</groupId>
            <artifactId>forge-service-core</artifactId>
            <version>${forge.service.version}</version>
         </dependency>
      </dependencies>
   </dependencyManagement>

   <build>
      <finalName>generator</finalName>
      <plugins>
         <plugin>
            <artifactId>maven-release-plugin</artifactId>
            <configuration>
               <releaseProfiles>gpg-sign,jboss-release,release</releaseProfiles>
               <tagNameFormat>@{project.version}</tagNameFormat>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.sonatype.plugins</groupId>
            <artifactId>nexus-staging-maven-plugin</artifactId>
            <version>1.6.3</version>
            <extensions>true</extensions>
            <configuration>
               <autoReleaseAfterClose>true</autoReleaseAfterClose>
               <serverId>${serverId}</serverId>
               <nexusUrl>${nexusUrl}</nexusUrl>
               <skipStaging>${skipStaging}</skipStaging>
            </configuration>
         </plugin>         
         <plugin>
            <artifactId>maven-war-plugin</artifactId>
            <configuration>
               <webResources>
                  <resource>
                     <directory>src/main/webapp/WEB-INF</directory>
                     <filtering>true</filtering>
                     <include>web.xml</include>
                     <targetPath>WEB-INF</targetPath>
                  </resource>
               </webResources>
            </configuration>
         </plugin>
         <plugin>
            <groupId>org.jboss.forge.furnace</groupId>
            <artifactId>furnace-maven-plugin</artifactId>
            <version>${furnace.version}</version>
            <executions>
               <execution>
                  <id>deploy-addons</id>
                  <phase>compile</phase>
                  <goals>
                     <goal>addon-install</goal>
                  </goals>
                  <inherited>false</inherited>
                  <configuration>
                     <addonRepository>${project.build.directory}/${project.build.finalName}/WEB-INF/addons</addonRepository>
                     <addonIds>
                        <addonId>org.jboss.forge.addon:core,${forge.version}</addonId>
                        <addonId>org.obsidiantoaster.forge:obsidian-generator,${obsidian.forge.version}</addonId>
                     </addonIds>
                  </configuration>
               </execution>
            </executions>
         </plugin>
         <plugin>
            <groupId>org.wildfly.swarm</groupId>
            <artifactId>wildfly-swarm-plugin</artifactId>
            <version>${version.wildfly.swarm}</version>
            <configuration>
               <mainClass>org.obsidiantoaster.generator.Main</mainClass>
            </configuration>
            <executions>
               <execution>
                  <goals>
                     <goal>package</goal>
                  </goals>
               </execution>
            </executions>
         </plugin>
      </plugins>
      <pluginManagement>
         <plugins>
            <!--This plugin's configuration is used to store Eclipse m2e settings only. It has no influence on the Maven 
               build itself. -->
            <plugin>
               <groupId>org.eclipse.m2e</groupId>
               <artifactId>lifecycle-mapping</artifactId>
               <version>1.0.0</version>
               <configuration>
                  <lifecycleMappingMetadata>
                     <pluginExecutions>
                        <pluginExecution>
                           <pluginExecutionFilter>
                              <groupId>org.jboss.forge.furnace</groupId>
                              <artifactId>furnace-maven-plugin</artifactId>
                              <versionRange>[2.24.3.Final,)</versionRange>
                              <goals>
                                 <goal>addon-install</goal>
                              </goals>
                           </pluginExecutionFilter>
                           <action>
                              <ignore />
                           </action>
                        </pluginExecution>
                        <pluginExecution>
                           <pluginExecutionFilter>
                              <groupId>io.fabric8</groupId>
                              <artifactId>fabric8-maven-plugin</artifactId>
                              <versionRange>[3.1.92,)</versionRange>
                              <goals>
                                 <goal>resource</goal>
                              </goals>
                           </pluginExecutionFilter>
                           <action>
                              <ignore />
                           </action>
                        </pluginExecution>
                     </pluginExecutions>
                  </lifecycleMappingMetadata>
               </configuration>
            </plugin>
         </plugins>
      </pluginManagement>
   </build>

   <dependencies>
      <!-- Java EE 7 dependency -->
      <dependency>
         <groupId>javax</groupId>
         <artifactId>javaee-api</artifactId>
         <scope>provided</scope>
      </dependency>
      <!-- WildFly Swarm Fractions -->
      <dependency>
         <groupId>org.wildfly.swarm</groupId>
         <artifactId>cdi</artifactId>
      </dependency>
      <dependency>
         <groupId>org.wildfly.swarm</groupId>
         <artifactId>jaxrs-cdi</artifactId>
      </dependency>
      <dependency>
         <groupId>org.wildfly.swarm</groupId>
         <artifactId>jaxrs-jsonp</artifactId>
      </dependency>
      <dependency>
         <groupId>org.wildfly.swarm</groupId>
         <artifactId>management</artifactId>
      </dependency>

      <!-- Forge APIs -->
      <dependency>
         <groupId>org.jboss.forge</groupId>
         <artifactId>forge-service-core</artifactId>
      </dependency>

      <dependency>
         <groupId>org.wildfly.swarm</groupId>
         <artifactId>arquillian</artifactId>
         <scope>test</scope>
      </dependency>
      <!-- Brought in via Arquillian BOM, see dependencyManagement section above -->
      <dependency>
         <groupId>org.jboss.arquillian.junit</groupId>
         <artifactId>arquillian-junit-container</artifactId>
         <scope>test</scope>
      </dependency>
      <dependency>
         <groupId>org.jboss.arquillian.extension</groupId>
         <artifactId>arquillian-rest-client-impl-jersey</artifactId>
         <version>1.0.0.Alpha3</version>
      </dependency>
   </dependencies>
   <profiles>
      <profile>
         <id>openshift</id>
         <build>
            <plugins>
               <plugin>
                  <groupId>io.fabric8</groupId>
                  <artifactId>fabric8-maven-plugin</artifactId>
                  <version>${fabric8.maven.plugin.version}</version>
                  <configuration>
                     <generator>
                        <includes>
                           <include>wildfly-swarm</include>
                        </includes>
                     </generator>
                  </configuration>
                  <executions>
                     <execution>
                        <goals>
                           <goal>resource</goal>
                           <goal>build</goal>
                        </goals>
                     </execution>
                  </executions>
               </plugin>
            </plugins>
         </build>
      </profile>
   </profiles>
   <scm>
      <connection>${obs.scm.git.connection}</connection>
      <developerConnection>${obs.scm.dev.connection}</developerConnection>
      <url>${obs.scm.url}</url>
      <tag>1.0.0.Alpha2</tag>
   </scm>
</project>
