<?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.3</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.3</lift.version>
        <scala.version>2.8.1</scala.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>
    </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> 
              <layout>legacy</layout> 
            </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.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>junit</groupId>
            <artifactId>junit</artifactId>
            <version>3.8.1</version>
            <scope>test</scope>
        </dependency>
        <dependency>
          <groupId>org.mortbay.jetty</groupId>
            <artifactId>jetty</artifactId>
            <version>[6.1.6,)</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>net.lag</groupId>
            <artifactId>configgy</artifactId>
            <version>2.0.1</version>
            <exclusions> 
              <exclusion> 
                <groupId>org.scala-tools</groupId>
                <artifactId>vscaladoc</artifactId>
              </exclusion>
            </exclusions>
        </dependency>
        <dependency>
            <groupId>com.twitter</groupId>
            <artifactId>ostrich</artifactId>
            <version>2.3.2</version>    
            <exclusions> 
              <exclusion> 
                <groupId>org.scala-tools</groupId>
                <artifactId>vscaladoc</artifactId>
              </exclusion>  
            </exclusions>
        </dependency>
        <dependency>
            <groupId>org.scala-tools.testing</groupId>
            <artifactId>specs</artifactId>
            <version>1.6.1</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>
            </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>
                <configuration>
                    <contextPath>/</contextPath>
                    <scanIntervalSeconds>0</scanIntervalSeconds>
                </configuration>
            </plugin>
            <plugin>
                <groupId>net.sf.alchim</groupId>
                <artifactId>yuicompressor-maven-plugin</artifactId>
                <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>
                <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>
                       <configuration>
                           <testFailureIgnore>true</testFailureIgnore>
                         </configuration>
             </plugin>
        </plugins>
    </build>

    <profiles>
        <profile>
            <id>esme-ldap-jetty</id>
            <dependencies>
                <dependency>
                  <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-plus</artifactId>
                    <version>[6.1.6,)</version>
                    <scope>compile</scope>
                </dependency>
                <dependency>
                  <groupId>org.mortbay.jetty</groupId>
                    <artifactId>jetty-ldap-jaas</artifactId>
                    <version>[6.1.6,)</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>
    </profiles>

    <reporting>
        <plugins>
            <plugin>
                <groupId>org.scala-tools</groupId>
                <artifactId>maven-scala-plugin</artifactId>
                <configuration>
                    <jvmArgs>
                        <jvmArg>-Xmx1024m</jvmArg>
                    </jvmArgs>

                    <scalaVersion>${scala.version}</scalaVersion>
                </configuration>
            </plugin>
        </plugins>
    </reporting>
</project>

