You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ri...@apache.org on 2012/02/29 21:06:54 UTC

svn commit: r1295247 - in /oodt/trunk/metadata/src: main/java/org/apache/oodt/cas/metadata/SerializableMetadata.java test/org/apache/oodt/cas/metadata/TestSerializableMetadata.java

Author: rickdn
Date: Wed Feb 29 20:06:54 2012
New Revision: 1295247

URL: http://svn.apache.org/viewvc?rev=1295247&view=rev
Log:
OODT-395 #resolve fixed  Set the namespace and prefix when building the original DOM for metadata.


Modified:
    oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/SerializableMetadata.java
    oodt/trunk/metadata/src/test/org/apache/oodt/cas/metadata/TestSerializableMetadata.java

Modified: oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/SerializableMetadata.java
URL: http://svn.apache.org/viewvc/oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/SerializableMetadata.java?rev=1295247&r1=1295246&r2=1295247&view=diff
==============================================================================
--- oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/SerializableMetadata.java (original)
+++ oodt/trunk/metadata/src/main/java/org/apache/oodt/cas/metadata/SerializableMetadata.java Wed Feb 29 20:06:54 2012
@@ -170,8 +170,8 @@ public class SerializableMetadata extend
             factory.setNamespaceAware(true);
             Document document = factory.newDocumentBuilder().newDocument();
 
-            Element root = (Element) document.createElement("cas:metadata");
-            root.setAttribute("xmlns:cas", "http://oodt.jpl.nasa.gov/1.0/cas");
+            Element root = document.createElementNS("http://oodt.jpl.nasa.gov/1.0/cas", "metadata");
+            root.setPrefix("cas");
             document.appendChild(root);
 
             // now add the set of metadata elements in the properties object

Modified: oodt/trunk/metadata/src/test/org/apache/oodt/cas/metadata/TestSerializableMetadata.java
URL: http://svn.apache.org/viewvc/oodt/trunk/metadata/src/test/org/apache/oodt/cas/metadata/TestSerializableMetadata.java?rev=1295247&r1=1295246&r2=1295247&view=diff
==============================================================================
--- oodt/trunk/metadata/src/test/org/apache/oodt/cas/metadata/TestSerializableMetadata.java (original)
+++ oodt/trunk/metadata/src/test/org/apache/oodt/cas/metadata/TestSerializableMetadata.java Wed Feb 29 20:06:54 2012
@@ -15,7 +15,6 @@
 
 package org.apache.oodt.cas.metadata;
 
-//JDK imports
 import org.apache.oodt.commons.xml.XMLUtils;
 
 import java.io.ByteArrayInputStream;
@@ -23,27 +22,32 @@ import java.io.ByteArrayOutputStream;
 import java.io.ObjectInputStream;
 import java.io.ObjectOutputStream;
 
-//JUnit imports
+import javax.xml.parsers.DocumentBuilderFactory;
+
 import junit.framework.TestCase;
 
+import org.w3c.dom.Document;
+import org.w3c.dom.Element;
+
 /**
- * 
- * 
+ *
+ *
  * Test class for SerializableMetadata.
- * 
+ *
  * @author bfoster
  * @author mattmann
- * 
+ *
  */
 public class TestSerializableMetadata extends TestCase {
 
-  private String[] encodings = new String[] { "UTF-8", "iso-8859-1",
+  private final String[] encodings = new String[] { "UTF-8", "iso-8859-1",
       "windows-1252", "UTF-16", "US-ASCII" };
 
   public TestSerializableMetadata() {
     super();
   }
 
+  @Override
   protected void setUp() throws Exception {
     super.setUp();
   }
@@ -164,4 +168,36 @@ public class TestSerializableMetadata ex
     assertNotNull(metadata2.getMetadata("Name2"));
     assertEquals("Value2", metadata2.getMetadata("Name2"));
   }
+
+  public void testNamespace() throws Exception {
+    SerializableMetadata metadata = new SerializableMetadata();
+    metadata.addMetadata("Name1", "Value1");
+    metadata.addMetadata("Name2", "Value2");
+
+    // write xml DOM to string
+    ByteArrayOutputStream array = new ByteArrayOutputStream();
+    metadata.writeMetadataToXmlStream(array);
+
+    // read string into new xml DOM
+    DocumentBuilderFactory f = DocumentBuilderFactory.newInstance();
+    f.setNamespaceAware(true);
+    Document doc = f.newDocumentBuilder().parse(new ByteArrayInputStream(array.toByteArray()));
+
+    final String NS = "http://oodt.jpl.nasa.gov/1.0/cas";
+    final String PREFIX = "cas";
+
+    // compare namespaces in DOM before and after the write/read operation
+    Element before = metadata.toXML().getDocumentElement();
+    String nsBefore = before.getNamespaceURI();
+    String preBefore = before.getPrefix();
+    assertEquals(NS, nsBefore);
+    assertEquals(PREFIX, preBefore);
+
+    Element after = doc.getDocumentElement();
+    String nsAfter = after.getNamespaceURI();
+    String preAfter = after.getPrefix();
+    assertEquals(NS, nsAfter);
+    assertEquals(PREFIX, preAfter);
+  }
+
 }