[java-metadata-aggregator COMMIT] in /trunk: aggregator-parent/doc/RELEASE-NOTES.txt aggregator-pipeline/src/main/jav...

noreply at shibboleth.net noreply at shibboleth.net
Mon Oct 14 05:29:00 EDT 2013


Author: iay
Date: Mon Oct 14 05:29:00 2013
New Revision: 279

URL: http://svn.shibboleth.net/view/java-metadata-aggregator?rev=279&view=rev
Log:
MDA-102: allow configuration of URI resolver for XSLT stages

Added:
    trunk/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/XSLTransformationStage-included2.xsl   (with props)
    trunk/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/XSLTransformationStage-output2.xml   (with props)
Modified:
    trunk/aggregator-parent/doc/RELEASE-NOTES.txt
    trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractXSLProcessingStage.java
    trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLTtransformationStageTest.java

Modified: trunk/aggregator-parent/doc/RELEASE-NOTES.txt
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-parent/doc/RELEASE-NOTES.txt?rev=279&r1=278&r2=279&view=diff
==============================================================================
--- trunk/aggregator-parent/doc/RELEASE-NOTES.txt (original)
+++ trunk/aggregator-parent/doc/RELEASE-NOTES.txt Mon Oct 14 05:29:00 2013
@@ -48,6 +48,7 @@
 ** New Feature
     * [MDA-88] - assist debugging of signature creation by making pre-digest data available
     * [MDA-91] - allow checking that SAML metadata is signed using ID, not empty reference
+    * [MDA-102] - allow configuration of URI resolver for XSLT stages
     * [MDA-120] - signature validation stage should allow algorithm blacklisting
 
 ** Task

Modified: trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractXSLProcessingStage.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractXSLProcessingStage.java?rev=279&r1=278&r2=279&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractXSLProcessingStage.java (original)
+++ trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/AbstractXSLProcessingStage.java Mon Oct 14 05:29:00 2013
@@ -32,6 +32,7 @@
 import javax.xml.transform.TransformerConfigurationException;
 import javax.xml.transform.TransformerException;
 import javax.xml.transform.TransformerFactory;
+import javax.xml.transform.URIResolver;
 import javax.xml.transform.stream.StreamSource;
 
 import net.shibboleth.metadata.ErrorStatus;
@@ -86,6 +87,9 @@
      * If not set, an empty collection.
      */
     private Map<String, Object> transformParameters = Collections.emptyMap();
+    
+    /** {@link URIResolver} to use in the transformer. Default value: <code>null</code>. */
+    @Nullable private URIResolver uriResolver;
 
     /**
      * Gets the resource that provides the XSL document.
@@ -203,6 +207,28 @@
         }
 
         transformParameters = Collections.unmodifiableMap(newParams);
+    }
+
+    /**
+     * Gets the {@link URIResolver} set for this transform, if any.
+     * 
+     * @return the {@link URIResolver}, or <code>null</code>
+     */
+    @Nullable public URIResolver getURIResolver() {
+        return uriResolver;
+    }
+
+    /**
+     * Set the {@link URIResolver} for this transform, or <code>null</code> to
+     * specify none.
+     * 
+     * @param resolver the {@link URIResolver} to use, or <code>null</code>
+     */
+    public synchronized void setURIResolver(@Nullable final URIResolver resolver) {
+        ComponentSupport.ifDestroyedThrowDestroyedComponentException(this);
+        ComponentSupport.ifInitializedThrowUnmodifiabledComponentException(this);
+
+        uriResolver = resolver;
     }
 
     /** {@inheritDoc} */
@@ -241,6 +267,7 @@
         transformAttributes = null;
         transformFeatures = null;
         transformParameters = null;
+        uriResolver = null;
 
         super.doDestroy();
     }
@@ -272,6 +299,10 @@
 
             for (Entry<String, Boolean> features : transformFeatures.entrySet()) {
                 tfactory.setFeature(features.getKey(), features.getValue());
+            }
+            
+            if (uriResolver != null) {
+                tfactory.setURIResolver(uriResolver);
             }
 
             log.debug("{} pipeline stage compiling XSL file {}", getId(), xslResource);

Modified: trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLTtransformationStageTest.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLTtransformationStageTest.java?rev=279&r1=278&r2=279&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLTtransformationStageTest.java (original)
+++ trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLTtransformationStageTest.java Mon Oct 14 05:29:00 2013
@@ -24,12 +24,19 @@
 import java.util.Map;
 import java.util.Set;
 
+import javax.xml.transform.Source;
+import javax.xml.transform.TransformerException;

[... 72 lines stripped ...]


More information about the commits mailing list