Author: jbeard
Date: Fri Jun 25 01:25:02 2010
New Revision: 957775
URL: http://svn.apache.org/viewvc?rev=957775&view=rev
Log:
Added stylesheet xsl:import preprocessing to build.js. Unfortunately, we now
have built xsl paths included in both build.js and the transformation js
modules. This violates Don't Repeat Yourself, and so the next step will be to
break this out into a configuration script.
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/build.js
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/Transformer.js
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StatePatternStatechartGenerator.js
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StateTableStatechartGenerator.js
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/SwitchyardStatechartGenerator.js
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/xml.js
Modified: commons/sandbox/gsoc/2010/scxml-js/trunk/build.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/build.js?rev=957775&r1=957774&r2=957775&view=diff
==============================================================================
--- commons/sandbox/gsoc/2010/scxml-js/trunk/build.js (original)
+++ commons/sandbox/gsoc/2010/scxml-js/trunk/build.js Fri Jun 25 01:25:02 2010
@@ -21,12 +21,13 @@ require.def("build",
"src/javascript/scxml/cgf/util/file",
"src/javascript/scxml/cgf/SCXMLCompiler",
"src/javascript/scxml/cgf/PerformanceAnalyzer",
+ "src/javascript/scxml/cgf/Transformer",
"src/javascript/scxml/cgf/util/xml",
"test/testHelpers.js",
"lib/js/json2.js",
"lib/test-js/env.js",
"lib/test-js/dojo-release-1.4.2-src/dojo/dojo.js"],
- function(util,utilFile,SCXMLCompiler,PerformanceAnalyzer,xmlUtil){
+
function(util,utilFile,SCXMLCompiler,PerformanceAnalyzer,Transformer,xmlUtil){
return function(args){
@@ -76,6 +77,22 @@ require.def("build",
KitchenSink_executableContent
:"test/kitchen_sink/KitchenSink_executableContent.xml"
}
+ //FIXME: this violates Don't Repeat Yourself; these
paths are written here and in the module
+ //we need a central configuration file to store it
+ var stylesheetsToPreprocess = [ {
+
from:"src/xslt/backends/js/StatePatternStatechartGenerator.xsl",
+
to:"build/StatePatternStatechartGenerator_combined.xsl"
+ } ,
+ {
+
from:"src/xslt/backends/js/StateTableStatechartGenerator.xsl",
+
to:"build/StateTableStatechartGenerator_combined.xsl"
+ },
+ {
+
from:"src/xslt/backends/js/SwitchyardStatechartGenerator.xsl",
+
to:"build/SwitchyardStatechartGenerator_combined.xsl"
+ } ];
+
+ var pathToPreprocessScript =
"src/xslt/util/preprocess_import.xsl"
var performanceTestScripts = [
{
@@ -196,9 +213,24 @@ require.def("build",
d.mkdir();
},
- genJavaScript : function(compilerCallback){
+ preprocessStylesheets : function(){
this.init();
+ print("Preprocesssing xsl stylesheets
that use xsl:import...");
+
+
stylesheetsToPreprocess.forEach(function({from:inDoc,to:to}){
+ print("Preprocessing " + inDoc
+ " to " + to );
+ var transform =
[xmlUtil.parseFromPath(pathToPreprocessScript)];
+ var outDoc =
Transformer(inDoc,transform,null,"xml");
+ var xmlStr =
xmlUtil.serializeToString(outDoc);
+ utilFile.writeFile(xmlStr,to);
+ });
+
+ },
+
+ genJavaScript : function(compilerCallback){
+ this.preprocessStylesheets();
+
print("Compiling SCXML files...");
var compileTargets =
[{scxmlTest:scxmlTest,backend:backend}
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/Transformer.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/Transformer.js?rev=957775&r1=957774&r2=957775&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/Transformer.js
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/Transformer.js
Fri Jun 25 01:25:02 2010
@@ -11,6 +11,7 @@ function(xmlUtil){
XMLReaderFactory =
Packages.org.xml.sax.helpers.XMLReaderFactory,
ByteArrayOutputStream =
java.io.ByteArrayOutputStream,
StreamResult =
javax.xml.transform.stream.StreamResult,
+ StreamSource =
javax.xml.transform.stream.StreamSource,
DOMSource =
javax.xml.transform.dom.DOMSource,
SAXResult =
javax.xml.transform.sax.SAXResult,
DOMResult =
javax.xml.transform.dom.DOMResult;
@@ -31,7 +32,10 @@ function(xmlUtil){
}
// Use the DOM Document to
define a DOMSource object.
- var xmlDomSource = new
DOMSource(xml);
+ // for Rhino only, we can also
accept a path rather than a Document
+ var xmlDomSource = typeof xml
== "string" ?
+ new
StreamSource(xml) :
+ new
DOMSource(xml);
var toReturn;
switch(output){
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StatePatternStatechartGenerator.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StatePatternStatechartGenerator.js?rev=957775&r1=957774&r2=957775&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StatePatternStatechartGenerator.js
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StatePatternStatechartGenerator.js
Fri Jun 25 01:25:02 2010
@@ -5,9 +5,7 @@ require.def(
[
"src/javascript/scxml/cgf/backends/js/AbstractStatechartGenerator",
"xml!src/xslt/ir-compiler/appendTransitionInformation.xsl",
- //stylesheet must be preprocessed with preprocess_import.xsl
for IE and maybe chrome
-
"xml!src/xslt/backends/js/StatePatternStatechartGenerator_combined.xsl"
-
//"xml!src/xslt/backends/js/StatePatternStatechartGenerator.xsl"
+ "xml!build/StatePatternStatechartGenerator_combined.xsl"
//preprocessed stylesheet
],
function(
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StateTableStatechartGenerator.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StateTableStatechartGenerator.js?rev=957775&r1=957774&r2=957775&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StateTableStatechartGenerator.js
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/StateTableStatechartGenerator.js
Fri Jun 25 01:25:02 2010
@@ -3,8 +3,8 @@ require.def(
"src/javascript/scxml/cgf/backends/js/StateTableStatechartGenerator",
[
"src/javascript/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator",
- // "xml!src/xslt/backends/js/StateTableStatechartGenerator.xsl"
-
"xml!src/xslt/backends/js/StateTableStatechartGenerator_combined.xsl" ],
+ "xml!build/StateTableStatechartGenerator_combined.xsl"
//preprocessed stylesheet
+ ],
function(AbstractEnumeratedStatechartGenerator,StateTableStatechartGenerator){
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/SwitchyardStatechartGenerator.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/SwitchyardStatechartGenerator.js?rev=957775&r1=957774&r2=957775&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/SwitchyardStatechartGenerator.js
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/backends/js/SwitchyardStatechartGenerator.js
Fri Jun 25 01:25:02 2010
@@ -3,8 +3,8 @@ require.def(
"src/javascript/scxml/cgf/backends/js/SwitchyardStatechartGenerator",
[
"src/javascript/scxml/cgf/backends/js/AbstractEnumeratedStatechartGenerator",
- // "xml!src/xslt/backends/js/SwitchyardStatechartGenerator.xsl"
-
"xml!src/xslt/backends/js/SwitchyardStatechartGenerator_combined.xsl" ],
+ "xml!build/SwitchyardStatechartGenerator_combined.xsl"
//preprocessed stylesheet
+ ],
function(AbstractEnumeratedStatechartGenerator,SwitchyardStatechartGenerator){
Modified:
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/xml.js
URL:
http://svn.apache.org/viewvc/commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/xml.js?rev=957775&r1=957774&r2=957775&view=diff
==============================================================================
---
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/xml.js
(original)
+++
commons/sandbox/gsoc/2010/scxml-js/trunk/src/javascript/scxml/cgf/util/xml.js
Fri Jun 25 01:25:02 2010
@@ -17,9 +17,8 @@ function(){
var baos = new
ByteArrayOutputStream();
var serializer = new
Packages.org.apache.xml.serialize.XMLSerializer(
baos,
- new
Packages.org.apache.xml.serialize.OutputFormat);
+ new
Packages.org.apache.xml.serialize.OutputFormat());
-
serializer.setOutputStream(baos);
serializer.asDOMSerializer().serialize(d);
var toReturn = String(new
java.lang.String(baos.toByteArray()));