You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by ja...@apache.org on 2010/02/24 23:39:13 UTC

svn commit: r916013 - in /shindig/trunk: java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java javascript/container/gadgets.css

Author: jasvir
Date: Wed Feb 24 22:39:13 2010
New Revision: 916013

URL: http://svn.apache.org/viewvc?rev=916013&view=rev
Log:
* binds safejson to gadgets.json.stringify which skips over caja specific
properties and only serializes properties a gadget has access to.

* use json_sans_eval to parse json rather than eval


Modified:
    shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java
    shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
    shindig/trunk/javascript/container/gadgets.css

Modified: shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java?rev=916013&r1=916012&r2=916013&view=diff
==============================================================================
--- shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java (original)
+++ shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/servlet/CajaContentRewriter.java Wed Feb 24 22:39:13 2010
@@ -153,6 +153,10 @@
         cajoledOutput.appendChild(tameCajaClientApi(doc));
         cajoledOutput.appendChild(doc.adoptNode(script));
         
+        Element messagesNode = formatErrors(doc, is, content.getContent(), mq, 
+          /* visible */ false);
+        cajoledOutput.appendChild(messagesNode);
+        
         if (cajoledCache != null) {
           cajoledCache.addElement(key, cajoledOutput);
         }
@@ -163,7 +167,8 @@
       } catch (GadgetRewriteException e) {
         // There were cajoling errors
         // Content is only used to produce useful snippets with error messages
-        createContainerFor(doc, formatErrors(doc, is, content.getContent(), mq));
+        createContainerFor(doc, 
+          formatErrors(doc, is, content.getContent(), mq, false /* visible */));
         logException(e, mq);
         safe = true;
       } finally {
@@ -186,29 +191,30 @@
   }
 
   private Element formatErrors(Document doc, InputSource is,
-      CharSequence orig, MessageQueue mq) {
+      CharSequence orig, MessageQueue mq, boolean visible) {
     MessageContext mc = new MessageContext();
     Map<InputSource, CharSequence> originalSrc = Maps.newHashMap();
     originalSrc.put(is, orig);
     mc.addInputSource(is);
     SnippetProducer sp = new SnippetProducer(originalSrc, mc);
 
-    StringBuilder messageText = new StringBuilder();
+    Element errElement = doc.createElement("ul");
+    // Style defined in gadgets.css
+    errElement.setAttribute("class", "gadgets-messages");
+    if (!visible) {
+      errElement.setAttribute("style", "display: none");
+    }
     for (Message msg : mq.getMessages()) {
       // Ignore LINT messages
       if (MessageLevel.LINT.compareTo(msg.getMessageLevel()) <= 0) {
         String snippet = sp.getSnippet(msg);
-        messageText.append(msg.getMessageLevel().name())
-                   .append(' ')
-                   .append(html(msg.format(mc)));
-
-        if (!StringUtils.isEmpty(snippet)) {
-          messageText.append('\n').append(snippet);
-        }
+        String messageText = msg.getMessageLevel().name() + ' ' + 
+          html(msg.format(mc)) + ':' + snippet;
+        Element li = doc.createElement("li");
+        li.appendChild(doc.createTextNode(messageText.toString()));
+        errElement.appendChild(li);
       }
     }
-    Element errElement = doc.createElement("pre");
-    errElement.appendChild(doc.createTextNode(messageText.toString()));
     return errElement;
   }
 

Modified: shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java
URL: http://svn.apache.org/viewvc/shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java?rev=916013&r1=916012&r2=916013&view=diff
==============================================================================
--- shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java (original)
+++ shindig/trunk/java/server/src/test/java/org/apache/shindig/server/endtoend/EndToEndTest.java Wed Feb 24 22:39:13 2010
@@ -174,7 +174,7 @@
 
     // Failed output contains only an error block plus a onload script block
     assertEquals(2, body.getChildNodes().getLength());
-    assertEquals("pre", body.getFirstChild().getNodeName());
+    assertEquals("ul", body.getFirstChild().getNodeName());
     assertEquals("script", body.getLastChild().getNodeName());
   }
 

Modified: shindig/trunk/javascript/container/gadgets.css
URL: http://svn.apache.org/viewvc/shindig/trunk/javascript/container/gadgets.css?rev=916013&r1=916012&r2=916013&view=diff
==============================================================================
--- shindig/trunk/javascript/container/gadgets.css (original)
+++ shindig/trunk/javascript/container/gadgets.css Wed Feb 24 22:39:13 2010
@@ -59,3 +59,8 @@
 
 .gadgets-log-entry {
 }
+
+// Used to style messages produced during rewriting by CajaContentRewriter
+.gadgets-messages {
+	
+}