Author: karthick
Date: Thu Dec 11 14:07:21 2008
New Revision: 725835

URL: http://svn.apache.org/viewvc?rev=725835&view=rev
Log:
Cache XSLT Style Sheets By Bundle (ODE-439)

Modified:
    ode/trunk/Buildfile
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/BpelCompilerImpl.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/CompilerContext.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath10/JaxenBpelHandler.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/JaxpFunctionResolver.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/BpelCompilerImpl.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/CompilerContext.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath10/JaxenBpelHandler.java
    
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/JaxpFunctionResolver.java
    
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
    
ode/trunk/engine/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath10/JaxenContexts.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath20/JaxpFunctionResolver.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenContexts.java
    
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpFunctionResolver.java
    
ode/trunk/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java

Modified: ode/trunk/Buildfile
URL: 
http://svn.apache.org/viewvc/ode/trunk/Buildfile?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- ode/trunk/Buildfile (original)
+++ ode/trunk/Buildfile Thu Dec 11 14:07:21 2008
@@ -361,7 +361,7 @@
   desc "ODE BPEL Compiler"
   define "bpel-compiler" do
     compile.with projects("bpel-api", "runtimes", "bpel-schemas", "utils"),
-      COMMONS.logging, JAVAX.stream, JAXEN, SAXON, WSDL4J, XALAN, XERCES
+      COMMONS.logging, COMMONS.collections, JAVAX.stream, JAXEN, SAXON, 
WSDL4J, XALAN, XERCES
     test.resources { 
filter(project("bpel-scripts").path_to("src/main/resources")).into(test.resources.target).run
 }
     package :jar
   end

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/BpelCompiler.java
 Thu Dec 11 14:07:21 2008
@@ -29,5 +29,11 @@
     void addWsdlImport(URI from, URI wsdlImport, SourceLocation sloc);
 
     ProcessModel compile(Process p, ResourceFinder rf);
-
+    
+       /**
+        * Retrieves the base URI that the BPEL Process execution context is 
running relative to.
+        * 
+        * @return URI - the URI representing the absolute physical file path 
location that this process is defined within.
+        */
+        public URI getBaseResourceURI();        
 }

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/DefaultResourceFinder.java
 Thu Dec 11 14:07:21 2008
@@ -103,4 +103,7 @@
         return new FileInputStream(f);
     }
 
+    public URI getBaseResourceURI() {
+        return _absoluteDir.toURI();
+    }
 }

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/ResourceFinder.java
 Thu Dec 11 14:07:21 2008
@@ -38,6 +38,14 @@
      * @throws IOException in case of read error
      */
     InputStream openResource(URI uri) throws MalformedURLException, 
IOException;
+    
+    
+       /**
+        * Retrieves the base URI that the BPEL Process execution context is 
running relative to.
+        * 
+        * @return URI - the URI representing the absolute physical file path 
location that this process is defined within.
+        */
+        public URI getBaseResourceURI();
 
 }
 

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/BpelCompilerImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/BpelCompilerImpl.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/BpelCompilerImpl.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/BpelCompilerImpl.java
 Thu Dec 11 14:07:21 2008
@@ -1749,4 +1749,17 @@
 
     public void setExtensionValidators(Map<QName, ExtensionValidator> 
validators) {
     }
+    
+    
+       /**
+        * Retrieves the base URI that the BPEL Process execution contextis 
running relative to.
+        * 
+        * @return URI - the URI representing the absolute physical file path 
location that this process is defined within.
+        * @throws IOException 
+        * @throws MalformedURLException 
+        */
+        public URI getBaseResourceURI() {
+               return _resourceFinder.getBaseResourceURI();
+       }
+        
 }

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/CompilerContext.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/CompilerContext.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/CompilerContext.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/CompilerContext.java
 Thu Dec 11 14:07:21 2008
@@ -140,4 +140,10 @@
 
     Map<URI, Source> getSchemaSources();
 
+       /**
+        * Retrieves the base URI that the BPEL Process execution contextis 
running relative to.
+        * 
+        * @return URI - the URI representing the absolute physical file path 
location that this process is defined within.
+        */
+       URI getBaseResourceURI();
 }

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath10/JaxenBpelHandler.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath10/JaxenBpelHandler.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath10/JaxenBpelHandler.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath10/JaxenBpelHandler.java
 Thu Dec 11 14:07:21 2008
@@ -223,7 +223,7 @@
     String xslUri = getLiteralFromExpression((Expr)params.get(0));
     OXslSheet xslSheet = _cctx.compileXslt(xslUri);
     try {
-      XslTransformHandler.getInstance().parseXSLSheet(xslSheet.uri, 
xslSheet.sheetBody,
+      
XslTransformHandler.getInstance().parseXSLSheet(_cctx.getBaseResourceURI(), 
xslSheet.uri, xslSheet.sheetBody,
                       new XslCompileUriResolver(_cctx, _out));
     } catch (Exception e) {
       throw new CompilationException(

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/JaxpFunctionResolver.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/JaxpFunctionResolver.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/JaxpFunctionResolver.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v1/xpath20/JaxpFunctionResolver.java
 Thu Dec 11 14:07:21 2008
@@ -146,7 +146,7 @@
             String xslUri = (String) params.get(0);
             OXslSheet xslSheet = _cctx.compileXslt(xslUri);
             try {
-                XslTransformHandler.getInstance().parseXSLSheet(xslSheet.uri, 
xslSheet.sheetBody,
+                
XslTransformHandler.getInstance().parseXSLSheet(_cctx.getBaseResourceURI(), 
xslSheet.uri, xslSheet.sheetBody,
                         new XslCompileUriResolver(_cctx, _out));
             } catch (Exception e) {
                 throw new 
CompilationException(__msgs.errXslCompilation(xslUri, e.toString()));

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/BpelCompilerImpl.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/BpelCompilerImpl.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/BpelCompilerImpl.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/BpelCompilerImpl.java
 Thu Dec 11 14:07:21 2008
@@ -1706,6 +1706,16 @@
        return schemaSources;
     }
     
+    
+       /**
+        * Retrieves the base URI that the BPEL Process execution context is 
running relative to.
+        * 
+        * @return URI - the URI representing the absolute physical file path 
location that this process is defined within.
+        */
+        public URI getBaseResourceURI() {
+               return _resourceFinder.getBaseResourceURI();
+       }
+        
     /**
      * Compile external variable declaration.
      * @param src variable object

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/CompilerContext.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/CompilerContext.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/CompilerContext.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/CompilerContext.java
 Thu Dec 11 14:07:21 2008
@@ -144,4 +144,11 @@
     //void setExtensionValidators(Map<QName, ExtensionValidator> 
extensionValidators);
     
     ExtensionValidator getExtensionValidator(QName extensionElementName);
+
+       /**
+        * Retrieves the base URI that the BPEL Process execution contextis 
running relative to.
+        * 
+        * @return URI - the URI representing the absolute physical file path 
location that this process is defined within.
+        */
+       URI getBaseResourceURI();
 }

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath10/JaxenBpelHandler.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath10/JaxenBpelHandler.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath10/JaxenBpelHandler.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath10/JaxenBpelHandler.java
 Thu Dec 11 14:07:21 2008
@@ -224,7 +224,7 @@
     String xslUri = getLiteralFromExpression((Expr)params.get(0));
     OXslSheet xslSheet = _cctx.compileXslt(xslUri);
     try {
-      XslTransformHandler.getInstance().parseXSLSheet(xslSheet.uri, 
xslSheet.sheetBody,
+      
XslTransformHandler.getInstance().parseXSLSheet(_cctx.getBaseResourceURI(), 
xslSheet.uri, xslSheet.sheetBody,
                       new XslCompileUriResolver(_cctx, _out));
     } catch (Exception e) {
       throw new CompilationException(

Modified: 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/JaxpFunctionResolver.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/JaxpFunctionResolver.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/JaxpFunctionResolver.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/main/java/org/apache/ode/bpel/compiler/v2/xpath20/JaxpFunctionResolver.java
 Thu Dec 11 14:07:21 2008
@@ -146,7 +146,7 @@
             String xslUri = (String) params.get(0);
             OXslSheet xslSheet = _cctx.compileXslt(xslUri);
             try {
-                XslTransformHandler.getInstance().parseXSLSheet(xslSheet.uri, 
xslSheet.sheetBody,
+                
XslTransformHandler.getInstance().parseXSLSheet(_cctx.getBaseResourceURI(), 
xslSheet.uri, xslSheet.sheetBody,
                         new XslCompileUriResolver(_cctx, _out));
             } catch (Exception e) {
                 throw new 
CompilationException(__msgs.errXslCompilation(xslUri, e.toString()));

Modified: 
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
 (original)
+++ 
ode/trunk/bpel-compiler/src/test/java/org/apache/ode/bpel/compiler/XPathTest.java
 Thu Dec 11 14:07:21 2008
@@ -267,4 +267,8 @@
     public Map<URI, Source> getSchemaSources() {
                return null;
        }
+
+       public URI getBaseResourceURI() {
+               return null;
+       }
 }

Modified: 
ode/trunk/engine/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/engine/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/engine/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
 (original)
+++ 
ode/trunk/engine/src/test/java/org/apache/ode/bpel/elang/xpath20/runtime/MockCompilerContext.java
 Thu Dec 11 14:07:21 2008
@@ -206,4 +206,8 @@
        public Map<URI, Source> getSchemaSources() {
                return null;
        }
+
+       public URI getBaseResourceURI() {
+               return null;
+       }
 }

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath10/JaxenContexts.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath10/JaxenContexts.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath10/JaxenContexts.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath10/JaxenContexts.java
 Thu Dec 11 14:07:21 2008
@@ -336,9 +336,9 @@
             Object result;
             DOMSource source = new DOMSource(varDoc);
             XslRuntimeUriResolver resolver = new 
XslRuntimeUriResolver(_oxpath, _xpathEvalCtx.getBaseResourceURI());
-            XslTransformHandler.getInstance().cacheXSLSheet(xslUri, 
xslSheet.sheetBody, resolver);
+            
XslTransformHandler.getInstance().cacheXSLSheet(_xpathEvalCtx.getBaseResourceURI(),
 xslUri, xslSheet.sheetBody, resolver);
             try {
-                result = XslTransformHandler.getInstance().transform(xslUri, 
source, parametersMap, resolver);
+                result = 
XslTransformHandler.getInstance().transform(_xpathEvalCtx.getBaseResourceURI(), 
xslUri, source, parametersMap, resolver);
             } catch (Exception e) {
                 throw new WrappedFaultException.JaxenFunctionException(
                         new 
FaultException(_oxpath.getOwner().constants.qnSubLanguageExecutionFault,

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath20/JaxpFunctionResolver.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath20/JaxpFunctionResolver.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath20/JaxpFunctionResolver.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v1/xpath20/JaxpFunctionResolver.java
 Thu Dec 11 14:07:21 2008
@@ -283,9 +283,9 @@
             Object result;
             DOMSource source = new DOMSource(varDoc);
             XslRuntimeUriResolver resolver = new 
XslRuntimeUriResolver(_oxpath, _ectx.getBaseResourceURI());
-            XslTransformHandler.getInstance().cacheXSLSheet(xslUri, 
xslSheet.sheetBody, resolver);
+            
XslTransformHandler.getInstance().cacheXSLSheet(_ectx.getBaseResourceURI(), 
xslUri, xslSheet.sheetBody, resolver);
             try {
-                result = XslTransformHandler.getInstance().transform(xslUri, 
source, parametersMap, resolver);
+                result = 
XslTransformHandler.getInstance().transform(_ectx.getBaseResourceURI(), xslUri, 
source, parametersMap, resolver);
             } catch (Exception e) {
                 e.printStackTrace();
                 throw new XPathFunctionException(

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenContexts.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenContexts.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenContexts.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath10/JaxenContexts.java
 Thu Dec 11 14:07:21 2008
@@ -330,9 +330,9 @@
             Object result;
             DOMSource source = new DOMSource(varDoc);
             XslRuntimeUriResolver resolver = new 
XslRuntimeUriResolver(_oxpath, _xpathEvalCtx.getBaseResourceURI());
-            XslTransformHandler.getInstance().cacheXSLSheet(xslUri, 
xslSheet.sheetBody, resolver);
+            
XslTransformHandler.getInstance().cacheXSLSheet(_xpathEvalCtx.getBaseResourceURI(),
 xslUri, xslSheet.sheetBody, resolver);
             try {
-                result = XslTransformHandler.getInstance().transform(xslUri, 
source, parametersMap, resolver);
+                result = 
XslTransformHandler.getInstance().transform(_xpathEvalCtx.getBaseResourceURI(), 
xslUri, source, parametersMap, resolver);
             } catch (Exception e) {
                 throw new 
org.apache.ode.bpel.rtrep.v1.xpath10.WrappedFaultException.JaxenFunctionException(
                         new 
FaultException(_oxpath.getOwner().constants.qnSubLanguageExecutionFault,

Modified: 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpFunctionResolver.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpFunctionResolver.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpFunctionResolver.java
 (original)
+++ 
ode/trunk/runtimes/src/main/java/org/apache/ode/bpel/rtrep/v2/xpath20/JaxpFunctionResolver.java
 Thu Dec 11 14:07:21 2008
@@ -284,9 +284,9 @@
             Object result;
             DOMSource source = new DOMSource(varDoc);
             XslRuntimeUriResolver resolver = new 
XslRuntimeUriResolver(_oxpath, _ectx.getBaseResourceURI());
-            XslTransformHandler.getInstance().cacheXSLSheet(xslUri, 
xslSheet.sheetBody, resolver);
+            
XslTransformHandler.getInstance().cacheXSLSheet(_ectx.getBaseResourceURI(), 
xslUri, xslSheet.sheetBody, resolver);
             try {
-                result = XslTransformHandler.getInstance().transform(xslUri, 
source, parametersMap, resolver);
+                result = 
XslTransformHandler.getInstance().transform(_ectx.getBaseResourceURI(), xslUri, 
source, parametersMap, resolver);
             } catch (Exception e) {
                 e.printStackTrace();
                 throw new XPathFunctionException(

Modified: 
ode/trunk/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java
URL: 
http://svn.apache.org/viewvc/ode/trunk/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java?rev=725835&r1=725834&r2=725835&view=diff
==============================================================================
--- 
ode/trunk/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java 
(original)
+++ 
ode/trunk/utils/src/main/java/org/apache/ode/utils/xsl/XslTransformHandler.java 
Thu Dec 11 14:07:21 2008
@@ -19,12 +19,14 @@
 
 package org.apache.ode.utils.xsl;
 
-import org.w3c.dom.Node;
-import org.w3c.dom.Document;
+import java.io.StringReader;
+import java.io.StringWriter;
+import java.net.URI;
+import java.util.HashMap;
+import java.util.Map;
 
 import javax.xml.namespace.QName;
 import javax.xml.transform.ErrorListener;
-import javax.xml.transform.Result;
 import javax.xml.transform.Source;
 import javax.xml.transform.Templates;
 import javax.xml.transform.Transformer;
@@ -33,13 +35,12 @@
 import javax.xml.transform.TransformerFactory;
 import javax.xml.transform.URIResolver;
 import javax.xml.transform.dom.DOMResult;
-import javax.xml.transform.stream.StreamSource;
 import javax.xml.transform.stream.StreamResult;
-import java.io.StringReader;
-import java.io.StringWriter;
-import java.net.URI;
-import java.util.HashMap;
-import java.util.Map;
+import javax.xml.transform.stream.StreamSource;
+
+import org.apache.commons.collections.keyvalue.MultiKey;
+import org.w3c.dom.Document;
+import org.w3c.dom.Node;
 
 /**
  * Singleton wrapping the basic <code>javax.xml.transform</code> operations. 
The
@@ -55,7 +56,7 @@
   private static XslTransformHandler __singleton;
 
   private TransformerFactory _transformerFactory = null;
-  private final HashMap<URI,Templates> _templateCache = new HashMap<URI, 
Templates>();
+  private final HashMap<MultiKey, Templates> _templateCache = new 
HashMap<MultiKey, Templates>();
 
   /**
    * Singleton access.
@@ -84,7 +85,7 @@
    * @param body of the XSL document
    * @param resolver used to resolve includes and imports
    */
-  public void parseXSLSheet(URI uri, String body, URIResolver resolver) {
+  public void parseXSLSheet(URI baseUri, URI uri, String body, URIResolver 
resolver) {
     Templates tm;
     try {
       _transformerFactory.setURIResolver(resolver);
@@ -93,7 +94,7 @@
       throw new XslTransformException(e);
     }
     synchronized(_templateCache) {
-      _templateCache.put(uri, tm);
+      _templateCache.put(new MultiKey(baseUri, uri), tm);
     }
   }
 
@@ -104,12 +105,12 @@
    * @param body of the XSL document
    * @param resolver used to resolve includes and imports
    */
-  public void cacheXSLSheet(URI uri, String body, URIResolver resolver) {
+  public void cacheXSLSheet(URI baseUri, URI uri, String body, URIResolver 
resolver) {
     Templates tm;
     synchronized (_templateCache) {
-      tm = _templateCache.get(uri);
+      tm = _templateCache.get(new MultiKey(baseUri, uri));
     }
-    if (tm == null) parseXSLSheet(uri, body, resolver);
+    if (tm == null) parseXSLSheet(baseUri, uri, body, resolver);
   }
 
   /**
@@ -120,11 +121,11 @@
    * @param parameters passed to the stylesheet
    * @param resolver used to resolve includes and imports
    */
-  public Object transform(URI uri, Source source,
+  public Object transform(URI baseUri, URI uri, Source source,
                         Map<QName, Object> parameters, URIResolver resolver) {
     Templates tm;
     synchronized (_templateCache) {
-      tm = _templateCache.get(uri);
+      tm = _templateCache.get(new MultiKey(baseUri, uri));
     }
     if (tm == null)
       throw new XslTransformException("XSL sheet" + uri + " has not been 
parsed before transformation!");
@@ -137,7 +138,7 @@
         }
       }
         String method = tf.getOutputProperties().getProperty("method");
-        if(method.equals("xml") || method.equals("html")) {
+        if (method == null || method.equals("xml") || method.equals("html")) {
             DOMResult result = new DOMResult();
             tf.transform(source, result);
             Node node = result.getNode();


Reply via email to