Fixed application descriptor parsing.

Change-Id: If4fa4ecc66d0ed2a42e8b240d0e3142340d544eb
diff --git a/core/api/src/test/java/org/onosproject/app/DefaultApplicationDescriptionTest.java b/core/api/src/test/java/org/onosproject/app/DefaultApplicationDescriptionTest.java
index b45035e..7f09872 100644
--- a/core/api/src/test/java/org/onosproject/app/DefaultApplicationDescriptionTest.java
+++ b/core/api/src/test/java/org/onosproject/app/DefaultApplicationDescriptionTest.java
@@ -37,7 +37,7 @@
 
     public static final String APP_NAME = "org.foo.app";
     public static final Version VER = Version.version(1, 2, "a", null);
-    public static final String DESC = "Awesome application from Circus";
+    public static final String DESC = "Awesome application from Circus, Inc.";
     public static final String ORIGIN = "Circus";
     public static final ApplicationRole ROLE = ApplicationRole.ADMIN;
     public static final Set<Permission> PERMS = ImmutableSet.of(Permission.FLOWRULE_WRITE, Permission.FLOWRULE_READ);
diff --git a/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java b/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java
index bdf1399..78fd0b9 100644
--- a/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java
+++ b/core/common/src/main/java/org/onosproject/common/app/ApplicationArchive.java
@@ -150,7 +150,11 @@
      */
     public ApplicationDescription getApplicationDescription(String appName) {
         try {
-            return loadAppDescription(new XMLConfiguration(appFile(appName, APP_XML)));
+            XMLConfiguration cfg = new XMLConfiguration();
+            cfg.setAttributeSplittingDisabled(true);
+            cfg.setDelimiterParsingDisabled(true);
+            cfg.load(appFile(appName, APP_XML));
+            return loadAppDescription(cfg);
         } catch (Exception e) {
             throw new ApplicationException("Unable to get app description", e);
         }
@@ -258,6 +262,8 @@
     private ApplicationDescription parsePlainAppDescription(InputStream stream)
             throws IOException {
         XMLConfiguration cfg = new XMLConfiguration();
+        cfg.setAttributeSplittingDisabled(true);
+        cfg.setDelimiterParsingDisabled(true);
         try {
             cfg.load(stream);
             return loadAppDescription(cfg);
@@ -267,8 +273,6 @@
     }
 
     private ApplicationDescription loadAppDescription(XMLConfiguration cfg) {
-        cfg.setAttributeSplittingDisabled(true);
-        cfg.setDelimiterParsingDisabled(true);
         String name = cfg.getString(NAME);
         Version version = Version.version(cfg.getString(VERSION));
         String desc = cfg.getString(DESCRIPTION);
@@ -277,7 +281,7 @@
         Set<Permission> perms = getPermissions(cfg);
         String featRepo = cfg.getString(FEATURES_REPO);
         URI featuresRepo = featRepo != null ? URI.create(featRepo) : null;
-        List<String> features = ImmutableList.copyOf(cfg.getStringArray(FEATURES));
+        List<String> features = ImmutableList.copyOf(cfg.getString(FEATURES).split(","));
 
         return new DefaultApplicationDescription(name, version, desc, origin, role,
                                                  perms, featuresRepo, features);
diff --git a/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java b/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java
index 9472f5a..2682e86 100644
--- a/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java
+++ b/core/common/src/test/java/org/onosproject/common/app/ApplicationArchiveTest.java
@@ -33,6 +33,9 @@
 import static org.junit.Assert.*;
 import static org.onosproject.app.DefaultApplicationDescriptionTest.*;
 
+/**
+ * Suite of tests for the application archive utility.
+ */
 public class ApplicationArchiveTest {
 
     static final String ROOT = "/tmp/app-junit/";