You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by lo...@apache.org on 2012/11/20 13:17:16 UTC

svn commit: r1411638 - in /myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main: java/org/apache/myfaces/tobago/example/demo/ webapp/ webapp/WEB-INF/

Author: lofwyr
Date: Tue Nov 20 12:17:15 2012
New Revision: 1411638

URL: http://svn.apache.org/viewvc?rev=1411638&view=rev
Log:
Demo: better visualisation of the MANIFEST.MF content.

Modified:
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestEntry.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml
    myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/server-info.xhtml

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestEntry.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestEntry.java?rev=1411638&r1=1411637&r2=1411638&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestEntry.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestEntry.java Tue Nov 20 12:17:15 2012
@@ -19,28 +19,23 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
-public class ManifestEntry {
-  private String url;
-  private String content;
-
-  public ManifestEntry(String url, String content) {
-    this.url = url;
-    this.content = content;
-  }
+import javax.swing.tree.DefaultMutableTreeNode;
 
-  public String getUrl() {
-    return url;
-  }
+public class ManifestEntry extends DefaultMutableTreeNode {
+
+  private final String name;
+  private final String value;
 
-  public void setUrl(String url) {
-    this.url = url;
+  public ManifestEntry(String name, String value) {
+    this.name = name;
+    this.value = value;
   }
 
-  public String getContent() {
-    return content;
+  public String getName() {
+    return name;
   }
 
-  public void setContent(String content) {
-    this.content = content;
+  public String getValue() {
+    return value;
   }
 }

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java?rev=1411638&r1=1411637&r2=1411638&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/ManifestReader.java Tue Nov 20 12:17:15 2012
@@ -19,55 +19,63 @@
 
 package org.apache.myfaces.tobago.example.demo;
 
+import org.apache.myfaces.tobago.model.ExpandedState;
+import org.apache.myfaces.tobago.model.SheetState;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-import java.io.BufferedReader;
+import javax.enterprise.context.ApplicationScoped;
+import javax.inject.Named;
 import java.io.IOException;
-import java.io.InputStreamReader;
 import java.net.URL;
-import java.util.ArrayList;
 import java.util.Enumeration;
-import java.util.List;
-import java.util.Map;
+import java.util.jar.Attributes;
+import java.util.jar.Manifest;
 
+@ApplicationScoped
+@Named
 public class ManifestReader {
 
   private static final Logger LOG = LoggerFactory.getLogger(ManifestReader.class);
 
-  private List<ManifestEntry> manifestList = new ArrayList<ManifestEntry>();
+  private final ManifestEntry manifestTree;
 
-  public ManifestReader(){
+  private final SheetState state;
+
+  public ManifestReader() {
+
+    state = new SheetState();
+    state.setExpandedState(new ExpandedState(1));
+    manifestTree = new ManifestEntry("Tobago Example Demo", null);
+
+    URL url = null;
     try {
       Enumeration<URL> ul = getClass().getClassLoader().getResources("META-INF/MANIFEST.MF");
-      String line;
-      StringBuilder content;
-      BufferedReader in;
-      URL url;
 
       while (ul.hasMoreElements()) {
         url = ul.nextElement();
-        in = new BufferedReader(new InputStreamReader(url.openStream()));
-        content  = new StringBuilder();
-        Map.Entry<String, String> e;
 
-        while((line= in.readLine()) != null){
-          content.append(line+"\r\n");
+        String name = url.toString();
+        name = name.replaceAll(".+/([^/]+\\.jar)\\!/META-INF/MANIFEST.MF", "$1");
+        final ManifestEntry jar = new ManifestEntry(name, null);
+        manifestTree.add(jar);
+
+        final Manifest manifest = new Manifest(url.openStream());
+        final Attributes attributes = manifest.getMainAttributes();
+        for (Object key : attributes.keySet()) {
+          jar.add(new ManifestEntry(key.toString(), attributes.get(key).toString()));
         }
-        in.close();
-
-        manifestList.add(new ManifestEntry(url.toString(), content.toString()));
       }
     } catch (IOException e) {
-      LOG.error("", e);
+      LOG.error("Problem while processing URL: " + url, e);
     }
   }
 
-  public List<ManifestEntry> getManifestList() {
-    return manifestList;
+  public ManifestEntry getManifestTree() {
+    return manifestTree;
   }
 
-  public void setManifestList(List<ManifestEntry> manifestList) {
-    this.manifestList = manifestList;
+  public SheetState getState() {
+    return state;
   }
 }

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml?rev=1411638&r1=1411637&r2=1411638&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/WEB-INF/faces-config.xml Tue Nov 20 12:17:15 2012
@@ -85,12 +85,6 @@
   </managed-bean>
 
   <managed-bean>
-    <managed-bean-name>manifestReader</managed-bean-name>
-    <managed-bean-class>org.apache.myfaces.tobago.example.demo.ManifestReader</managed-bean-class>
-    <managed-bean-scope>application</managed-bean-scope>
-  </managed-bean>
-
-  <managed-bean>
     <managed-bean-name>pageDeclarationLanguage</managed-bean-name>
     <managed-bean-class>org.apache.myfaces.tobago.example.demo.PageDeclarationLanguageBean</managed-bean-class>
     <managed-bean-scope>session</managed-bean-scope>

Modified: myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/server-info.xhtml
URL: http://svn.apache.org/viewvc/myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/server-info.xhtml?rev=1411638&r1=1411637&r2=1411638&view=diff
==============================================================================
--- myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/server-info.xhtml (original)
+++ myfaces/tobago/trunk/tobago-example/tobago-example-demo/src/main/webapp/server-info.xhtml Tue Nov 20 12:17:15 2012
@@ -91,22 +91,15 @@
       </tc:sheet>
     </tc:panel>
 
-    <tc:panel>
-      <f:facet name="layout">
-        <tc:gridLayout columns="auto;*"/>
-      </f:facet>
-
-      <tc:label value="Manifest"/>
-
-      <tc:sheet value="#{manifestReader.manifestList}" var="manifest">
-        <tc:column label="URL">
-          <tc:out value="#{manifest.url}"/>
-        </tc:column>
-        <tc:column label="Content">
-          <tc:out value="#{manifest.content}"/>
-        </tc:column>
-      </tc:sheet>
-    </tc:panel>
+    <tc:sheet value="#{manifestReader.manifestTree}" state="#{manifestReader.state}" var="manifest">
+      <tc:columnNode label="Library/Key">
+        <tc:treeIndent/>
+        <tc:treeLabel value="#{manifest.name}"/>
+      </tc:columnNode>
+      <tc:column label="Value">
+        <tc:out value="#{manifest.value}"/>
+      </tc:column>
+    </tc:sheet>
 
   </tc:panel>
 </ui:composition>