<?xml version="1.0" encoding="ISO-8859-1"?>
<!--
    Licensed to the Apache Software Foundation (ASF) under one
    or more contributor license agreements. See the NOTICE file
    distributed with this work for additional information
    regarding copyright ownership. The ASF licenses this file
    to you 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.
-->
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
<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">
=======
<project
    xmlns="http://maven.apache.org/POM/4.0.0"
    xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
=======
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
>>>>>>> constantly changed by manolo
    xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
>>>>>>> first commit
=======
<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">
>>>>>>> constantly changed by manolo
    <modelVersion>4.0.0</modelVersion>
    <parent>
        <groupId>org.apache.hupa</groupId>
        <artifactId>hupa-parent</artifactId>
<<<<<<< HEAD
<<<<<<< HEAD
<<<<<<< HEAD
        <version>0.0.3-SNAPSHOT</version>
=======
        <version>0.0.2-SNAPSHOT</version>
>>>>>>> first commit
=======
        <version>0.0.3-SNAPSHOT</version>
>>>>>>> constantly changed by manolo
=======
        <version>0.0.5-SNAPSHOT</version>
>>>>>>> Set snapshot version higger than the current hupa in svn repo
        <relativePath>../pom.xml</relativePath>
    </parent>
    <artifactId>hupa</artifactId>
    <packaging>war</packaging>
    <name>Apache James Hupa</name>
    <description>A GWT based IMAP webmail</description>
    <dependencies>
        <dependency>
<<<<<<< HEAD
            <groupId>org.apache.hupa</groupId>
=======
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <exclusions>
                <exclusion>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-dev</artifactId>
        </dependency>
        <dependency>
            <groupId>${project.groupId}</groupId>
>>>>>>> fixing weird error in compilation:  Deferred binding failed for 'com.google.gwt.user.client.ui.NativeHorizontalScrollbar'
            <artifactId>hupa-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.hupa</groupId>
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> constantly changed by manolo
            <artifactId>hupa-mock</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.hupa</groupId>
<<<<<<< HEAD
=======
>>>>>>> first commit
=======
>>>>>>> constantly changed by manolo
            <artifactId>hupa-shared</artifactId>
        </dependency>
        <dependency>
            <groupId>org.apache.hupa</groupId>
            <artifactId>hupa-widgets</artifactId>
        </dependency>
        <dependency>
            <groupId>org.cobogw.gwt</groupId>
            <artifactId>cobogw</artifactId>
        </dependency>
        <dependency>
            <groupId>com.google.code.gwt-dnd</groupId>
            <artifactId>gwt-dnd</artifactId>
        </dependency>
        <dependency>
            <groupId>eu.maydu.gwt</groupId>
            <artifactId>gwt-vl</artifactId>
        </dependency>
        <dependency>
            <groupId>com.googlecode.gwtupload</groupId>
            <artifactId>gwtupload</artifactId>
        </dependency>
        <dependency>
<<<<<<< HEAD
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-user</artifactId>
            <exclusions>
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> constantly changed by manolo
                <exclusion>
                    <groupId>javax.validation</groupId>
                    <artifactId>validation-api</artifactId>
                </exclusion>
<<<<<<< HEAD
=======
              <exclusion>
                <groupId>javax.validation</groupId>
                <artifactId>validation-api</artifactId>
              </exclusion>
>>>>>>> first commit
=======
>>>>>>> constantly changed by manolo
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.google.gwt</groupId>
            <artifactId>gwt-dev</artifactId>
        </dependency>
        <dependency>
=======
>>>>>>> fixing weird error in compilation:  Deferred binding failed for 'com.google.gwt.user.client.ui.NativeHorizontalScrollbar'
            <groupId>com.google.gwt.inject</groupId>
            <artifactId>gin</artifactId>
        </dependency>
        <dependency>
            <groupId>javax.validation</groupId>
            <artifactId>validation-api</artifactId>
        </dependency>
	    <dependency>
	      <groupId>javax.validation</groupId>
	      <artifactId>validation-api</artifactId>
	      <classifier>sources</classifier>
	    </dependency>
        <dependency>
<<<<<<< HEAD
<<<<<<< HEAD
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.2.0.Final</version>
=======
          <groupId>org.hibernate</groupId>
          <artifactId>hibernate-validator</artifactId>
          <version>4.2.0.Final</version>
>>>>>>> first commit
=======
            <groupId>org.hibernate</groupId>
            <artifactId>hibernate-validator</artifactId>
            <version>4.2.0.Final</version>
>>>>>>> constantly changed by manolo
        </dependency>
        <dependency>
            <groupId>org.json</groupId>
            <artifactId>json</artifactId>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
        </dependency>
        <dependency>
            <groupId>org.easymock</groupId>
            <artifactId>easymock</artifactId>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-log4j12</artifactId>
        </dependency>
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> constantly changed by manolo
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
        </dependency>
        <dependency>
            <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-webapp</artifactId>
        </dependency>
<<<<<<< HEAD
=======
		<dependency>
		    <groupId>org.eclipse.jetty</groupId>
		    <artifactId>jetty-server</artifactId>
		</dependency>
		<dependency>
		    <groupId>org.eclipse.jetty</groupId>
		    <artifactId>jetty-webapp</artifactId>
		</dependency>        
>>>>>>> first commit
=======
>>>>>>> constantly changed by manolo
    </dependencies>
    <build>
        <outputDirectory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</outputDirectory>
        <plugins>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>gwt-maven-plugin</artifactId>
                <configuration>
                    <runTarget>Hupa.html</runTarget>
<<<<<<< HEAD
                    <extraJvmArgs>
<<<<<<< HEAD
<<<<<<< HEAD
                        -Xmx512M -Xss128M
=======
                        -Xmx512M -Xss128M -Dhupa.config.file=${project.parent.basedir}/server/src/main/webapp/WEB-INF/conf/config.properties
>>>>>>> first commit
=======
                        -Xmx512M -Xss128M
>>>>>>> constantly changed by manolo
                    </extraJvmArgs>
=======
>>>>>>> Compiler optimizations and profiles
                    <localWorkers>1</localWorkers>
                    <compileReport>${gwt.compileReport}</compileReport>
                    <disableClassMetadata>${gwt.disableClassMetadata}</disableClassMetadata>
                    <disableCastChecking>${gwt.disableCastChecking}</disableCastChecking>
                    <logLevel>${gwt.logLevel}</logLevel>
                    <style>${gwt.style}</style>
                    <fragmentCount>10</fragmentCount>
                    <enableClosureCompiler>${gwt.enableClosureCompiler}</enableClosureCompiler>
                    <disableRunAsync>${gwt.disableRunAsync}</disableRunAsync>
                    <modules>
                        <module>org.apache.hupa.Hupa${gwt.moduleSuffix}</module>
                    </modules>
                    <extraJvmArgs>-XX:MaxPermSize=512M -Xmx1024M</extraJvmArgs>
                </configuration>
                <executions>
                    <execution>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>compile</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
<!--             maven-sure-fire-plugin configurations commented - Why was this needed ? -->
<!--              - response by manolo: -->
<!--               This is needed when running gwt tests, the gwt compiler needs to access to -->
<!--                java source files so as it can parse them an compile into javascript -->
<!--               Because we like fast tests, so far, all our tests are run in jvm instead of -->
<!--                in browser emulator, we can do that because we use MVP pattern in hupa -->
<!--               Maybe we needed this in a future when testing our widgets or stuff which only -->
<!--                run in browser. -->
<!--             <plugin> -->
<!--                 <groupId>org.apache.maven.plugins</groupId> -->
<!--                 <artifactId>maven-surefire-plugin</artifactId> -->
<!--                 <configuration> -->
<!--                     <useSystemClassLoader>false</useSystemClassLoader> -->
<!--                     <additionalClasspathElements> -->
<!--                         <additionalClasspathElement>${basedir}/src/test/java</additionalClasspathElement> -->
<!--                         <additionalClasspathElement>${basedir}/src/main/java</additionalClasspathElement> -->
<!--                     </additionalClasspathElements> -->
<!--                 </configuration> -->
<!--             </plugin> -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-war-plugin</artifactId>
                <configuration>
                    <webXml>src/main/webapp/WEB-INF/web.xml</webXml>
                    <webResources>
                        <!-- this is a ugly hack but I'm not sure howto solve it -->
                        <!-- This take care of including the config file within the war -->
                        <resource>
                            <directory>../server/src/main/webapp/</directory>
                        </resource>
                    </webResources>
                    <warName>${project.artifactId}-${project.version}</warName>
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> constantly changed by manolo
                    <archive>
                        <manifest>
                            <mainClass>org.apache.hupa.Launcher</mainClass>
                        </manifest>
                    </archive>
<<<<<<< HEAD
=======
  			        <archive>
			           <manifest>
			              <mainClass>org.apache.hupa.Launcher</mainClass>
			           </manifest>
			        </archive>
>>>>>>> first commit
=======
>>>>>>> constantly changed by manolo
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <downloadJavadocs>false</downloadJavadocs>
                    <wtpversion>2.0</wtpversion>
                    <additionalBuildcommands>
                        <buildCommand>
                            <name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
                        </buildCommand>
                    </additionalBuildcommands>
                    <additionalProjectnatures>
                        <projectnature>org.eclipse.ajdt.ui.ajnature</projectnature>
                        <projectnature>com.google.gwt.eclipse.core.gwtNature</projectnature>
                    </additionalProjectnatures>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.bsc.maven</groupId>
                <artifactId>maven-processor-plugin</artifactId>
                <version>2.2.4</version>
                <executions>
                    <execution>
                        <id>process</id>
                        <goals>
                            <goal>process</goal>
                        </goals>
                        <phase>generate-sources</phase>
                    </execution>
                </executions>
            </plugin>
            <plugin>
                <groupId>org.codehaus.mojo</groupId>
                <artifactId>build-helper-maven-plugin</artifactId>
                <version>1.7</version>
                <executions>
                    <execution>
                        <id>add-source</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>add-source</goal>
                        </goals>
                        <configuration>
                            <sources>
                                <source>${project.build.directory}/generated-sources/apt</source>
                            </sources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
            <plugin>
<<<<<<< HEAD
<<<<<<< HEAD
                <groupId>org.apache.maven.plugins</groupId>
=======
               <groupId>org.apache.maven.plugins</groupId>
>>>>>>> first commit
=======
                <groupId>org.apache.maven.plugins</groupId>
>>>>>>> constantly changed by manolo
                <artifactId>maven-resources-plugin</artifactId>
                <executions>
                    <execution>
                        <id>copy-resources</id>
                        <phase>generate-sources</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>src/main/webapp</directory>
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                    <execution>
                        <id>copy-launcher</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>copy-resources</goal>
                        </goals>
                        <configuration>
                            <outputDirectory>${project.build.directory}/${project.build.finalName}</outputDirectory>
                            <resources>
                                <resource>
                                    <directory>${project.build.directory}/${project.build.finalName}/WEB-INF/classes</directory>
<<<<<<< HEAD
<<<<<<< HEAD
                                    <include>org/apache/hupa/Launcher.class</include>
=======
                                     <include>org/apache/hupa/Launcher.class</include>
>>>>>>> first commit
=======
                                    <include>org/apache/hupa/Launcher.class</include>
>>>>>>> constantly changed by manolo
                                </resource>
                            </resources>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
<<<<<<< HEAD
<<<<<<< HEAD
=======
>>>>>>> constantly changed by manolo
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-dependency-plugin</artifactId>
                <executions>
                    <execution>
                        <id>jetty-classpath</id>
                        <phase>prepare-package</phase>
                        <goals>
                            <goal>unpack-dependencies</goal>
                        </goals>
                        <configuration>
                            <includeGroupIds>org.eclipse.jetty,javax.servlet</includeGroupIds>
                            <excludeArtifactIds>jsp-api,jstl</excludeArtifactIds>
                            <outputDirectory>
                                ${project.build.directory}/${project.artifactId}-${project.version}
                        </outputDirectory>
                        </configuration>
                    </execution>
                </executions>
            </plugin>
<<<<<<< HEAD
        </plugins>
    </build>
=======
			<plugin>
			   <groupId>org.apache.maven.plugins</groupId>
			   <artifactId>maven-dependency-plugin</artifactId>
			   <executions>
			      <execution>
			         <id>jetty-classpath</id>
			         <phase>prepare-package</phase>
			         <goals>
			            <goal>unpack-dependencies</goal>
			         </goals>
			         <configuration>
			            <includeGroupIds>org.eclipse.jetty,javax.servlet</includeGroupIds>
			            <excludeArtifactIds>jsp-api,jstl</excludeArtifactIds>
			            <outputDirectory>
			               ${project.build.directory}/${project.artifactId}-${project.version}
			            </outputDirectory>
			         </configuration>
			      </execution>
			   </executions>
			</plugin>            
=======
>>>>>>> constantly changed by manolo
        </plugins>
    </build>
<<<<<<< HEAD
    <profiles>
      <profile>
        <id>prod</id>
        <properties>
          <gwt.moduleSuffix>Prod</gwt.moduleSuffix>
          <gwt.disableClassMetadata>true</gwt.disableClassMetadata>
          <gwt.disableCastChecking>true</gwt.disableCastChecking>
          <gwt.logLevel>TRACE</gwt.logLevel>
        </properties>
      </profile>
    </profiles>
    <properties>
      <gwt.moduleSuffix></gwt.moduleSuffix>
      <gwt.logLevel>ERROR</gwt.logLevel>
    </properties>
>>>>>>> first commit
=======
>>>>>>> constantly changed by manolo
</project>
