You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@oodt.apache.org by ma...@apache.org on 2014/02/01 05:33:34 UTC

svn commit: r1563373 - in /oodt/trunk: ./ webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/ webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/ webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rss/

Author: mattmann
Date: Sat Feb  1 04:33:33 2014
New Revision: 1563373

URL: http://svn.apache.org/r1563373
Log:
- fix for OODT-665 CAS RDF and RSS product service doesn't allow product type met to have keys with spaces
  - updated RDF and RSS services to test if there is white space in a product type met key and if so:
     a) split the key string on whitespace; and then use WordUtils.capitalizeFully to turn into CamelCase and StringUtils.join to combine
     b) examine the value string and use StringEscapeUtils.escapeXml
  
  -also did this for the new JAXRS services (Ross L please make sure I got this right)
  
  I tested this on some keys within the context of my DRAT project on Github http://github.com/chrismattmann/drat/ and it worked great.
  

Modified:
    oodt/trunk/CHANGES.txt
    oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RdfConfiguration.java
    oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RssConfiguration.java
    oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFDatasetServlet.java
    oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFProductServlet.java
    oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rss/RSSUtils.java

Modified: oodt/trunk/CHANGES.txt
URL: http://svn.apache.org/viewvc/oodt/trunk/CHANGES.txt?rev=1563373&r1=1563372&r2=1563373&view=diff
==============================================================================
--- oodt/trunk/CHANGES.txt (original)
+++ oodt/trunk/CHANGES.txt Sat Feb  1 04:33:33 2014
@@ -4,6 +4,9 @@ Apache OODT Change Log
 Release 0.7 - Current Development
 ---------------------------------
 
+* OODT-665 CAS RDF and RSS product service doesn't allow product type met to have keys 
+  with spaces (mattmann)
+
 * OODT-664 RADIX deployment of opsui incorrectly uses /pcs-opsui as the web.xml context 
   and omits 2 key PCS properties from context.xml (mattmann, pramirez, ahart)
 

Modified: oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RdfConfiguration.java
URL: http://svn.apache.org/viewvc/oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RdfConfiguration.java?rev=1563373&r1=1563372&r2=1563373&view=diff
==============================================================================
--- oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RdfConfiguration.java (original)
+++ oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RdfConfiguration.java Sat Feb  1 04:33:33 2014
@@ -6,6 +6,9 @@ import java.io.IOException;
 import java.util.HashMap;
 import java.util.Map;
 
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.WordUtils;
 import org.apache.oodt.commons.xml.XMLUtils;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
@@ -163,6 +166,10 @@ public class RdfConfiguration
   {
     // Apply the rewrite rules.
     String tagName = rewriteMap.containsKey(key) ? rewriteMap.get(key) : key;
+    if (tagName.indexOf(" ") != -1) {
+      tagName = StringUtils.join(WordUtils.capitalizeFully(tagName).split(
+          " "));
+    }
 
     // Get the tag's namespace or the default namespace.
     String namespace = keyNsMap.containsKey(key)
@@ -180,7 +187,7 @@ public class RdfConfiguration
     else
     {
       element = document.createElement(namespace + ":" + tagName);
-      element.appendChild(document.createTextNode(value));
+      element.appendChild(document.createTextNode(StringEscapeUtils.escapeXml(value)));
     }
 
     return element;

Modified: oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RssConfiguration.java
URL: http://svn.apache.org/viewvc/oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RssConfiguration.java?rev=1563373&r1=1563372&r2=1563373&view=diff
==============================================================================
--- oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RssConfiguration.java (original)
+++ oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/jaxrs/configurations/RssConfiguration.java Sat Feb  1 04:33:33 2014
@@ -6,6 +6,9 @@ import java.io.IOException;
 import java.util.List;
 import java.util.Vector;
 
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.WordUtils;
 import org.apache.oodt.cas.metadata.Metadata;
 import org.apache.oodt.cas.metadata.util.PathUtils;
 import org.apache.oodt.commons.xml.XMLUtils;
@@ -147,14 +150,21 @@ public class RssConfiguration
   {
     for (RssTag tag : tagList)
     {
+      String tagName = tag.getName();
+      if (tagName.indexOf(" ") != -1) {
+        tagName = StringUtils.join(WordUtils.capitalizeFully(tagName).split(
+            " "));
+      }
+
+      
       // Create a new element for the tag.
-      Element element = XMLUtils.addNode(document, parent, tag.getName());
+      Element element = XMLUtils.addNode(document, parent, tagName);
 
       // Add a value for the tag from the tag source.
       if (tag.getSource() != null)
       {
-        element.appendChild(document.createTextNode(PathUtils
-          .replaceEnvVariables(tag.getSource(), metadata)));
+        element.appendChild(document.createTextNode(StringEscapeUtils.escapeXml(PathUtils
+          .replaceEnvVariables(tag.getSource(), metadata))));
       }
 
       // Add attributes to the tag as defined in the configuration.

Modified: oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFDatasetServlet.java
URL: http://svn.apache.org/viewvc/oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFDatasetServlet.java?rev=1563373&r1=1563372&r2=1563373&view=diff
==============================================================================
--- oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFDatasetServlet.java (original)
+++ oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFDatasetServlet.java Sat Feb  1 04:33:33 2014
@@ -43,6 +43,9 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.WordUtils;
 //OODT imports
 import org.apache.oodt.cas.filemgr.structs.exceptions.RepositoryManagerException;
 import org.apache.oodt.cas.filemgr.structs.exceptions.ConnectionException;
@@ -220,7 +223,18 @@ public class RDFDatasetServlet extends H
 
               for (Iterator<String> k = vals.iterator(); k.hasNext();) {
                 String val = (String) k.next();
-                Element rdfElem = RDFUtils.getRDFElement(key, val, this.rdfConf, doc);
+                //OODT-665 fix, take keys like 
+                //PRODUCT Experiment Type
+                //and transform it into ProductExperimentType
+                String outputKey = key;
+                if (outputKey.indexOf(" ") != -1) {
+                  outputKey = StringUtils.join(WordUtils.capitalizeFully(outputKey).split(
+                      " "));
+                }
+                
+                val = StringEscapeUtils.escapeXml(val);
+                Element rdfElem = RDFUtils.getRDFElement(outputKey, val,
+                    this.rdfConf, doc);
                 productTypeRdfDesc.appendChild(rdfElem);
               }
 

Modified: oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFProductServlet.java
URL: http://svn.apache.org/viewvc/oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFProductServlet.java?rev=1563373&r1=1563372&r2=1563373&view=diff
==============================================================================
--- oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFProductServlet.java (original)
+++ oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rdf/RDFProductServlet.java Sat Feb  1 04:33:33 2014
@@ -43,6 +43,9 @@ import java.io.IOException;
 import java.net.MalformedURLException;
 import java.net.URL;
 
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.WordUtils;
 //OODT imports
 import org.apache.oodt.cas.filemgr.structs.exceptions.CatalogException;
 import org.apache.oodt.cas.filemgr.structs.exceptions.RepositoryManagerException;
@@ -248,7 +251,14 @@ public class RDFProductServlet extends H
 
               for (Iterator<String> k = vals.iterator(); k.hasNext();) {
                 String val = (String) k.next();
-                Element rdfElem = RDFUtils.getRDFElement(key, val,
+                String outputKey = key;
+                if (outputKey.indexOf(" ") != -1) {
+                  outputKey = StringUtils.join(WordUtils.capitalizeFully(outputKey).split(
+                      " "));
+                }                
+                
+                val = StringEscapeUtils.escapeXml(val);
+                Element rdfElem = RDFUtils.getRDFElement(outputKey, val,
                     this.rdfConf, doc);
                 productRdfDesc.appendChild(rdfElem);
               }

Modified: oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rss/RSSUtils.java
URL: http://svn.apache.org/viewvc/oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rss/RSSUtils.java?rev=1563373&r1=1563372&r2=1563373&view=diff
==============================================================================
--- oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rss/RSSUtils.java (original)
+++ oodt/trunk/webapp/fmprod/src/main/java/org/apache/oodt/cas/product/rss/RSSUtils.java Sat Feb  1 04:33:33 2014
@@ -20,6 +20,10 @@ package org.apache.oodt.cas.product.rss;
 
 //OODT imports
 import static org.apache.oodt.cas.product.rss.RSSConfigMetKeys.RSS_CONTEXT_CONF_KEY;
+
+import org.apache.commons.lang.StringEscapeUtils;
+import org.apache.commons.lang.StringUtils;
+import org.apache.commons.lang.WordUtils;
 import org.apache.oodt.commons.xml.XMLUtils;
 import org.apache.oodt.cas.metadata.Metadata;
 import org.apache.oodt.cas.metadata.util.PathUtils;
@@ -54,12 +58,17 @@ public class RSSUtils {
 
   public static Element emitRSSTag(RSSTag tag, Metadata prodMet, Document doc,
       Element item) {
-    Element rssMetElem = XMLUtils.addNode(doc, item, tag.getName());
+    String outputTag = tag.getName();
+    if (outputTag.indexOf(" ") != -1) {
+      outputTag = StringUtils.join(WordUtils.capitalizeFully(outputTag).split(
+          " "));
+    }
+    Element rssMetElem = XMLUtils.addNode(doc, item, outputTag);
 
     // first check if there is a source defined, if so, use that as the value
     if (tag.getSource() != null) {
-      rssMetElem.appendChild(doc.createTextNode(PathUtils.replaceEnvVariables(
-          tag.getSource(), prodMet)));
+      rssMetElem.appendChild(doc.createTextNode(StringEscapeUtils.escapeXml(PathUtils.replaceEnvVariables(
+          tag.getSource(), prodMet))));
     }
 
     // check if there are attributes defined, and if so, add to the attributes