<?xml version="1.0"?>
<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>

  <parent>
    <groupId>org.kie</groupId>
    <artifactId>kie-parent</artifactId>
    <version>7.7.0.Final</version>
  </parent>

  <groupId>org.jbpm.contrib</groupId>
  <artifactId>workitems</artifactId>
  <packaging>pom</packaging>
  <name>jBPM :: Contrib :: Workitems</name>

  <modules>
    <module>template-resources</module>
    <module>archive-workitem</module>
    <module>exec-workitem</module>
    <module>ftp-workitem</module>
    <module>jabber-workitem</module>
    <module>java-workitem</module>
    <module>jpa-workitem</module>
    <module>parser-workitem</module>
    <module>rss-workitem</module>
    <module>transform-workitem</module>
    <module>google-calendar-workitem</module>
    <module>google-mail-workitem</module>
    <module>google-sheets-workitem</module>
    <module>google-tasks-workitem</module>
    <module>google-drive-workitem</module>
    <module>ibm-watson-workitem</module>
    <module>dropbox-workitem</module>
    <module>ifttt-workitem</module>
    <module>twitter-workitem</module>
    <module>github-workitem</module>
    <module>jira-workitem</module>
    <module>repository</module>
  </modules>

  <properties>
    <checkstyle.failOnViolation>true</checkstyle.failOnViolation>
    <checkstyle.logViolationsToConsole>true</checkstyle.logViolationsToConsole>
    <findbugs.failOnViolation>true</findbugs.failOnViolation>
    <checkstyle.header.template><![CDATA[
^\/\*$\n^
\* Copyright \d\d\d\d Red Hat, Inc\. and\/or its affiliates\.$\n^
\*$\n^
\* Licensed under the Apache License, Version 2\.0 \(the &quot;License&quot;\);$\n^
\* you may not use this file except in compliance with the License\.$\n^
\* You may obtain a copy of the License at$\n^
\*$\n^
\*     http:\/\/www\.apache\.org\/licenses\/LICENSE-2\.0$\n^
\*$\n^
\* Unless required by applicable law or agreed to in writing, software$\n^
\* distributed under the License is distributed on an &quot;AS IS&quot; BASIS,$\n^
\* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied\.$\n^
\* See the License for the specific language governing permissions and$\n^
\* limitations under the License\.$\n^
\*\/$
]]>
    </checkstyle.header.template>

    <version.org.kie>${project.version}</version.org.kie>
    <version.google.api.services.calendar>v3-rev87-1.19.0</version.google.api.services.calendar>
    <version.google.api.services.gmail>v1-rev72-1.23.0</version.google.api.services.gmail>
    <version.google.http.client>1.23.0</version.google.http.client>
    <version.google.sheets>v4-rev488-1.23.0</version.google.sheets>
    <version.google.tasks>v1-rev48-1.23.0</version.google.tasks>
    <version.google.drive>v2-rev285-1.23.0</version.google.drive>
    <version.ibm.developer.cloud>4.0.0</version.ibm.developer.cloud>
    <version.dropbox.core>3.0.5</version.dropbox.core>
    <version.jetty>8.1.17.v20150415</version.jetty>
    <version.twitter4j>4.0.6</version.twitter4j>
    <version.egit.github>2.1.5</version.egit.github>
    <version.atlassian.jira>1.0</version.atlassian.jira>

    <!-- Failsafe plugin-related properties -->
    <failsafe.arg.line>
      -Dfile.encoding=${project.build.sourceEncoding}
      -Xms256m
      -Xmx1024m
    </failsafe.arg.line>
    <it.test/>
  </properties>

  <dependencyManagement>
    <dependencies>
      <dependency>
        <groupId>org.drools</groupId>
        <artifactId>drools-core</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-flow</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-flow-builder</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-bpmn2</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-api</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-internal</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-api</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.kie</groupId>
        <artifactId>kie-dmn-core</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-workitems-core</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-document</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-workitems-email</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client</artifactId>
        <version>${version.google.http.client}</version>
      </dependency>
      <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client-java6</artifactId>
        <version>${version.google.http.client}</version>
      </dependency>
      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client</artifactId>
        <version>${version.google.http.client}</version>
      </dependency>
      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-calendar</artifactId>
        <version>${version.google.api.services.calendar}</version>
      </dependency>
      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-gmail</artifactId>
        <version>${version.google.api.services.gmail}</version>
      </dependency>
      <dependency>
        <groupId>com.google.http-client</groupId>
        <artifactId>google-http-client-jackson2</artifactId>
        <version>${version.google.http.client}</version>
      </dependency>
      <dependency>
        <groupId>com.google.oauth-client</groupId>
        <artifactId>google-oauth-client-jetty</artifactId>
        <version>${version.google.http.client}</version>
      </dependency>
      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-sheets</artifactId>
        <version>${version.google.sheets}</version>
      </dependency>
      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-tasks</artifactId>
        <version>${version.google.tasks}</version>
      </dependency>
      <dependency>
        <groupId>com.google.apis</groupId>
        <artifactId>google-api-services-drive</artifactId>
        <version>${version.google.drive}</version>
      </dependency>
      <dependency>
        <groupId>com.google.api-client</groupId>
        <artifactId>google-api-client</artifactId>
        <version>${version.google.http.client}</version>
      </dependency>
      <dependency>
        <groupId>com.ibm.watson.developer_cloud</groupId>
        <artifactId>java-sdk</artifactId>
        <version>${version.ibm.developer.cloud}</version>
      </dependency>
      <dependency>
        <groupId>com.ibm.watson.developer_cloud</groupId>
        <artifactId>visual-recognition</artifactId>
        <version>${version.ibm.developer.cloud}</version>
      </dependency>
      <dependency>
        <groupId>com.ibm.watson.developer_cloud</groupId>
        <artifactId>core</artifactId>
        <version>${version.ibm.developer.cloud}</version>
      </dependency>
      <dependency>
        <groupId>com.dropbox.core</groupId>
        <artifactId>dropbox-core-sdk</artifactId>
        <version>${version.dropbox.core}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.mylyn.github</groupId>
        <artifactId>org.eclipse.egit.github.core</artifactId>
        <version>${version.egit.github}</version>
      </dependency>
      <dependency>
        <groupId>com.atlassian.jira</groupId>
        <artifactId>jira-rest-java-client</artifactId>
        <version>${version.atlassian.jira}</version>
      </dependency>

      <!-- test depends -->
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-test</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-test-util</artifactId>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-workitems-core</artifactId>
        <type>test-jar</type>
        <version>${version.org.kie}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-server</artifactId>
        <version>${version.org.eclipse.jetty}</version>
        <exclusions>
          <exclusion>
            <groupId>org.eclipse.jetty.orbit</groupId>
            <artifactId>javax.servlet</artifactId>
          </exclusion>
        </exclusions>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlet</artifactId>
        <version>${version.org.eclipse.jetty}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-servlets</artifactId>
        <version>${version.org.eclipse.jetty}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-webapp</artifactId>
        <version>${version.org.eclipse.jetty}</version>
      </dependency>
      <dependency>
        <groupId>org.eclipse.jetty</groupId>
        <artifactId>jetty-client</artifactId>
        <version>${version.org.eclipse.jetty}</version>
      </dependency>
      <dependency>
        <groupId>org.twitter4j</groupId>
        <artifactId>twitter4j-core</artifactId>
        <version>${version.twitter4j}</version>
      </dependency>

      <!-- module dependencies -->
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>template-resources</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>archive-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>dropbox-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>exec-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>ftp-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>google-calendar-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>google-drive-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>google-mail-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>google-sheets-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>google-tasks-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>ibm-watson-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>ifttt-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>jabber-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>java-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>jpa-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>parser-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>rss-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>transform-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>twitter-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>github-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
      <dependency>
        <groupId>org.jbpm.contrib</groupId>
        <artifactId>jira-workitem</artifactId>
        <version>${project.version}</version>
      </dependency>
    </dependencies>
  </dependencyManagement>

  <build>
    <pluginManagement>
      <plugins>
        <plugin>
          <groupId>org.apache.maven.plugins</groupId>
          <artifactId>maven-checkstyle-plugin</artifactId>
          <executions>
            <execution>
              <id>validate</id>
              <phase>validate</phase>
              <goals>
                <goal>check</goal>
              </goals>
              <configuration>
                <checkstyleRules>
                  <module name="Checker">
                    <module name="RegexpHeader">
                      <property name="header" value="${checkstyle.header.template}"/>
                      <property name="fileExtensions" value="${checkstyle.header.extensions}"/>
                    </module>
                  </module>
                </checkstyleRules>
              </configuration>
            </execution>
          </executions>
        </plugin>
      </plugins>
    </pluginManagement>
    <plugins>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-compiler-plugin</artifactId>
        <configuration>
          <annotationProcessors>
            <annotationProcessor>org.jbpm.process.workitem.core.util.WidProcessor</annotationProcessor>
          </annotationProcessors>
          <compilerArgs>
            <arg>-AwidName=${project.artifactId}</arg>
            <arg>-AgenerateTemplates=true</arg>
            <arg>-AtemplateResources=${project.artifactId}.wid:widtemplate.st,${project.artifactId}.json:jsontemplate.st,index.html:indextemplate.st</arg>
          </compilerArgs>
        </configuration>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-assembly-plugin</artifactId>
        <configuration>
          <!-- root module has no assembly so ignore it -->
          <ignoreMissingDescriptor>true</ignoreMissingDescriptor>
          <descriptors>
            <descriptor>${project.basedir}/assembly/assembly.xml</descriptor>
          </descriptors>
          <archive>
            <addMavenDescriptor>false</addMavenDescriptor>
          </archive>
        </configuration>
        <executions>
          <execution>
            <phase>package</phase>
            <goals>
              <goal>single</goal>
            </goals>
            <configuration>
              <appendAssemblyId>false</appendAssemblyId>
            </configuration>
          </execution>
        </executions>
      </plugin>
      <plugin>
        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-failsafe-plugin</artifactId>
        <executions>
          <execution>
            <id>integration-test-execution</id>
            <phase>integration-test</phase>
            <goals>
              <goal>integration-test</goal>
              <goal>verify</goal>
            </goals>
          </execution>
        </executions>
        <configuration>
          <systemPropertyVariables>
            <groupId>${groupId}</groupId>
            <artifactId>${artifactId}</artifactId>
            <version>${project.version}</version>
            <builddir>${project.build.directory}</builddir>
          </systemPropertyVariables>
          <failIfNoTests>false</failIfNoTests>
          <test>${it.test}</test>
          <includes>
            <include>**/*IntegrationTest.java</include>
          </includes>
          <argLine>${failsafe.arg.line}</argLine>
        </configuration>
      </plugin>
    </plugins>
  </build>

  <repositories>
    <repository>
      <id>central</id>
      <name>Central Repository</name>
      <url>https://repo.maven.apache.org/maven2</url>
      <layout>default</layout>
      <snapshots>
        <enabled>false</enabled>
      </snapshots>
    </repository>

    <repository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>https://repository.jboss.org/nexus/content/groups/public/</url>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
      </snapshots>
    </repository>

    <repository>
      <id>atlassian-public-repository</id>
      <name>Atlassian Public Repository</name>
      <url>https://maven.atlassian.com/content/repositories/atlassian-public/</url>
      <layout>default</layout>
      <releases>
        <enabled>true</enabled>
        <updatePolicy>never</updatePolicy>
      </releases>
      <snapshots>
        <enabled>true</enabled>
        <updatePolicy>daily</updatePolicy>
      </snapshots>
    </repository>
  </repositories>

  <scm>
    <connection>scm:git:https://github.com/kiegroup/jbpm-work-items.git</connection>
    <developerConnection>scm:git:git@github.com:kiegroup/jbpm-work-items.git</developerConnection>
    <url>https://github.com/kiegroup/jbpm-work-items</url>
  </scm>
  <issueManagement>
    <system>jira</system>
    <url>https://issues.jboss.org/browse/JBPM</url>
  </issueManagement>

  <pluginRepositories>
    <pluginRepository>
      <id>jboss-public-repository-group</id>
      <name>JBoss Public Repository Group</name>
      <url>http://repository.jboss.org/nexus/content/groups/public/</url>
      <releases>
        <enabled>true</enabled>
      </releases>
      <snapshots>
        <enabled>true</enabled>
      </snapshots>
    </pluginRepository>
  </pluginRepositories>
</project>