ONOS-7879 - unzip the app.png file and process it as part of app desc

Change-Id: I916c041e4c85ee6e1570f0d7c618359bb8f48d4f
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 13cc403..48f9eef 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
@@ -211,6 +211,15 @@
                     stageSelfContainedJar(bis, desc);
                 }
 
+                /*
+                 * Reset the ZIP file and reparse the app description now
+                 * that the ZIP is expanded onto the filesystem. This way any
+                 * file referenced as part of the description (i.e. app.png)
+                 * can be loaded into the app description.
+                 */
+                bis.reset();
+                desc = parseZippedAppDescription(bis);
+
                 bis.reset();
                 saveApplication(bis, desc, isSelfContainedJar);
             }
@@ -386,7 +395,11 @@
     // features.xml, .jar or a directory; false if anything else.
     private boolean isTopLevel(File file) {
         String name = file.getName();
-        return name.equals(APP_XML) || name.endsWith(FEATURES_XML) || name.endsWith(JAR) || file.isDirectory();
+        return name.equals(APP_PNG)
+            || name.equals(APP_XML)
+            || name.endsWith(FEATURES_XML)
+            || name.endsWith(JAR)
+            || file.isDirectory();
     }
 
     // Expands the self-contained JAR stream into the app-specific directory,