<?xml version="1.0" encoding="UTF-8"?>
<!--
  ~ Copyright 2012 JBoss Inc
  ~
  ~ Licensed under the Apache License, Version 2.0 (the "License");
  ~ you may not use this file except in compliance with the License.
  ~ You may obtain a copy of the License at
  ~
  ~       http://www.apache.org/licenses/LICENSE-2.0
  ~
  ~ Unless required by applicable law or agreed to in writing, software
  ~ distributed under the License is distributed on an "AS IS" BASIS,
  ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  ~ See the License for the specific language governing permissions and
  ~ limitations under the License.
  -->

<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">

    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.jbpm</groupId>
        <artifactId>jbpm-form-modeler</artifactId>
        <version>6.0.0.Beta5</version>
    </parent>

    <artifactId>jbpm-form-modeler-showcase</artifactId>
    <packaging>war</packaging>

    <name>JBPM Form Modeler Showcase WebApp</name>
    <description>UberFire Showcase WebApp</description>

    <dependencies>
        <dependency>
            <groupId>org.kie</groupId>
            <artifactId>kie-ci</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>org.apache.ant</groupId>
                    <artifactId>ant</artifactId>
                </exclusion>
            </exclusions>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-security-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-security-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-backend-server</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-client-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-widgets-core-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-widgets-commons</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-widget-markdown</artifactId>
        </dependency>

        <dependency>
            <groupId>org.uberfire</groupId>
            <artifactId>uberfire-workbench</artifactId>
        </dependency>

        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
        </dependency>
        <dependency>
            <groupId>ch.qos.logback</groupId>
            <artifactId>logback-classic</artifactId>
        </dependency>

        <dependency>
            <groupId>javax.enterprise</groupId>
            <artifactId>cdi-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-nio2-jgit</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-nio2-fs</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-commons-cdi</artifactId>
        </dependency>

        <!-- Errai Core -->
        <dependency>
            <groupId>org.jboss.errai</groupId>
            <artifactId>errai-bus</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.errai</groupId>
            <artifactId>errai-ioc</artifactId>
        </dependency>

        <!-- CDI Integration Modules -->
        <dependency>
            <groupId>org.jboss.errai</groupId>
            <artifactId>errai-cdi-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.errai</groupId>
            <artifactId>errai-javax-enterprise</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.jboss.errai</groupId>
            <artifactId>errai-weld-integration</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.errai</groupId>
            <artifactId>errai-cdi-jetty</artifactId>
        </dependency>

        <!-- CDI Development Utils -->
        <!-- This must be placed above com.google.gwt:gwt-dev to override the Jetty that is present there -->
        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-plus</artifactId>
        </dependency>

        <dependency>
            <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty-naming</artifactId>
        </dependency>

        <!-- Weld Modules -->
        <dependency>
            <groupId>org.jboss.weld.se</groupId>
            <artifactId>weld-se-core</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jboss.weld.servlet</groupId>
            <artifactId>weld-servlet-core</artifactId>
        </dependency>

        <!-- GWT and GWT Extensions -->
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <scope>provided</scope>
        </dependency>

        <dependency>
            <groupId>org.drools</groupId>
            <artifactId>drools-workbench-models-commons</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.services</groupId>
            <artifactId>kie-wb-common-services-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-m2repo-editor-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-m2repo-editor-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-m2repo-editor-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-inbox-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-inbox-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-inbox-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-services-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-m2repo-editor-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-project-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-project-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-workingset-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-workingset-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.guvnor</groupId>
            <artifactId>guvnor-project-builder</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-nio2-jgit</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-nio2-fs</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-commons-io</artifactId>
        </dependency>
        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-commons-cdi</artifactId>
        </dependency>
        <dependency>
            <groupId>org.kie.commons</groupId>
            <artifactId>kie-commons-data</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-search-screen-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-search-screen-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-editor-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-editor-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-editor-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-explorer-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-explorer-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-explorer-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-data-modeller-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-data-modeller-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-data-modeller-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.services</groupId>
            <artifactId>kie-wb-common-datamodel-api</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.services</groupId>
            <artifactId>kie-wb-common-datamodel-backend</artifactId>
        </dependency>

        <dependency>
            <groupId>org.kie.workbench.screens</groupId>
            <artifactId>kie-wb-common-project-editor-api</artifactId>
        </dependency>
        <!-- Needed by kie-api if KieModules are to be built -->
        <dependency>
            <groupId>com.google.protobuf</groupId>
            <artifactId>protobuf-java</artifactId>
            <optional>true</optional>
        </dependency>

        <dependency>
            <groupId>org.jboss.solder</groupId>
            <artifactId>solder-impl</artifactId>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-api</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-app</artifactId>
            <version>6.0.0.Beta5</version>
            <scope>compile</scope>
            <type>war</type>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-app</artifactId>
            <version>6.0.0.Beta5</version>
            <scope>compile</scope>
            <classifier>classes</classifier>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-renderer-api</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>
        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-renderer-client</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>
        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-renderer-backend</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-editor-api</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-editor-client</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-editor-backend</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-data-modeler</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

        <dependency>
            <groupId>org.jbpm</groupId>
            <artifactId>jbpm-form-modeler-form-provider</artifactId>
            <version>6.0.0.Beta5</version>
        </dependency>

    </dependencies>

    <build>

        <resources>
            <!-- Include src/main/java in order not to break the Eclipse GWT plug-in -->
            <resource>
                <directory>src/main/java</directory>
            </resource>
            <!-- Include module descriptors from src/main/resources in order not to break the Intellij GWT plug-in -->
            <resource>
                <directory>src/main/resources</directory>
            </resource>
        </resources>

        <plugins>

            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <configuration>
                    <module>org.uberfire.FastCompiledUberfireShowcase</module>
                    <logLevel>INFO</logLevel>
                    <compileSourcesArtifacts>
                        <!-- Guvnor -->
                        <compileSourcesArtifact>org.guvnor:guvnor-inbox-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.guvnor:guvnor-inbox-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.guvnor:guvnor-m2repo-editor-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.guvnor:guvnor-m2repo-editor-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.guvnor:guvnor-services-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.guvnor:guvnor-project-api</compileSourcesArtifact>

                        <!-- Common dependencies -->
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-project-editor-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-project-editor-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-search-screen-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-search-screen-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-project-explorer-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-project-explorer-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-data-modeller-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.screens:kie-wb-common-data-modeller-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.widgets:kie-wb-common-ui</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.workbench.services:kie-wb-common-services-api</compileSourcesArtifact>

                        <!-- Kie Commons -->
                        <compileSourcesArtifact>org.kie.commons:kie-commons-data</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.commons:kie-commons-validation</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.commons:kie-nio2-model</compileSourcesArtifact>
                        <compileSourcesArtifact>org.kie.commons:kie-nio2-model</compileSourcesArtifact>

                        <compileSourcesArtifact>org.uberfire:uberfire-security-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.uberfire:uberfire-security-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.uberfire:uberfire-client-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.uberfire:uberfire-widgets-core-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.uberfire:uberfire-widgets-commons</compileSourcesArtifact>
                        <compileSourcesArtifact>org.uberfire:uberfire-workbench</compileSourcesArtifact>
                        <compileSourcesArtifact>org.uberfire:uberfire-backend-api</compileSourcesArtifact>

                        <compileSourcesArtifact>org.kie.guvnor:guvnor-datamodel-api</compileSourcesArtifact>

                        <compileSourcesArtifact>org.jbpm:jbpm-form-modeler-editor-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.jbpm:jbpm-form-modeler-editor-client</compileSourcesArtifact>
                        <compileSourcesArtifact>org.jbpm:jbpm-form-modeler-renderer-api</compileSourcesArtifact>
                        <compileSourcesArtifact>org.jbpm:jbpm-form-modeler-renderer-client</compileSourcesArtifact>


                    </compileSourcesArtifacts>
                    <runTarget>org.uberfire.UberfireShowcase/Uberfire.html</runTarget>
                    <extraJvmArgs>-Xmx1024m -XX:MaxPermSize=256m</extraJvmArgs>
                    <soyc>false</soyc>
                    <server>org.jboss.errai.cdi.server.gwt.JettyLauncher</server>
                    <!-- drools-compiler has dependency on org.eclipse.jdt.core.compiler:ecj:jar:3.5.1:compile, see http://code.google.com/p/google-web-toolkit/issues/detail?id=4479 -->
                    <gwtSdkFirstInClasspath>true</gwtSdkFirstInClasspath>
                </configuration>
                <executions>
                    <execution>
                        <id>gwt-clean</id>
                        <phase>clean</phase>
                        <goals>
                            <goal>clean</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>gwt-compile</id>
                        <goals>
                            <goal>resources</goal>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <warName>${project.artifactId}</warName>
                    <outputFileNameMapping>@{artifactId}</outputFileNameMapping>
                    <packagingExcludes>**/javax/**/*.*,**/client/**/*.class</packagingExcludes>
                    <archive>
                        <addMavenDescriptor>false</addMavenDescriptor>
                    </archive>
                    <overlays>
                        <overlay>
                            <groupId>org.jbpm</groupId>
                            <artifactId>jbpm-form-modeler-app</artifactId>
                        </overlay>

                    </overlays>
                    <webResources>
                        <resource>
                            <directory>${basedir}/src/main/webapp/WEB-INF</directory>
                            <filtering>true</filtering>
                            <targetPath>WEB-INF</targetPath>
                            <includes>
                                <include>**/web.xml</include>
                            </includes>
                        </resource>
                    </webResources>
                </configuration>
            </plugin>

            <!-- Tests are skipped by default because they require additional GWT dependencies. Run mvn with
              -Pintegration-test to enable testing. -->
            <plugin>
                <artifactId>maven-surefire-plugin</artifactId>
                <configuration>
                    <skipTests>true</skipTests>
                </configuration>
            </plugin>

            <plugin>
                <groupId>org.jboss.errai</groupId>
                <artifactId>jacoco-gwt-maven-plugin</artifactId>
                <executions>
                    <execution>
                        <id>jacoco-gwt-prepare-agent</id>
                        <phase>initialize</phase>
                        <goals>
                            <goal>prepare-agent</goal>
                        </goals>
                    </execution>
                    <execution>
                        <id>jacoco-gwt-report</id>
                        <phase>site</phase>
                        <goals>
                            <goal>report</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>

            <plugin>
                <artifactId>maven-clean-plugin</artifactId>
                <configuration>
                    <filesets>
                        <fileset>
                            <directory>${basedir}</directory>
                            <includes>
                                <include>.errai/**</include>
                                <include>.niogit/**</include>
                            </includes>
                        </fileset>
                    </filesets>
                </configuration>
            </plugin>
        </plugins>

        <pluginManagement>
            <plugins>
                <plugin>
                    <groupId>org.eclipse.m2e</groupId>
                    <artifactId>lifecycle-mapping</artifactId>
                    <configuration>
                        <lifecycleMappingMetadata>
                            <pluginExecutions>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.codehaus.mojo</groupId>
                                        <artifactId>gwt-maven-plugin</artifactId>
                                        <versionRange>[2.3.0,)</versionRange>
                                        <goals>
                                            <goal>resources</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <execute/>
                                    </action>
                                </pluginExecution>
                                <pluginExecution>
                                    <pluginExecutionFilter>
                                        <groupId>org.jboss.errai</groupId>
                                        <artifactId>jacoco-gwt-maven-plugin</artifactId>
                                        <versionRange>[0.0,)</versionRange>
                                        <goals>
                                            <goal>prepare-agent</goal>
                                        </goals>
                                    </pluginExecutionFilter>
                                    <action>
                                        <ignore/>
                                    </action>
                                </pluginExecution>
                            </pluginExecutions>
                        </lifecycleMappingMetadata>
                    </configuration>
                </plugin>
            </plugins>
        </pluginManagement>
    </build>

    <profiles>
        <profile>
            <id>fullProfile</id>
            <activation>
                <property>
                    <name>full</name>
                </property>
            </activation>
            <build>
                <plugins>
                    <plugin><!-- Keep in sync with soa profile -->
                        <groupId>org.codehaus.mojo</groupId>
                        <artifactId>gwt-maven-plugin</artifactId>
                        <configuration>
                            <!-- Build all GWT permutations and optimize them -->
                            <module>org.uberfire.UberfireShowcase</module>
                            <draftCompile>false</draftCompile>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>
</project>
