<?xml version="1.0"?>
<rdf:RDF xmlns="http://usefulinc.com/ns/doap#" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:asfext="http://projects.apache.org/ns/asfext#" xmlns:rdfs="http://www.w3.org/2000/01/rdf-schema#" xmlns:doap="http://usefulinc.com/ns/doap#" xml:lang="en">
<!-- 
 * 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 rdf:about="http://commons.apache.org/scxml/">
    <name>Apache Commons SCXML</name>
    <shortname>Commons SCXML</shortname>
    <homepage rdf:resource="http://commons.apache.org/scxml/"/>
    <programming-language>Java</programming-language>
    <category rdf:resource="http://projects.apache.org/category/library"/>
    <license rdf:resource="http://usefulinc.com/doap/licenses/asl20"/>
    <bug-database rdf:resource="http://issues.apache.org/jira/browse/SCXML"/>
    <download-page rdf:resource="http://commons.apache.org/downloads/download_scxml.cgi"/>
    <asfext:pmc rdf:resource="http://commons.apache.org/"/>
    <shortdesc xml:lang="en">A Java implementation of State Chart XML</shortdesc>
    <description xml:lang="en">
     An implementation of the State Chart XML specification aimed at creating
     and maintaining a Java SCXML engine. It is capable of executing an environment
     agnostic state machine defined using a SCXML document.
    </description>
    <repository>
      <SVNRepository>
        <browse rdf:resource="http://svn.apache.org/viewvc/commons/proper/scxml/trunk/"/>
        <location rdf:resource="http://svn.apache.org/repos/asf/commons/proper/scxml"/>
      </SVNRepository>
    </repository>
    <release>
      <revision>
        <name>commons-scxml</name>
        <created>2006-07-28</created>
        <version>0.5</version>
      </revision>
    </release>
    <release>
      <revision>
        <name>commons-scxml</name>
        <created>2006-12-18</created>
        <version>0.6</version>
      </revision>
    </release>
    <release>
      <revision>
        <name>commons-scxml</name>
        <created>2007-12-20</created>
        <version>0.7</version>
      </revision>
    </release>
    <release>
      <revision>
        <name>commons-scxml</name>
        <created>2008-05-20</created>
        <version>0.8</version>
      </revision>
    </release>
    <mailing-list rdf:resource="http://commons.apache.org/mail-lists.html"/>
  </Project>
</rdf:RDF>
