<?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>
  <pomVersion>3</pomVersion>
  <name>SCXML</name>
  <groupId>commons-scxml</groupId> 
  <artifactId>commons-scxml</artifactId>
  <currentVersion>0.9</currentVersion>

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

  <logo>/images/scxml-logo-white.png</logo>
  <url>http://commons.apache.org/scxml/</url>
  <package>org.apache.commons.scxml</package>

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

  <siteAddress>people.apache.org</siteAddress>
  <siteDirectory>/www/commons.apache.org/scxml/</siteDirectory>
  <issueTrackingUrl>http://issues.apache.org/jira/</issueTrackingUrl>
  <distributionDirectory>/www/people.apache.org/builds/commons/scxml/</distributionDirectory> 

  <repository>
    <connection>scm:svn:http://svn.apache.org/repos/asf/commons/proper/scxml/trunk</connection>
    <developerConnection>scm:svn:https://svn.apache.org/repos/asf/commons/proper/scxml/trunk</developerConnection>
    <url>http://svn.apache.org/viewvc/commons/proper/scxml/trunk</url>
  </repository>

  <mailingLists>
    <mailingList>
      <name>Commons Dev List</name>
      <subscribe>dev-subscribe@commons.apache.org</subscribe>
      <unsubscribe>dev-unsubscribe@commons.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/commons-dev/</archive>
    </mailingList>
    <mailingList>
      <name>Commons User List</name>
      <subscribe>user-subscribe@commons.apache.org</subscribe>
      <unsubscribe>user-unsubscribe@commons.apache.org</unsubscribe>
      <archive>http://mail-archives.apache.org/mod_mbox/commons-user/</archive>
    </mailingList>
  </mailingLists>

  <versions>
    <version>
      <id>0.5</id>
      <name>0.5</name>
      <tag>SCXML_0_5</tag>
    </version>
    <version>
      <id>0.6</id>
      <name>0.6</name>
      <tag>SCXML_0_6</tag>
    </version>
    <version>
      <id>0.7</id>
      <name>0.7</name>
      <tag>SCXML_0_7</tag>
    </version>
    <version>
      <id>0.8</id>
      <name>0.8</name>
      <tag>SCXML_0_8</tag>
    </version>
  </versions>

  <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>
    <contributor>
      <name>Peter Costa</name>
    </contributor>
    <contributor>
      <name>Wendy Smoak</name>
    </contributor>
    <contributor>
      <name>Heiko Eichberger</name>
    </contributor>
    <contributor>
      <name>Niall Pemberton</name>
    </contributor>
    <contributor>
      <name>Sitthichai Rernglertpricha</name>
    </contributor>
    <contributor>
      <name>Nestor Urquiza</name>
    </contributor>
    <contributor>
      <name>Michael Heuer</name>
    </contributor>
    <contributor>
      <name>Ingmar Kliche</name>
    </contributor>
    <contributor>
      <name>Michael Tillberg</name>
    </contributor>
    <contributor>
      <name>Andy Bailey</name>
    </contributor>
    <contributor>
      <name>Sebastian Bazley</name>
    </contributor>
    <contributor>
      <name>Ross Yakulis</name>
    </contributor>
    <contributor>
      <name>SeongSoo Park</name>
    </contributor>
    <contributor>
      <name>Tony Seebregts</name>
    </contributor>
    <contributor>
      <name>Elaine Wong</name>
    </contributor>
    <contributor>
      <name>Edzard Hoefig</name>
    </contributor>
    <contributor>
      <name>Daniel Schwager</name>
    </contributor>
    <contributor>
      <name>Jakob Sachse</name>
    </contributor>
    <contributor>
      <name>Joel Truher</name>
    </contributor>
  </contributors>
  
  <dependencies>
    <dependency>
      <groupId>commons-logging</groupId>
      <artifactId>commons-logging</artifactId>
      <version>1.1.1</version>
      <url>http://commons.apache.org/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.8</version>
      <url>http://commons.apache.org/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://commons.apache.org/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.2</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://commons.apache.org/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.1</version>
      <url>http://commons.apache.org/jexl/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (JEXL environments)</comment>
        <optional>true</optional>
      </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>org.apache.myfaces.core</groupId>
      <artifactId>myfaces-api</artifactId> 
      <version>1.1.5</version>
      <url>http://myfaces.apache.org/</url>
      <properties>
        <comment>&lt;b&gt;Usecases&lt;/b&gt;
        (JSF environments)</comment>
        <scope>provided</scope>
      </properties>
    </dependency>
    <dependency>
      <groupId>xalan</groupId>
      <artifactId>xalan</artifactId>
      <version>2.6.0</version>
      <url>http://xml.apache.org/xalan-j/</url>
      <properties>
        <comment>&lt;b&gt;Sun JDK 1.5+&lt;/b&gt;
        only</comment>
        <optional>true</optional>
      </properties>
    </dependency>
    <dependency>
      <groupId>maven</groupId>
      <artifactId>maven-xdoc-plugin</artifactId>
      <version>1.9.2</version>
      <url>http://maven.apache.org/maven-1.x/plugins/xdoc/</url>
      <type>plugin</type>
      <properties>
        <comment>&lt;b&gt;Site&lt;/b&gt; only</comment>
      </properties>
    </dependency>
    <dependency>
      <groupId>maven</groupId>
      <artifactId>maven-javadoc-plugin</artifactId>
      <version>1.8</version>
      <url>http://maven.apache.org/maven-1.x/plugins/javadoc/</url>
      <type>plugin</type>
      <properties>
        <comment>&lt;b&gt;Site&lt;/b&gt; only</comment>
      </properties>
    </dependency>
  </dependencies>

  <build>
    <sourceDirectory>src/main/java</sourceDirectory>
    <resources>
      <resource>
        <targetPath>META-INF</targetPath>
        <includes>
          <include>NOTICE.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/invoke/InvokeTestSuite.java</include>
        <include>org/apache/commons/scxml/io/IOTestSuite.java</include>
        <include>org/apache/commons/scxml/issues/IssuesTestSuite.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>
            <include>**/*.gif</include>
          </includes>
        </resource>
      </resources>
    </unitTest>
  </build>

  <reports>
     <report>maven-changes-plugin</report>
     <report>maven-checkstyle-plugin</report>
     <report>maven-faq-plugin</report>
     <report>maven-javadoc-plugin</report>
     <report>maven-junit-report-plugin</report>
     <report>maven-jxr-plugin</report>
     <report>maven-license-plugin</report>
  </reports>
  
</project>
