Author: mattmann
Date: Sun Aug  1 04:03:45 2010
New Revision: 981137

URL: http://svn.apache.org/viewvc?rev=981137&view=rev
Log:
- fix for OODT-19 Metadata should not use a GPL-licensed XML parser

Removed:
    incubator/oodt/trunk/metadata/src/main/cpp/util/
Modified:
    incubator/oodt/trunk/CHANGES.txt
    incubator/oodt/trunk/metadata/src/main/cpp/Makefile
    incubator/oodt/trunk/metadata/src/main/cpp/Metadata.cpp
    incubator/oodt/trunk/metadata/src/main/cpp/Metadata.h
    incubator/oodt/trunk/metadata/src/main/cpp/testMetadata.cpp

Modified: incubator/oodt/trunk/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/incubator/oodt/trunk/CHANGES.txt?rev=981137&r1=981136&r2=981137&view=diff
==============================================================================
--- incubator/oodt/trunk/CHANGES.txt (original)
+++ incubator/oodt/trunk/CHANGES.txt Sun Aug  1 04:03:45 2010
@@ -5,6 +5,8 @@ Apache OODT Change Log
 Release 0.1-incubating - Current Development
 --------------------------------------------
 
+* OODT-19 Metadata should not use a GPL-licensed XML parser (mattmann)
+
 * OODT-7 Curator adds escaped sequenced spaces when reading extractorBinPath 
   tag from extractor config files (joshuaga via mattmann)
 

Modified: incubator/oodt/trunk/metadata/src/main/cpp/Makefile
URL: 
http://svn.apache.org/viewvc/incubator/oodt/trunk/metadata/src/main/cpp/Makefile?rev=981137&r1=981136&r2=981137&view=diff
==============================================================================
--- incubator/oodt/trunk/metadata/src/main/cpp/Makefile (original)
+++ incubator/oodt/trunk/metadata/src/main/cpp/Makefile Sun Aug  1 04:03:45 2010
@@ -20,18 +20,15 @@ CC=gcc
 LIBRARIES = -lxerces-c -lstdc++
 INCLUDES = -I/usr/include/xercesc/
 
-all:    XMLUtils.o metadata.o
+all:    metadata.o
 
 # clean out the dross
 clean:
                rm *.o test
         
-metadata.o: Metadata.h XStr.h ./util/xml/XMLUtils.h
+metadata.o: Metadata.h XStr.h
                $(CC) -c Metadata.cpp $(INCLUDES)
 
-XMLUtils.o: ./util/xml/XMLUtils.h
-               $(CC) -c ./util/xml/XMLUtils.cpp $(INCLUDES)
-
-test: XMLUtils.o metadata.o
-               $(CC) -g metadata.o XMLUtils.o testMetadata.cpp $(LIBRARIES) -o 
test
+test: metadata.o
+               $(CC) -g metadata.o testMetadata.cpp $(LIBRARIES) -o test
                

Modified: incubator/oodt/trunk/metadata/src/main/cpp/Metadata.cpp
URL: 
http://svn.apache.org/viewvc/incubator/oodt/trunk/metadata/src/main/cpp/Metadata.cpp?rev=981137&r1=981136&r2=981137&view=diff
==============================================================================
--- incubator/oodt/trunk/metadata/src/main/cpp/Metadata.cpp (original)
+++ incubator/oodt/trunk/metadata/src/main/cpp/Metadata.cpp Sun Aug  1 04:03:45 
2010
@@ -20,7 +20,6 @@
 
 #include "Metadata.h"
 #include "XStr.h"
-#include "./util/xml/XMLUtils.h"
 #include <vector>
 #include <map>
 #include <string>
@@ -42,11 +41,6 @@ XERCES_CPP_NAMESPACE_USE
 //STD imports
 using namespace std;
 
-//XML Utils imports
-using namespace xmlutils;
-
-
-
 namespace cas
 {
 
@@ -71,7 +65,6 @@ Metadata::Metadata(DOMDocument *doc)
    }
    
    XMLCh *keyValStr = XMLString::transcode("keyval");
-   
    DOMNodeList *keyValElems = 
metadataRootElem->getElementsByTagName(keyValStr);
    
    const XMLSize_t nodeCount = keyValElems->getLength();
@@ -121,7 +114,7 @@ void Metadata::read(DOMElement *elem, co
        DOMNodeList *valueNodes = elem->getElementsByTagName(tagName);
        
        DOMNode* valElem = valueNodes->item(0);
-       value = getNodeText(valElem);
+       value = getSimpleNodeText(valElem);
 }
  
 
@@ -131,7 +124,7 @@ void Metadata::readMany(DOMElement *elem
        
     for(int i=0; i < valueNodes->getLength(); i++){
          DOMNode *valElem = valueNodes->item(i);
-         string value = getNodeText(valElem);
+         string value = getSimpleNodeText(valElem);
          values.push_back(value);
     }
 }
@@ -206,6 +199,20 @@ const vector<string>& Metadata::getAllMe
                
 }
 
+string Metadata::getSimpleNodeText(DOMNode* node){
+    string nodeTxt = "";
+    DOMNodeList *children = node->getChildNodes();
+    for(int i=0; i < children->getLength(); i++){
+      DOMNode *n = children->item(i);
+      if(n->getNodeType() == DOMNode::TEXT_NODE){
+         const XMLCh *xmlText = n->getNodeValue();
+         nodeTxt+=XMLString::transcode(xmlText);
+      }    
+    }
+
+   return nodeTxt;
+}
+
 DOMDocument* Metadata::toXML(void){
     // Initialize the XML4C2 system.
     try
@@ -231,7 +238,6 @@ DOMDocument* Metadata::toXML(void){
        {
            try
            {
-            //DOMDocumentType* pDoctype = impl->createDocumentType( NULL, 
NULL, NULL );
                DOMDocument* doc = impl->createDocument(
                            // FIXME: change namespace URI?
                            X("http://oodt.jpl.nasa.gov/1.0/cas";),              
      // root element namespace URI.

Modified: incubator/oodt/trunk/metadata/src/main/cpp/Metadata.h
URL: 
http://svn.apache.org/viewvc/incubator/oodt/trunk/metadata/src/main/cpp/Metadata.h?rev=981137&r1=981136&r2=981137&view=diff
==============================================================================
--- incubator/oodt/trunk/metadata/src/main/cpp/Metadata.h (original)
+++ incubator/oodt/trunk/metadata/src/main/cpp/Metadata.h Sun Aug  1 04:03:45 
2010
@@ -168,6 +168,7 @@ private:
     
     void read(DOMElement *elem, const string& key, string& value);
     void readMany(DOMElement *elem, const string& key, vector<string>& values);
+    string getSimpleNodeText(DOMNode *node);
     
 };
 

Modified: incubator/oodt/trunk/metadata/src/main/cpp/testMetadata.cpp
URL: 
http://svn.apache.org/viewvc/incubator/oodt/trunk/metadata/src/main/cpp/testMetadata.cpp?rev=981137&r1=981136&r2=981137&view=diff
==============================================================================
--- incubator/oodt/trunk/metadata/src/main/cpp/testMetadata.cpp (original)
+++ incubator/oodt/trunk/metadata/src/main/cpp/testMetadata.cpp Sun Aug  1 
04:03:45 2010
@@ -22,7 +22,6 @@
 #include <xercesc/dom/DOM.hpp>
 #include <xercesc/dom/DOMImplementation.hpp>
 #include <xercesc/dom/DOMImplementationLS.hpp>
-#include <xercesc/dom/DOMWriter.hpp>
 #include <xercesc/framework/StdOutFormatTarget.hpp>
 #include<xercesc/parsers/XercesDOMParser.hpp>
 
@@ -138,15 +137,22 @@ int main(void){
        cout << "XML is: " << endl;
     DOMDocument* doc = metadata.toXML();
        XMLCh tempStr[100];
+ 
+
        XMLString::transcode("LS", tempStr, 99);
        DOMImplementation *impl          = 
DOMImplementationRegistry::getDOMImplementation(tempStr);
-       DOMWriter         *theSerializer = 
((DOMImplementationLS*)impl)->createDOMWriter();
-       if (theSerializer->canSetFeature(XMLUni::fgDOMWRTFormatPrettyPrint, 
true))
-         theSerializer->setFeature(XMLUni::fgDOMWRTFormatPrettyPrint, true);
+    DOMLSSerializer* theSerializer = 
((DOMImplementationLS*)impl)->createLSSerializer();
+
+
+       if 
(theSerializer->getDomConfig()->canSetParameter(XMLUni::fgDOMWRTFormatPrettyPrint,
 true))
+         
theSerializer->getDomConfig()->setParameter(XMLUni::fgDOMWRTFormatPrettyPrint, 
true);
 
        XMLFormatTarget *myFormTarget;
         myFormTarget = new StdOutFormatTarget();
-       theSerializer->writeNode(myFormTarget, *doc);
+    DOMLSOutput* theOutput = ((DOMImplementationLS*)impl)->createLSOutput();
+    theOutput->setByteStream(myFormTarget);
+
+       theSerializer->write((DOMNode*)doc, theOutput);
        
        cout << "Now attempting to parse cas xml document: data/sample.met.xml" 
<< endl;
        
@@ -170,7 +176,7 @@ int main(void){
     cout << "Outputting XML from CAS Metadata " << endl;
         
     DOMDocument *newDoc = newMetadata.toXML();
-    theSerializer->writeNode(myFormTarget, *doc);
+    theSerializer->write((DOMNode*)doc, theOutput);
     
        return 1;
                


Reply via email to