[java-metadata-aggregator COMMIT] in /trunk/aggregator-pipeline/src: main/java/net/shibboleth/metadata/ItemCollection...
noreply at shibboleth.net
noreply at shibboleth.net
Wed Mar 25 07:11:06 EDT 2015
Author: iay
Date: Wed Mar 25 07:11:06 2015
New Revision: 400
URL: http://svn.shibboleth.net/view/java-metadata-aggregator?rev=400&view=rev
Log:
MDA-134: refactor approach to serialization
Introduce ItemCollectionSerializer interface, enhance DOMItemSerializer to support it for backwards compatibility.
SerializationStage now takes an ItemCollectionSerializer.
Added:
trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/ItemCollectionSerializer.java (with props)
trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/SimpleItemCollectionSerializer.java (with props)
trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/SimpleItemCollectionSerializerTest.java (with props)
trunk/aggregator-pipeline/src/test/java/net/shibboleth/metadata/dom/DOMElementSerializerTest.java (with props)
trunk/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/DOMElementSerializer-1.xml
trunk/aggregator-pipeline/src/test/resources/net/shibboleth/metadata/dom/DOMElementSerializer-2.xml
Modified:
trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/DOMElementSerializer.java
trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/SerializationStage.java
Modified: trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/DOMElementSerializer.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/DOMElementSerializer.java?rev=400&r1=399&r2=400&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/DOMElementSerializer.java (original)
+++ trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/dom/DOMElementSerializer.java Wed Mar 25 07:11:06 2015
@@ -18,6 +18,8 @@
package net.shibboleth.metadata.dom;
import java.io.OutputStream;
+import java.util.Collection;
+import java.util.Iterator;
import javax.annotation.Nonnull;
import javax.annotation.concurrent.ThreadSafe;
@@ -28,6 +30,7 @@
import javax.xml.transform.stream.StreamResult;
import net.shibboleth.metadata.Item;
+import net.shibboleth.metadata.ItemCollectionSerializer;
import net.shibboleth.metadata.ItemSerializer;
import org.slf4j.Logger;
@@ -35,17 +38,21 @@
import org.w3c.dom.Element;
/**
- * Very simple serializer that serializes the document element of the given {@link Element}-based {@link Item}.
+ * Very simple {@link ItemSerializer} that serializes the document element of the given
+ * {@link Element}-based {@link Item}.
+ *
+ * When used as an {@link ItemCollectionSerializer}, just serializes the first {@link Item} in the collection.
+ * This will result in well-formed XML, but other items in the collection will simply be ignored.
*/
@ThreadSafe
-public class DOMElementSerializer implements ItemSerializer<Element> {
+public class DOMElementSerializer implements ItemSerializer<Element>, ItemCollectionSerializer<Element> {
/** Class logger. */
private final Logger log = LoggerFactory.getLogger(DOMElementSerializer.class);
/** {@inheritDoc} */
@Override
- public void serialize(@Nonnull final Item<Element> item, @Nonnull OutputStream output) {
+ public void serialize(@Nonnull final Item<Element> item, @Nonnull final OutputStream output) {
if (item == null) {
return;
}
@@ -62,4 +69,19 @@
}
}
-}
+ /** {@inheritDoc} */
+ @Override
+ public void serializeCollection(@Nonnull final Collection<Item<Element>> items,
+ @Nonnull final OutputStream output) {
+ final Iterator<Item<Element>> iter = items.iterator();
+ if (iter.hasNext()) {
+ serialize(iter.next(), output);
+ if (iter.hasNext()) {
+ log.warn("collection contained more than one Item; rest ignored");
+ }
+ } else {
+ log.warn("collection was empty");
+ }
+ }
+
+}
Modified: trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/SerializationStage.java
URL: http://svn.shibboleth.net/view/java-metadata-aggregator/trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/SerializationStage.java?rev=400&r1=399&r2=400&view=diff
==============================================================================
--- trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/SerializationStage.java (original)
+++ trunk/aggregator-pipeline/src/main/java/net/shibboleth/metadata/pipeline/SerializationStage.java Wed Mar 25 07:11:06 2015
@@ -28,7 +28,7 @@
import javax.annotation.concurrent.ThreadSafe;
import net.shibboleth.metadata.Item;
-import net.shibboleth.metadata.ItemSerializer;
+import net.shibboleth.metadata.ItemCollectionSerializer;
import net.shibboleth.utilities.java.support.annotation.constraint.NonnullElements;
import net.shibboleth.utilities.java.support.component.ComponentInitializationException;
import net.shibboleth.utilities.java.support.component.ComponentSupport;
[... 68 lines stripped ...]
More information about the commits
mailing list