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()));


Reply via email to