You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@shindig.apache.org by jo...@apache.org on 2009/07/14 23:14:51 UTC
svn commit: r794068 - in /incubator/shindig/trunk/java/gadgets/src:
main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java
Author: johnh
Date: Tue Jul 14 21:14:51 2009
New Revision: 794068
URL: http://svn.apache.org/viewvc?rev=794068&view=rev
Log:
Support CDATA values in message bundle values.
Modified:
incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java
Modified: incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java?rev=794068&r1=794067&r2=794068&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/main/java/org/apache/shindig/gadgets/spec/MessageBundle.java Tue Jul 14 21:14:51 2009
@@ -27,6 +27,7 @@
import org.json.JSONObject;
import org.w3c.dom.Element;
+import org.w3c.dom.Node;
import org.w3c.dom.NodeList;
import java.io.IOException;
@@ -164,7 +165,12 @@
NodeList msgChildren = msg.getChildNodes();
for (int child = 0; child < msgChildren.getLength(); ++child) {
try {
- htmlSerializer.serialize(msgChildren.item(child), sw);
+ if (msgChildren.item(child).getNodeType() == Node.CDATA_SECTION_NODE) {
+ // Workaround to treat CDATA as text.
+ sw.append(msgChildren.item(child).getTextContent());
+ } else {
+ htmlSerializer.serialize(msgChildren.item(child), sw);
+ }
} catch (IOException e) {
throw new SpecParserException("Unexpected error getting value of msg node",
new XmlException(e));
Modified: incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java
URL: http://svn.apache.org/viewvc/incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java?rev=794068&r1=794067&r2=794068&view=diff
==============================================================================
--- incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java (original)
+++ incubator/shindig/trunk/java/gadgets/src/test/java/org/apache/shindig/gadgets/spec/MessageBundleTest.java Tue Jul 14 21:14:51 2009
@@ -84,6 +84,16 @@
assertEquals(ImmutableMap.of("key", "value"), bundle.getMessages());
}
+ @Test
+ public void containsCdataSection() throws Exception {
+ String cdataXml =
+ "<messagebundle>" +
+ " <msg name='key'><![CDATA[<span id='foo'>data</span>]]></msg>" +
+ "</messagebundle>";
+ MessageBundle bundle = new MessageBundle(locale, cdataXml);
+ assertEquals(ImmutableMap.of("key", "<span id='foo'>data</span>"), bundle.getMessages());
+ }
+
@Test(expected = SpecParserException.class)
public void missingNameThrows() throws SpecParserException {
String xml = "<messagebundle><msg>foo</msg></messagebundle>";