changeset 993:e7ffb5dcd2dd

Trim strings extracted from plugin.xml Reviewed-by: rkennke Review-thread: http://icedtea.classpath.org/pipermail/thermostat/2013-February/005801.html
author Omair Majid <omajid@redhat.com>
date Thu, 21 Feb 2013 17:09:44 -0500
parents e7411f4afdf1
children db2b89cdef62
files launcher/src/main/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParser.java launcher/src/test/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParserTest.java
diffstat 2 files changed, 38 insertions(+), 6 deletions(-) [+]
line wrap: on
line diff
--- a/launcher/src/main/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParser.java	Thu Feb 21 16:26:10 2013 -0500
+++ b/launcher/src/main/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParser.java	Thu Feb 21 17:09:44 2013 -0500
@@ -175,7 +175,7 @@
         for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
             if (node.getNodeName().equals("name")) {
-                name = node.getTextContent();
+                name = node.getTextContent().trim();
             } else if (node.getNodeName().equals("bundles")) {
                 bundles.addAll(parseBundles(node));
             } else if (node.getNodeName().equals("dependencies")) {
@@ -201,11 +201,11 @@
         for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
             if (node.getNodeName().equals("name")) {
-                name = node.getTextContent();
+                name = node.getTextContent().trim();
             } else if (node.getNodeName().equals("usage")) {
-                usage = node.getTextContent();
+                usage = node.getTextContent().trim();
             } else if (node.getNodeName().equals("description")) {
-                description = node.getTextContent();
+                description = node.getTextContent().trim();
             } else if (node.getNodeName().equals("arguments")) {
                 options = parseArguments(node);
             } else if (node.getNodeName().equals("bundles")) {
@@ -230,7 +230,7 @@
         for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
             if (node.getNodeName().equals("bundle")) {
-                String bundleName = node.getTextContent();
+                String bundleName = node.getTextContent().trim();
                 bundles.add(bundleName);
             }
         }
@@ -243,7 +243,7 @@
         for (int i = 0; i < nodes.getLength(); i++) {
             Node node = nodes.item(i);
             if (node.getNodeName().equals("dependency")) {
-                String bundleName = node.getTextContent();
+                String bundleName = node.getTextContent().trim();
                 dependencies.add(bundleName);
             }
         }
--- a/launcher/src/test/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParserTest.java	Thu Feb 21 16:26:10 2013 -0500
+++ b/launcher/src/test/java/com/redhat/thermostat/launcher/internal/PluginConfigurationParserTest.java	Thu Feb 21 17:09:44 2013 -0500
@@ -148,4 +148,36 @@
         assertEquals(Arrays.asList("thermostat-foo"), newCommand.getDepenedencyBundles());
     }
 
+    @Test
+    public void testSpacesAtStartAndEndAreTrimmed() throws UnsupportedEncodingException {
+        String config = "<?xml version=\"1.0\"?>\n" +
+                "<plugin>\n" +
+                "  <commands>\n" +
+                "    <command type='extends'>\n" +
+                "      <name>\ntest   \n</name>\n" +
+                "      <bundles>\n" +
+                "        <bundle>\n \t  \nfoo\t \n \n</bundle>\n" +
+                "        <bundle>\tbar  baz\n</bundle>\n" +
+                "        <bundle>buzz</bundle>\n" +
+                "      </bundles>\n" +
+                "      <dependencies>\n\t\n\t \t\t\n" +
+                "        <dependency>\t\t\t  thermostat-foo\n\t\t\n</dependency>\n" +
+                "      </dependencies>\n" +
+                "    </command>\n" +
+                "  </commands>\n" +
+                "</plugin>";
+
+        PluginConfiguration result = new PluginConfigurationParser()
+                .parse("test", new ByteArrayInputStream(config.getBytes("UTF-8")));
+
+        assertEquals(0, result.getNewCommands().size());
+
+        List<CommandExtensions> extensions = result.getExtendedCommands();
+        assertEquals(1, extensions.size());
+
+        CommandExtensions first = extensions.get(0);
+        assertEquals("test", first.getCommandName());
+        assertEquals(Arrays.asList("foo", "bar  baz", "buzz"), first.getPluginBundles());
+        assertEquals(Arrays.asList("thermostat-foo"), first.getDepenedencyBundles());
+    }
 }