streamlet-examples/JarInfo.java
branchv_0
changeset 74 a2aa84f310a5
parent 73 1a067a217454
child 75 ecbf6504915c
--- a/streamlet-examples/JarInfo.java	Wed Jan 29 18:41:42 2020 +0100
+++ b/streamlet-examples/JarInfo.java	Wed Jan 29 20:50:12 2020 +0100
@@ -21,8 +21,27 @@
 import java.util.List;
 import java.util.jar.JarFile;
 
+/**
+ * <p>
+ * This streamlet provides metadata from JAR (or ZIP) files.</p>
+ *
+ * <p>
+ * With no options it returns the main class (if any) and number of entries (files and directories) in the archive.</p>
+ *
+ * <p>
+ * Specific attributes can be selected using options – e.g. --option 'attribute' '…' Supported attributes are:</p>
+ *
+ * <ul>
+ * <li>comment</li>
+ * <li>entries</li>
+ * <li>main_class</li>
+ * </ul>
+ */
 public class JarInfo extends Streamlet {
 
+	// TODO: total size 
+	// TODO: OSGi metadata etc.
+	// TODO: more OOP, move to separate repository, proper Maven project, clean-up, stabilize API
 	public static final String ATTRIBUTE_COMMENT = "comment";
 	public static final String ATTRIBUTE_ENTRIES = "entries";
 	public static final String ATTRIBUTE_MAIN_CLASS = "main_class";
@@ -33,14 +52,6 @@
 		JarInfo s = new JarInfo();
 		int status = s.run();
 		System.exit(status);
-
-		// TODO: return real values:
-		JarFile jar = new JarFile(new File(args[0]));
-		String mainClass = jar.getManifest() == null ? null : jar.getManifest().getMainAttributes().getValue("Main-Class");
-		System.out.println("Name:       " + jar.getName());
-		System.out.println("Comment:    " + jar.getComment());
-		System.out.println("Entries:    " + jar.stream().count());
-		System.out.println("Main class: " + mainClass);
 	}
 
 	protected List<Streamlet.AttributeMetadata> getOutputAttributesMetadata() {