<?xml version="1.0" encoding="UTF-8"?>
 <!--
 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.                                           *
-->
<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>
    <groupId>org.apache.esme</groupId>
    <artifactId>esme-server</artifactId>
    <version>apache-esme-1.4</version>
    <packaging>war</packaging>
    <name>Apache Enterprise Social Messaging Environment (ESME)</name>
     <url>http://esme.apache.org</url>
    <description>ESME is a social tool that takes the immediacy of messaging and applies it to real time business process problem solving</description>
    <inceptionYear>2008</inceptionYear>
        <issueManagement>
          <system>JIRA</system>
         <url>http://issues.apache.org/jira/browse/ESME</url>
     </issueManagement>
     <ciManagement>
         <system>Hudson</system>
         <url>http://hudson.zones.apache.org/hudson/job/ESME</url>
     </ciManagement>
    <licenses>
       <license>
           <name>The Apache Software License, Version 2.0</name>
           <url>LICENSE.txt</url>
       </license>
    </licenses>
        <organization>
       <name>Apache Software Foundation</name>
       <url>http://www.apache.org</url>
    </organization>
      <scm>
         <connection>scm:svn:http://svn.apache.org/repos/asf/esme</connection>
         <developerConnection>scm:svn:https://svn.apache.org/repos/asf/esme</developerConnection>
          <url>http://svn.apache.org/repos/asf/esme</url>
     </scm>
    <mailingLists>
     <mailingList>
      <name>ESME Dev List</name>
      <subscribe>dev-subscribe@esme.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@esme.apache.org</unsubscribe>
      <post>dev@esme.apache.org</post>
      <archive>http://mail-archives.apache.org/mod_mbox/esme-dev/</archive>
    </mailingList>
   </mailingLists>
     <developers>
    <developer>
      <id>rhirsch</id>
      <name>Dick Hirsch</name>
      <email>rhirsch -at- apache.org</email>
      <organization>Apache</organization>
      <roles>
        <role>Release Manager</role>
        <role>Wiki Gardener</role>
      </roles>
    </developer>
    </developers>
    <properties>
        <lift.version>2.4</lift.version>
        <scala.version>2.9.1</scala.version>
        <scalaz.version>6.0.4</scalaz.version>
        <compass.version>2.1.1</compass.version>
        <lucene.version>2.4.0</lucene.version>
        <netbeans.hint.deploy.server>gfv3</netbeans.hint.deploy.server>
        <scala.stats.version>1.3</scala.stats.version>    
        <mortbay.jetty.version>6.1.22</mortbay.jetty.version>
    </properties>

    <repositories>
         <repository>
               <id>Base</id>
              <name>http://repo2.maven.org/maven2/</name>
              <url>http://repo2.maven.org/maven2/</url>
          </repository> 
        <repository>
            <id>scala-tools.org</id>
            <name>Scala-Tools Maven2 Repository</name>
            <url>http://scala-tools.org/repo-releases</url>
        </repository>
        <repository>
            <id>scala-tools.org.snapshots</id>
            <name>Scala-Tools Maven2 Repository for Snapshots</name>
            <url>http://scala-tools.org/repo-snapshots</url>
            <snapshots/>
        </repository>
        <repository>
            <id>compass-project.org</id>
            <name>Compass</name>
            <url>http://repo.compass-project.org</url>
        </repository>
         <!--repository>
            <id>scala-stats</id>
            <name>Twitter Repo</name>
            <url>http://www.lag.net/nest</url>
        </repository-->    
        <repository>
          <id>com.twitter</id>
          <name>Twitter</name>
          <url>http://maven.twttr.com</url>
        </repository>
          <repository>
             <id>Apache Repo</id> 
              <name>Apache repository for Derby 10.5.1.1</name> 
              <url>http://people.apache.org/repo/m1-ibiblio-rsync-repository</url> 
            </repository>           
    </repositories>

    <pluginRepositories>
        <pluginRepository>
            <id>scala-tools.org</id>
            <name>Scala-Tools Maven2 Repository</name>
            <url>http://scala-tools.org/repo-releases</url>
        </pluginRepository>
    </pluginRepositories>

    <dependencyManagement>
        <dependencies>
            <dependency>
                <groupId>org.scala-lang</groupId>
                <artifactId>scala-library</artifactId>
                <version>${scala.version}</version>
            </dependency>
        </dependencies>
    </dependencyManagement>


    <dependencies>
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-library</artifactId>
            <version>${scala.version}</version>
        </dependency>
       <dependency>
            <groupId>org.openid4java</groupId>
            <artifactId>openid4java-nodeps</artifactId>
            <version>0.9.5</version>
        </dependency>
        <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-util_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
        <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-webkit_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
        <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-widgets_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
        <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-mapper_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
        <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-testkit_${scala.version}</artifactId>
            <version>${lift.version}</version>
            <scope>compile</scope>
        </dependency>
        <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-openid_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
         <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-actor_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
         <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-json_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
         <dependency>
            <groupId>net.liftweb</groupId>
            <artifactId>lift-common_${scala.version}</artifactId>
            <version>${lift.version}</version>
        </dependency>
        <dependency>
           <groupId>net.liftweb</groupId>
           <artifactId>lift-ldap_${scala.version}</artifactId>
           <version>${lift.version}</version>
       </dependency>
        <dependency>
           <groupId>net.liftweb</groupId>
           <artifactId>lift-textile_${scala.version}</artifactId>
           <version>${lift.version}</version>
        </dependency>
        <dependency>
          <groupId>org.scalaz</groupId>
          <artifactId>scalaz-core_${scala.version}</artifactId>
          <version>${scalaz.version}</version>
        </dependency>
        <dependency>
            <groupId>org.compass-project</groupId>
            <artifactId>compass</artifactId>
            <version>${compass.version}</version>
        </dependency>
         <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-core</artifactId>
            <version>2.4.0</version>
        </dependency>
         <dependency>
            <groupId>commons-httpclient</groupId>
            <artifactId>commons-httpclient</artifactId>
            <version>3.1</version>
        </dependency>
        <dependency>
            <groupId>org.apache.derby</groupId>
            <artifactId>derby</artifactId>
            <version>10.5.3.0_1</version>
        </dependency>          
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-server</artifactId>
            <version>7.3.1.v20110307</version> 
        </dependency>  
        <dependency>
          <groupId>org.eclipse.jetty</groupId>
            <artifactId>jetty-servlet</artifactId>
            <version>7.3.1.v20110307</version> 
        </dependency>
        <dependency>
          <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
            <version>${mortbay.jetty.version}</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>javax.servlet</groupId>
            <artifactId>servlet-api</artifactId>
            <version>2.5</version>
            <scope>provided</scope>
        </dependency>
        <!-- for LiftConsole -->
        <dependency>
            <groupId>org.scala-lang</groupId>
            <artifactId>scala-compiler</artifactId>
            <version>${scala.version}</version>
            <!--<scope>test</scope>-->
        </dependency>
        <dependency>
            <groupId>org.apache.lucene</groupId>
            <artifactId>lucene-snowball</artifactId>
            <version>${lucene.version}</version>
        </dependency>
        <dependency>
            <groupId>log4j</groupId>
            <artifactId>log4j</artifactId>
            <version>1.2.16</version>
        </dependency>
        <dependency>
            <groupId>org.slf4j</groupId>
            <artifactId>slf4j-api</artifactId>
            <version>1.6.1</version>
        </dependency>
        <dependency>
           <groupId>org.slf4j</groupId>
           <artifactId>slf4j-log4j12</artifactId>
           <version>1.6.1</version>
        </dependency>
        <dependency>
            <groupId>com.twitter</groupId>
            <artifactId>ostrich</artifactId>
            <version>4.7.3</version>
            <exclusions>
              <exclusion> 
                <groupId>org.scala-tools</groupId>
                <artifactId>vscaladoc</artifactId>
              </exclusion>  
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.scala-tools.testing</groupId>
            <artifactId>specs_${scala.version}</artifactId>
            <version>1.6.9</version>
            <scope>test</scope>
        </dependency>
        <dependency>
            <groupId>junit</groupId>
            <artifactId>junit</artifactId>
            <version>4.4</version>
            <scope>test</scope>
        </dependency>
    </dependencies>

    <build>
        <sourceDirectory>src/main/scala</sourceDirectory>
        <testSourceDirectory>src/test/scala</testSourceDirectory>

        <plugins>
            <plugin>
                <groupId>org.apache.rat</groupId>
                <artifactId>apache-rat-plugin</artifactId>
                <version>0.8</version>
            </plugin>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <version>2.9</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compile</goal>
                            <goal>testCompile</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <jvmArgs>
                        <jvmArg>-Xmx1024m</jvmArg>
                    </jvmArgs>
                    <scalaVersion>${scala.version}</scalaVersion>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.mortbay.jetty</groupId>
                <artifactId>maven-jetty-plugin</artifactId>
                <version>${mortbay.jetty.version}</version>
                <configuration>
                    <contextPath>/</contextPath>
                    <scanIntervalSeconds>0</scanIntervalSeconds>
                </configuration>
            </plugin>
            <plugin>
                <groupId>net.sf.alchim</groupId>
                <artifactId>yuicompressor-maven-plugin</artifactId>  
                <version>0.7.1</version>
                <executions>
                    <execution>
                        <goals>
                            <goal>compress</goal>
                        </goals>
                    </execution>
                </executions>
                <configuration>
                    <nosuffix>true</nosuffix>
                    <statistics>false</statistics>
                    <jswarn>false</jswarn>
                </configuration>
            </plugin>
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-eclipse-plugin</artifactId> 
                <version>2.9</version>
                <configuration>
                    <downloadSources>true</downloadSources>
                    <excludes>
                        <exclude>org.scala-lang:scala-library</exclude>
                    </excludes>
                    <classpathContainers>
                        <classpathContainer>ch.epfl.lamp.sdt.launching.SCALA_CONTAINER</classpathContainer>
                    </classpathContainers>
                    <projectnatures>
                        <java.lang.String>ch.epfl.lamp.sdt.core.scalanature</java.lang.String>
                        <java.lang.String>org.eclipse.jdt.core.javanature</java.lang.String>
                    </projectnatures>
                    <buildcommands>
                        <java.lang.String>ch.epfl.lamp.sdt.core.scalabuilder</java.lang.String>
                    </buildcommands>
                </configuration>
            </plugin>
            <plugin>
                 <groupId>org.apache.maven.plugins</groupId>
                  <artifactId>maven-surefire-plugin</artifactId>
                  <version>2.8</version>
                  <configuration>
                    <forkMode>once</forkMode>
                    <runOrder>filesystem</runOrder>
                    <testFailureIgnore>true</testFailureIgnore>
                  </configuration>
             </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>esme-cma-ldap-jetty</id>
            <dependencies>
                <dependency>
                  <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-plus</artifactId>
                    <version>${mortbay.jetty.version}</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                  <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-ldap-jaas</artifactId>
                    <version>${mortbay.jetty.version}</version>
                    <scope>compile</scope>
                </dependency>
            </dependencies>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>maven-jetty-plugin</artifactId>
                        <configuration>
                            <contextPath>/</contextPath>
                            <scanIntervalSeconds>0</scanIntervalSeconds>
                            <userRealms>
                                <userRealm implementation="org.mortbay.jetty.plus.jaas.JAASUserRealm">
                                    <name>ESMERealm</name>
                                    <loginModuleName>ldaploginmodule</loginModuleName>
                                </userRealm>
                            </userRealms>
                            <systemProperties>
                              <systemProperty>
                                <name>java.security.auth.login.config</name>
                                <value>ldap-loginModule.conf</value>
                              </systemProperty>
                            </systemProperties>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
        <profile>
            <id>esme-cma-simple-jetty</id>
            <build>
                <plugins>
                    <plugin>
                        <groupId>org.mortbay.jetty</groupId>
                        <artifactId>maven-jetty-plugin</artifactId>
                        <configuration>
                            <contextPath>/</contextPath>
                            <scanIntervalSeconds>0</scanIntervalSeconds>
                            <userRealms>
                                <userRealm implementation="org.mortbay.jetty.security.HashUserRealm">
                                    <name>ESMERealm</name>
                                    <config>jetty-login.properties</config>
                                </userRealm>
                            </userRealms>
                        </configuration>
                    </plugin>
                </plugins>
            </build>
        </profile>
    </profiles>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId> 
                <version>2.14.1</version>
                <configuration>
                    <jvmArgs>
                        <jvmArg>-Xmx1024m</jvmArg>
                    </jvmArgs>

                    <scalaVersion>${scala.version}</scalaVersion>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>

