[java-metadata-aggregator COMMIT] in /trunk/aggregator-pipeline/src: main/java/net/shibboleth/metadata/dom/XSLValidat...

noreply at shibboleth.net noreply at shibboleth.net
Thu Mar 22 11:57:57 GMT 2012


Author: iay
Date: Thu Mar 22 11:57:56 2012
New Revision: 196

URL: http://svn.shibboleth.net/view/java-metadata-aggregator?rev=196&view=rev
Log:
MDA-45: XSLValidationStage should start from document node, not document element.

Added:
    trunk/aggregator-pipeline/src/test/resources/data/mda45.xsl   (with props)
Modified:
    trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XSLValidationStage.java
    trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLValidationStageTest.java

Modified: trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XSLValidationStage.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XSLValidationStage.java?rev=196&r1=195&r2=196&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XSLValidationStage.java (original)
+++ trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/XSLValidationStage.java Thu Mar 22 11:57:56 2012
@@ -47,7 +47,7 @@
         try {
             for (DomElementItem domItem : itemCollection) {
                 transformer.setErrorListener(new StatusInfoAppendingErrorListener(domItem));
-                transformer.transform(new DOMSource(domItem.unwrap()), new DOMResult());
+                transformer.transform(new DOMSource(domItem.unwrap().getOwnerDocument()), new DOMResult());
             }
         } catch (TransformerException e) {
             throw new StageProcessingException("Unable to validate DOM Element", e);

Modified: trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLValidationStageTest.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLValidationStageTest.java?rev=196&r1=195&r2=196&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLValidationStageTest.java (original)
+++ trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/XSLValidationStageTest.java Thu Mar 22 11:57:56 2012
@@ -92,12 +92,39 @@
         Assert.assertEquals(warnings.size(), 1);
         Assert.assertEquals(warnings.get(0).getStatusMessage(), "first value");
 
-        // verify the presence of the WarningStatus on the output
+        // verify the presence of the ErrorStatus on the output
         List<ErrorStatus> errors = result.getItemMetadata().get(ErrorStatus.class);
         Assert.assertEquals(errors.size(), 1);
         Assert.assertEquals(errors.get(0).getStatusMessage(), "error value");
     }
 
+    /**
+     * Test for MDA-45.
+     */
+    @Test public void testMDA45() throws Exception {
+
+        ArrayList<DomElementItem> mdCol = new ArrayList<DomElementItem>();
+        mdCol.add(makeInput());
+
+        Resource transform = new ClasspathResource("data/mda45.xsl");
+
+        XSLValidationStage stage = new XSLValidationStage();
+        stage.setId("test");
+        stage.setXslResource(transform);
+        stage.initialize();
+
+        stage.execute(mdCol);
+
+        // The input element should still be the only thing in the collection
+        Assert.assertEquals(mdCol.size(), 1);
+        DomElementItem result = mdCol.get(0);
+
+        // verify the presence of the InfoStatus on the output
+        List<InfoStatus> infos = result.getItemMetadata().get(InfoStatus.class);
+        Assert.assertEquals(infos.size(), 1);
+        Assert.assertEquals(infos.get(0).getStatusMessage(), "values");
+    }
+    
     /** Simple marker object to test correct passage of {@link ItemMetadata} through pipeline stages. */
     private static class TestInfo implements ItemMetadata {
 



More information about the commits mailing list