blob: a1d5d31ebc55e31ce6a77d7631e05b0c3e68bfa7 [file] [log] [blame]
<?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.
-->
<document>
<properties>
<title>Commons SCXML Usage - API notes - Testing Standalone</title>
<author email="dev@commons.apache.org">Commons Documentation Team</author>
</properties>
<body>
<section name="Commons SCXML - Standalone testing, trying out samples">
<p>The SCXML distribution provides utility classes that offer a mock
command line environments allowing users to try out samples. The core
dependencies for Commons SCXML are Commons Digester (which introduces a
transitive dependency on Commons BeanUtils, at the least) and Commons
Logging.</p>
<p>View the <a href="../dependencies.html">dependencies</a> page for the
recommended version numbers. <i>It may be possible to use lower version
numbers for the Commons dependencies.</i></p>
<p>An environment specific expression language is used in SCXML
documents. Commons SCXML currently supports the use of JEXL or JSP 2.0 EL
in SCXML documents.</p>
<subsection name="Using JEXL in SCXML documents">
<p>The JEXL Standalone class anticipates expressions in JEXL and hence
requires commons-jexl.jar.</p>
<p>So that amounts to (use the correct local paths and filenames to the
<code>jar</code> files and the SCXML document, without the line breaks):</p>
<pre>
java -classpath
commons-digester-1.7.jar;commons-beanutils-1.7.0.jar;
commons-logging-1.0.4.jar;commons-scxml-0.9.jar;
commons-jexl-1.0.jar
<a href="../xref/org/apache/commons/scxml/test/StandaloneJexlExpressions.html">org.apache.commons.scxml.test.StandaloneJexlExpressions</a>
<a href="http://svn.apache.org/repos/asf/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jexl/microwave-01.xml">microwave01.xml</a>
</pre>
</subsection>
<subsection name="Using JSP 2.0 EL in SCXML documents">
<p>The JSP Standalone class anticipates expressions in the JSP 2.0
Expression Language, and hence requires commons-el.jar and jsp-api.jar.</p>
<p>So that amounts to (use the correct local paths and filenames to the
<code>jar</code> files and the SCXML document, without the line breaks):</p>
<pre>
java -classpath
commons-digester-1.7.jar;commons-beanutils-1.7.0.jar;
commons-logging-1.0.4.jar;commons-scxml-1.0-SNAPSHOT.jar;
commons-el-1.0.jar;jsp-api-2.0.jar
<a href="../xref/org/apache/commons/scxml/test/StandaloneElExpressions.html">org.apache.commons.scxml.test.StandaloneElExpressions</a>
<a href="http://svn.apache.org/repos/asf/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/env/jsp/microwave-01.xml">microwave01.xml</a>
</pre>
</subsection>
<p>You could set up something more elegant (a script, an ant task etc.),
but that is what it boils down to.
If the document is a well-formed SCXML document, you will be able to
type ? or help at the console and you can follow the directions thereafter
(to simulate events, set variable values, reset the state machine or quit).
</p>
<p>A few examples are available as part of the
<a href="http://svn.apache.org/repos/asf/commons/proper/scxml/trunk/src/test/java/org/apache/commons/scxml/">
Commons SCXML test suite</a> (look in env.jexl and env.jsp child packages as well).</p>
</section>
</body>
</document>