Author: guixl
Date: Tue Jul 20 14:23:46 2010
New Revision: 965859
URL: http://svn.apache.org/viewvc?rev=965859&view=rev
Log:
improve Apache Commons SCXML runtime class template
Modified:
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java
Modified:
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java?rev=965859&r1=965858&r2=965859&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java
(original)
+++
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/debug/CommonsSCXMLEngine.java
Tue Jul 20 14:23:46 2010
@@ -1,4 +1,4 @@
-package guixl;
+
import java.io.BufferedReader;
import java.io.IOException;
@@ -17,10 +17,10 @@ import org.apache.commons.scxml.model.Mo
import org.apache.commons.scxml.model.SCXML;
import org.xml.sax.SAXException;
-public class HelloWorld {
+public class $CLASS_NAME$ {
/**
- * @param args
+ * Apache Commons SCXML engine
*/
public static void main(String[] args) {
List customActions = new ArrayList();
@@ -32,8 +32,8 @@ public class HelloWorld {
*/
SCXML scxml=null;
try {
- scxml =
SCXMLParser.parse(HelloWorld.class.getClassLoader().
- getResource("guixl/hello-world.xml"), null,
customActions);
+ scxml =
SCXMLParser.parse($CLASS_NAME$.class.getClassLoader().
+ getResource("$SCXML_DOCUMENT_RESOURCE$"), null,
customActions);
SCXMLExecutor engine = new SCXMLExecutor(new
JexlEvaluator(), new SimpleDispatcher(),
new SimpleErrorReporter());
engine.setStateMachine(scxml);
Modified:
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java?rev=965859&r1=965858&r2=965859&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java
(original)
+++
commons/sandbox/gsoc/2010/scxml-eclipse/trunk/src/main/java/org.apache.commons.scxml.modeling.diagram/src/org/apache/commons/scxml/modeling/diagram/part/ModelingNewDebugFileWizard.java
Tue Jul 20 14:23:46 2010
@@ -16,9 +16,11 @@
*/
package org.apache.commons.scxml.modeling.diagram.part;
+import java.io.ByteArrayInputStream;
import java.io.ByteArrayOutputStream;
import java.io.IOException;
import java.io.InputStream;
+import java.io.UnsupportedEncodingException;
import java.lang.reflect.InvocationTargetException;
import java.util.LinkedList;
import java.util.List;
@@ -73,6 +75,10 @@ public class ModelingNewDebugFileWizard
* model file
*/
private IFile modelFile;
+
+ private String testCaseClassName;
+
+ private IPath filePath;
/**
* @generated
@@ -92,8 +98,8 @@ public class ModelingNewDebugFileWizard
myFileCreationPage.setDescription(NLS.bind(
Messages.ModelingNewScxmlFileWizard_CreationPageDescription,
ServiceTemplateEditPart.MODEL_ID));
- IPath filePath;
- String fileName =
domainModelURI.trimFileExtension().lastSegment();
+
+
testCaseClassName=domainModelURI.trimFileExtension().lastSegment()+"TestCase";
if (domainModelURI.isPlatformResource()) {
filePath = new Path(domainModelURI.trimSegments(1)
.toPlatformString(true));
@@ -105,7 +111,7 @@ public class ModelingNewDebugFileWizard
}
myFileCreationPage.setContainerFullPath(filePath);
myFileCreationPage.setFileName(ModelingDiagramEditorUtil
- .getUniqueFileName(filePath, fileName,
"java")); //$NON-NLS-1$
+ .getUniqueFileName(filePath, testCaseClassName,
"java")); //$NON-NLS-1$
diagramRootElementSelectionPage = new
DiagramRootElementSelectionPage(
Messages.ModelingNewScxmlFileWizard_RootSelectionPageName);
@@ -133,6 +139,26 @@ public class ModelingNewDebugFileWizard
}
return baos.toString();
}
+
+ /**
+ *
+ * @param str
+ * @return change string to InputStream
+ */
+ public InputStream string2InputStream(String str) {
+ ByteArrayInputStream stream = null;
+ try {
+ stream = new
ByteArrayInputStream(str.getBytes("UTF-8"));
+ } catch (UnsupportedEncodingException e) {
+ e.printStackTrace();
+ }
+ if (stream != null)
+ return stream;
+ else {
+ System.out.println("stream is null");
+ return null;
+ }
+ }
/**
* @generated
@@ -202,8 +228,15 @@ public class ModelingNewDebugFileWizard
try {
InputStream
fileTemplate=this.getClass().getClassLoader().getResourceAsStream("debug/CommonsSCXMLEngine.java");
monitor.worked(1);
- debugClassFile.setContents(fileTemplate, 1,
null);
- monitor.worked(8);
+ String content=inputStream2String(fileTemplate);
+ content=content.replace("$CLASS_NAME$",
testCaseClassName);
+ monitor.worked(1);
+ String
wholePath=filePath+"/"+testCaseClassName+".xml";
+ String
scxmlPath=wholePath.substring(wholePath.indexOf("/", 1));
+
content=content.replace("$SCXML_DOCUMENT_RESOURCE$", scxmlPath);
+ monitor.worked(1);
+
debugClassFile.setContents(string2InputStream(content), 1, null);
+ monitor.worked(7);
// get target list by regular expression
/*ScxmlExportStreamHandlerAction shc = new
ScxmlExportStreamHandlerAction(
@@ -235,6 +268,9 @@ public class ModelingNewDebugFileWizard
monitor.done();
} catch (CoreException e) {
e.printStackTrace();
+ } catch (IOException e) {
+ // TODO Auto-generated catch block
+ e.printStackTrace();
}
}
}