<?xml version="1.0" encoding="UTF-8"?>
<!--
   Copyright 2005-2006 The Apache Software Foundation

   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>
  <!-- For site lnf - extend>../commons-build/sandbox-project.xml</extend-->
  <pomVersion>3</pomVersion>
  <name>SCXML</name>
  <groupId>commons-scxml</groupId> 
  <artifactId>commons-scxml</artifactId>
  <currentVersion>0.5-SNAPSHOT</currentVersion>

  <inceptionYear>2005</inceptionYear>
  <shortDescription>Jakarta Commons SCXML</shortDescription>
  <description>A Java Implementation of a State Chart XML Engine</description>

  <logo>/images/scxml-logo-white.png</logo>
  <url>http://jakarta.apache.org/commons/sandbox/${pom.artifactId.substring(8)}/</url>
  <package>org.apache.commons.${pom.artifactId.substring(8)}</package>

  <organization>
    <name>The Apache Software Foundation</name> 
    <url>http://jakarta.apache.org</url> 
    <logo>http://jakarta.apache.org/images/jakarta-logo.gif</logo> 
  </organization>
  <licenses>
    <license>
      <name>The Apache Software License, Version 2.0</name> 
      <url>/LICENSE.txt</url> 
      <distribution>repo</distribution> 
    </license>
  </licenses>

  <siteAddress>jakarta.apache.org</siteAddress>
  <siteDirectory>/www/jakarta.apache.org/commons/sandbox/${pom.artifactId.substring(8)}/</siteDirectory>
  <issueTrackingUrl>http://issues.apache.org/bugzilla/</issueTrackingUrl>
  <distributionDirectory>/www/jakarta.apache.org/builds/jakarta-commons/${pom.artifactId.substring(8)}/</distributionDirectory> 

  <repository>
    <connection>scm:svn:http://svn.apache.org/repos/asf/jakarta/commons/sandbox/${pom.artifactId.substring(8)}/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/jakarta/commons/sandbox/${pom.artifactId.substring(8)}/trunk</developerConnection>
    <url>http://svn.apache.org/viewcvs.cgi/jakarta/commons/sandbox/${pom.artifactId.substring(8)}/trunk</url> 
  </repository>

  <mailingLists>
    <mailingList>
      <name>Commons Dev List</name> 
      <subscribe>commons-dev-subscribe@jakarta.apache.org</subscribe> 
      <unsubscribe>commons-dev-unsubscribe@jakarta.apache.org</unsubscribe> 
      <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-dev@jakarta.apache.org</archive> 
    </mailingList>
    <mailingList>
      <name>Commons User List</name> 
      <subscribe>commons-user-subscribe@jakarta.apache.org</subscribe> 
      <unsubscribe>commons-user-unsubscribe@jakarta.apache.org</unsubscribe> 
      <archive>http://mail-archives.apache.org/eyebrowse/SummarizeList?listName=commons-user@jakarta.apache.org</archive> 
    </mailingList>
  </mailingLists>

  <developers>
    <developer>
      <name>Rahul Akolkar</name>
      <id>rahul</id>
      <email>rahul AT apache.org</email>
      <organization>Apache Software Foundation</organization>
    </developer>
    <developer>
      <name>Martin Cooper</name>
      <id>martinc</id>
      <organization>Apache Software Foundation</organization>
    </developer>
  </developers>

  <contributors>
    <contributor>
      <name>Jaroslav Gergic</name>
    </contributor>
  </contributors>
  
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.0.4</version>
      <url>http://jakarta.apache.org/commons/logging/</url>
      <properties>
        <comment>&lt;b&gt;Core&lt;/b&gt;
        (everything)</comment>
      </properties>
    </dependency>
    <dependency> 
      <groupId>commons-digester</groupId>
      <artifactId>commons-digester</artifactId>
      <version>1.7</version>
      <url>http://jakarta.apache.org/commons/digester/</url>
      <properties>
        <comment>&lt;b&gt;Core&lt;/b&gt;
        (everything)</comment>
      </properties>
    </dependency>
    <dependency> 
      <groupId>commons-beanutils</groupId>
      <artifactId>commons-beanutils</artifactId>
      <version>1.7.0</version>
      <url>http://jakarta.apache.org/commons/beanutils/</url>
      <properties>
        <comment>&lt;b&gt;Transitive&lt;/b&gt;
        (from Digester, so &lt;b&gt;core&lt;/b&gt;)</comment>
      </properties>
    </dependency>
    <dependency>
      <groupId>junit</groupId>
      <artifactId>junit</artifactId>
      <version>3.8.1</version>
      <url>http://www.junit.org/</url>
      <properties>
        <comment>&lt;b&gt;Test&lt;/b&gt; only</comment>
        <scope>test</scope>
      </properties>
    </dependency>
    <dependency> 
      <groupId>commons-el</groupId>
      <artifactId>commons-el</artifactId>
      <version>1.0</version>
      <url>http://jakarta.apache.org/commons/el/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (JSP/JSF environments)</comment>
        <scope>provided</scope>
      </properties>
    </dependency>
    <dependency> 
      <groupId>commons-jexl</groupId>
      <artifactId>commons-jexl</artifactId>
      <version>1.0</version>
      <url>http://jakarta.apache.org/commons/jexl/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (JEXL environments)</comment>
      </properties>
    </dependency>
    <dependency>
      <groupId>javax.servlet</groupId>
      <artifactId>servlet-api</artifactId>
      <version>2.4</version>
      <url>http://tomcat.apache.org/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (Servlet/JSP environments)</comment>
        <scope>provided</scope>
      </properties>
    </dependency>
    <dependency> 
      <groupId>javax.servlet</groupId>
      <artifactId>jsp-api</artifactId> 
      <version>2.0</version>
      <url>http://tomcat.apache.org/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (JSP environments)</comment>
        <scope>provided</scope>
      </properties>
    </dependency>
    <dependency> 
      <groupId>myfaces</groupId>
      <artifactId>myfaces-all</artifactId> 
      <version>1.1.0</version>
      <url>http://myfaces.apache.org/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (JSF environments)</comment>
        <scope>provided</scope>
      </properties>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <resources>
      <resource>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>NOTICE.txt</include>
          <include>LICENSE.txt</include>
        </includes>
      </resource>
    </resources>
    <unitTestSourceDirectory>src/test/java</unitTestSourceDirectory>
    <unitTest>
      <includes>
        <include>org/apache/commons/scxml/SCXMLTestSuite.java</include>
        <include>org/apache/commons/scxml/env/EnvTestSuite.java</include>
        <include>org/apache/commons/scxml/env/faces/EnvFacesTestSuite.java</include>
        <include>org/apache/commons/scxml/env/jexl/EnvJexlTestSuite.java</include>
        <include>org/apache/commons/scxml/env/jsp/EnvJspTestSuite.java</include>
        <include>org/apache/commons/scxml/env/servlet/EnvServletTestSuite.java</include>
        <include>org/apache/commons/scxml/io/IOTestSuite.java</include>
        <include>org/apache/commons/scxml/model/ModelTestSuite.java</include>
        <include>org/apache/commons/scxml/semantics/SemanticsTestSuite.java</include>
        <include>org/apache/commons/scxml/test/TestingTestSuite.java</include>
      </includes>
      <resources>
        <resource>
          <directory>${pom.build.unitTestSourceDirectory}</directory>
          <includes>
            <include>**/*.xml</include>
          </includes>
        </resource>
      </resources>
    </unitTest>
  </build>

  <reports>
     <!--report>maven-changelog-plugin</report-->
     <report>maven-changes-plugin</report>
     <report>maven-checkstyle-plugin</report>
     <!--report>maven-clover-plugin</report-->
     <!--report>maven-developer-activity-plugin</report-->
     <!--report>maven-file-activity-plugin</report-->
     <report>maven-javadoc-plugin</report>
     <!--report>maven-jellydoc-plugin</report-->
     <report>maven-junit-report-plugin</report>
     <report>maven-jxr-plugin</report>
     <report>maven-license-plugin</report>
     <!--report>maven-linkcheck-plugin</report-->
     <!--report>maven-statcvs-plugin</report-->
     <!--report>maven-tasklist-plugin</report-->
  </reports>
  
</project>
