summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJames Le Cuirot <chewi@gentoo.org>2015-06-25 22:30:45 +0000
committerJames Le Cuirot <chewi@gentoo.org>2015-06-25 22:30:45 +0000
commit0ef11ca9b9c52ca5efeceb4cbc7472b32d2e1b8b (patch)
treec99b6335f1e93e533e59c75c6809c7ea89667798 /dev-java/java-dep-check
parentversion bump (ebuild identical to 3.5.1) (diff)
downloadhistorical-0ef11ca9b9c52ca5efeceb4cbc7472b32d2e1b8b.tar.gz
historical-0ef11ca9b9c52ca5efeceb4cbc7472b32d2e1b8b.tar.bz2
historical-0ef11ca9b9c52ca5efeceb4cbc7472b32d2e1b8b.zip
EAPI bump and rewrite using java-pkg-simple.
Package-Manager: portage-2.2.20/cvs/Linux x86_64 Manifest-Sign-Key: 0x9C6D7DE4
Diffstat (limited to 'dev-java/java-dep-check')
-rw-r--r--dev-java/java-dep-check/ChangeLog10
-rw-r--r--dev-java/java-dep-check/Manifest27
-rw-r--r--dev-java/java-dep-check/files/Main-0.2.java276
-rw-r--r--dev-java/java-dep-check/files/Main.java233
-rw-r--r--dev-java/java-dep-check/java-dep-check-0.3-r1.ebuild32
5 files changed, 64 insertions, 514 deletions
diff --git a/dev-java/java-dep-check/ChangeLog b/dev-java/java-dep-check/ChangeLog
index a72b7b01a89c..5f3df9718975 100644
--- a/dev-java/java-dep-check/ChangeLog
+++ b/dev-java/java-dep-check/ChangeLog
@@ -1,6 +1,12 @@
# ChangeLog for dev-java/java-dep-check
-# Copyright 1999-2014 Gentoo Foundation; Distributed under the GPL v2
-# $Header: /var/cvsroot/gentoo-x86/dev-java/java-dep-check/ChangeLog,v 1.8 2014/06/17 11:09:55 mrueg Exp $
+# Copyright 1999-2015 Gentoo Foundation; Distributed under the GPL v2
+# $Header: /var/cvsroot/gentoo-x86/dev-java/java-dep-check/ChangeLog,v 1.9 2015/06/25 22:30:37 chewi Exp $
+
+*java-dep-check-0.3-r1 (25 Jun 2015)
+
+ 25 Jun 2015; James Le Cuirot <chewi@gentoo.org> +java-dep-check-0.3-r1.ebuild,
+ -files/Main-0.2.java, -files/Main.java:
+ EAPI bump and rewrite using java-pkg-simple.
17 Jun 2014; Manuel Rüger <mrueg@gentoo.org> -java-dep-check-0.1.ebuild,
-java-dep-check-0.2.ebuild:
diff --git a/dev-java/java-dep-check/Manifest b/dev-java/java-dep-check/Manifest
index 4250d4e2f67b..3aa04276098a 100644
--- a/dev-java/java-dep-check/Manifest
+++ b/dev-java/java-dep-check/Manifest
@@ -1,6 +1,27 @@
-AUX Main-0.2.java 9650 SHA256 22d6cb62f53d0e009dbc1ae941994ffcd205c630ee26f5b8400619340f850d20 SHA512 888478205ded8715e3539604c8e689626e853c533c97bea380b56af7d17d978b86aa38ce4a4042c2f1f5214b6e37b32af3547194032b3e6335b130afb67b95dd WHIRLPOOL f64b9b799b4fadbff1e12a4447f07f81d57fe08dee963da2dc3c1b41bbd93ea0ddc201f8cd0ed517dcc2a168ef8889bb49958d86e2367815f83a258cb36a5750
+-----BEGIN PGP SIGNED MESSAGE-----
+Hash: SHA256
+
AUX Main-0.3.java 11702 SHA256 c74c45307ef58b3575cdb58de83dd488d98b9229d03ff8276775d1e6e967072f SHA512 a70c0161fe72e8f4b4476cbdad5ae3074fbb7321214723a7b1b7778fd06de4eb616479de2b5d6ce9a6dab2e919d721ce2b177a515039a0b9592aa2b5e1017e88 WHIRLPOOL 523eed4b9409e96b7413abe5290278f7be22efc57cd8d432c022e0e57543fae645df5154baec734cb0383962b0a56bb2b12c6ff033e7fc1ed212f124176a8760
-AUX Main.java 8393 SHA256 18da5060b23e74cb0abfa2561902b2c2c303150bcc28fda792dbcce3ec6ba043 SHA512 6d29747cc760dd525c946d3b651c5e8cf79cf9599634e60bccbce1ac6fe18b35926fbe90243c5f3b139bacbfbf9786746f89b351ece5bea7d28e1a2e47ba00e5 WHIRLPOOL 0cbbf07f1bd8a51969f82f7b4bc7b9dde1157c9650e39e75efcb3f84233ff0b54d183e73d15ceabf601a90fd4b1b9761981f3e77e2448b131b29590b9d419b9d
+EBUILD java-dep-check-0.3-r1.ebuild 773 SHA256 2867ea2ea156e821a146480b5b173694364199f93e196437ec2dae762e2a7575 SHA512 04084c538eb036f186d2234e931498e22d4bbebbb455d1aeafc18a6b5a1ad69031cd88d186adecfee309819de5ae43a6a8f2f201883a10c583bd62caac417422 WHIRLPOOL cb46a59835a875cde7e03c05efcb4e2b5620c62114675b1b07c0ac174d77732b8bd1aed346e9d0adb635f9deedf0ea556a972abc73324df467611f91f535b222
EBUILD java-dep-check-0.3.ebuild 897 SHA256 9691c4ca88baf1191b217da9fcc43b07f21f84dd2292f0bc4f922b36acef2ec9 SHA512 970af05c64c89cd189e84be67dda0e4dbe4782898e57720819734e069bac657fb57d135f18a8eb659ff6ddf2ba44508816b478b6feec4ff4c7629bc2b013dca3 WHIRLPOOL 06b5e0330b39b94afa7c4bf9ea95f72e768c549e291d71422eec9a1423c7b65b4d3eacaaf99b0c8698b2546e8a58d10c492d36f55c51557d1a72d6ade8b77d84
-MISC ChangeLog 1416 SHA256 2dc04d79e982cf56aa5eced6955118c55f7fb617e42273b8d6f7c0ff961bedfd SHA512 02e6e11273b920629d9ce939a2849f91f4104dc03e6b1777c32e624ebb4aa039246365901790f9275ec230dccdd47698c014af102d5fab8704519d4caf76b888 WHIRLPOOL cdd2f8ce31adfd0fd333d67b4ce86a74cfc4661e0429243fd9ec998d356ba69a8a77a879e254746df5c18794ff1a96765eddf6f8b15243596728567e2a2538a9
+MISC ChangeLog 1625 SHA256 2272c7ec29fec10ed8e7925bb133621b01bc75b21a4a27403316a8b862da4392 SHA512 1d06c346e8b41c17e44b5d3313b3d5953aac7fcebd1468fccf3095e2b9a5c1359b9c09f6648e3c72f945e24019a43121025039bc7451a65094d9d8f9fb0e374f WHIRLPOOL e3cd234f153ad929948cc2d1dd6f1f3f102d0a247fad1535db0cde92bbd4bfe6c8f74f823442d5a5346751567100693f2aa06e89f6789abbee25c97f657a0289
MISC metadata.xml 158 SHA256 ea882ceccfd160b16cf7e79de423bdcc12b3fa000f124491a6df36f5783894fb SHA512 54f88fc3270968439ba87295b04365a89101c55d33a8c209a56036dc60244e5c73f78ec09484b3e5af28de9dee2159b1dab670cbd5d80a9e0c4543145c0390a3 WHIRLPOOL fcffc4fb6751b5a6eec33aa833f9d7dea0168d3ab67f7e34565370f92fd917ed882bcc57585481bf4d31e601f83a592d99d1c3f50fc793f1c38cd174cc8b2f26
+-----BEGIN PGP SIGNATURE-----
+Version: GnuPG v2.1
+
+iQJ8BAEBCABmBQJVjIEOXxSAAAAAAC4AKGlzc3Vlci1mcHJAbm90YXRpb25zLm9w
+ZW5wZ3AuZmlmdGhob3JzZW1hbi5uZXQ1MjhERTZCRDg2OTFBNDM5MUZEQTJFRDQy
+MUM2MzIxMjlDNkQ3REU0AAoJECHGMhKcbX3kMNwQAJoDAXl1X7w2asgNY3i01Vox
+hqi0zQNtSK41my2LMtB9FUurG6soUE4JRQv3+aKqiOrxaF220bZio+hVJ6XzcKeU
+ialWDfM09T/wcXpll7dbQl/wPEyQGRZPeoZQm4vkDSaES2PpACKKm4qO2usqWgNm
+Ubx7rVaAJNCdzWvTD0Ax8euE0AFn2GfxNMHPx4UdF1hUVuKGPMHrZ0jKPQnbTPld
+KQC2m8lqkfCbcmSpvSXV0XU3mNVaiaRxZRqPiAzZvMw94M/YkRDLTHMqSOTe/vf6
+TP3W/8r4l7jjKYx3+S4BUmyBxBRRKUeypCMsBsXHsjcEQGbOGOddAOVG4LanD7WS
+E01T9ScmE0+kywJbOPjrmg1CBzv00Q+CjJ0DW+NgC6abW57O3Ap0R/M4MpFugAqh
+b2cJaxaFQnFaVuZG0sijdvnvjFqcqnSQTVA2j+2dxDZBJBV89d41816OxXFdO6C3
+/aEIe501vCyU9Iuw8UC/vXs33mFOhxwTB0XZUZQiTD3UssMwVN5PcYJrg0B88Ijk
+Qz9PeTfdfV9SOwAcc3waSB2XjKngLuk4fV+HpGefVst+dNf3K8qisUL6JLG52hW0
+8WNTMYnGHgfx8mI06/nhBkCd9tfOeExnAvhY0B95JDQpjo8subJb0CfaLldWImD/
+xm80/p/H50thaBhm+fx2
+=eiEa
+-----END PGP SIGNATURE-----
diff --git a/dev-java/java-dep-check/files/Main-0.2.java b/dev-java/java-dep-check/files/Main-0.2.java
deleted file mode 100644
index daaa3ea1112b..000000000000
--- a/dev-java/java-dep-check/files/Main-0.2.java
+++ /dev/null
@@ -1,276 +0,0 @@
-/*
- * Main.java The main application class.
- *
- * Created on May 1, 2007, 6:32 PM
- *
- * Copyright (C) 2007,2008 Petteri Räty <betelgeuse@gentoo.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package javadepchecker;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.HashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.Set;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.apache.commons.cli.PosixParser;
-import org.objectweb.asm.AnnotationVisitor;
-import org.objectweb.asm.ClassReader;
-import org.objectweb.asm.FieldVisitor;
-import org.objectweb.asm.Label;
-import org.objectweb.asm.MethodVisitor;
-import org.objectweb.asm.Type;
-import org.objectweb.asm.commons.EmptyVisitor;
-
-/**
- *
- * @author betelgeuse
- */
-public final class Main extends EmptyVisitor {
-
- static private String image = "";
- private Set<String> deps = new HashSet<String>();
- private Set<String> current = new HashSet<String>();
-
- /** Creates a new instance of Main */
- public Main() {
- }
-
- private static Collection<String> getPackageJars(String pkg) {
- ArrayList<String> jars = new ArrayList<String>();
- try {
- Process p = Runtime.getRuntime().exec("java-config -p " + pkg);
- p.waitFor();
- BufferedReader in;
- in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String output = in.readLine();
- if (!output.trim().equals("")) {
- for (String jar : output.split(":")) {
- jars.add(jar);
- }
- }
- } catch (InterruptedException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- return jars;
- }
-
- public void processJar(JarFile jar) throws IOException {
- for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
- JarEntry entry = e.nextElement();
- String name = entry.getName();
- if (!entry.isDirectory() && name.endsWith(".class")) {
- this.current.add(name);
- InputStream stream = jar.getInputStream(entry);
- new ClassReader(stream).accept(this, 0);
- }
- }
- }
-
- private static boolean depNeeded(String pkg, Collection<String> deps) throws IOException {
- Collection<String> jars = getPackageJars(pkg);
- // We have a virtual with VM provider here
- if(jars.size() == 0)
- return true;
- for (String jarName : jars) {
- JarFile jar = new JarFile(jarName);
- for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
- String name = e.nextElement().getName();
- if (deps.contains(name)) {
- return true;
- }
- }
- }
- return false;
- }
-
- private static boolean checkPkg(File env) {
- boolean needed = true;
- HashSet<String> pkgs = new HashSet<String>();
- Collection<String> deps = null;
-
- BufferedReader in = null;
- try {
- Pattern dep_re = Pattern.compile("^DEPEND=\"([^\"]*)\"$");
- Pattern cp_re = Pattern.compile("^CLASSPATH=\"([^\"]*)\"$");
-
- String line;
- in = new BufferedReader(new FileReader(env));
- while ((line = in.readLine()) != null) {
- Matcher m = dep_re.matcher(line);
- if (m.matches()) {
- String atoms = m.group(1);
- for (String atom : atoms.split(":")) {
- String pkg = atom;
- if (atom.contains("@")) {
- pkg = atom.split("@")[1];
- }
- pkgs.add(pkg);
- }
- continue;
- }
- m = cp_re.matcher(line);
- if (m.matches()) {
- Main classParser = new Main();
- for (String jar : m.group(1).split(":")) {
- if(jar.endsWith(".jar")) {
- classParser.processJar(new JarFile(image + jar));
- }
- }
- deps = classParser.getDeps();
- }
- }
-
- for (String pkg : pkgs) {
- if (!depNeeded(pkg, deps)) {
- System.out.println(pkg);
- needed = false;
- }
- }
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- try {
- in.close();
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- return needed;
- }
-
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) throws IOException {
- int exit = 0;
- try {
- CommandLineParser parser = new PosixParser();
- Options options = new Options();
- options.addOption("h", "help", false, "print help");
- options.addOption("i", "image", true, "image directory");
- options.addOption("v", "verbose", false, "print verbose output");
- CommandLine line = parser.parse(options, args);
- String[] files = line.getArgs();
- if (line.hasOption("h") || files.length == 0) {
- HelpFormatter h = new HelpFormatter();
- h.printHelp("java-dep-check [-i <image] <package.env>+", options);
- } else {
- image = line.getOptionValue("i", "");
-
- for (String arg : files) {
- if (line.hasOption('v')) {
- System.out.println("Checking " + arg);
- }
- if (!checkPkg(new File(arg))) {
- exit = 1;
- }
- }
- }
- } catch (ParseException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- System.exit(exit);
- }
-
- private void addDep(String dep) {
- deps.add(dep + ".class");
- }
-
- private void addDep(Type dep) {
- if (dep.getSort() == Type.OBJECT) {
- addDep(dep.getInternalName());
- }
- }
-
- private Collection<String> getDeps() {
- ArrayList<String> result = new ArrayList<String>();
- for (String s : deps) {
- if (!current.contains(s)) {
- result.add(s);
- }
- }
- return result;
- }
-
- @Override
- public void visit(int version, int access, String name, String signature,
- String superName, String[] interfaces) {
- addDep(superName);
- for(String iface : interfaces) {
- addDep(iface);
- }
- }
-
- @Override
- public FieldVisitor visitField(int access, String name, String desc, String signature, Object value) {
- addDep(Type.getType(desc));
- return null;
- }
-
- @Override
- public MethodVisitor visitMethod(int access, String name, String desc, String signature, String[] exceptions) {
- for (Type param : Type.getArgumentTypes(desc)) {
- addDep(param);
- }
- addDep(Type.getReturnType(desc));
- return new EmptyVisitor() {
- @Override
- public void visitLocalVariable(String name, String desc, String signature, Label start, Label end, int index) {
- addDep(Type.getType(desc));
- }
- @Override
- public void visitFieldInsn(int opcode, String owner, String name, String desc) {
- addDep(owner);
- }
- @Override
- public void visitMethodInsn(int opcode, String owner, String name, String desc) {
- addDep(owner);
- }
- @Override
- public AnnotationVisitor visitParameterAnnotation(int parameter, String desc, boolean visible) {
- return Main.this.visitAnnotation(desc, visible);
- }
-
-
- };
- }
-
- @Override
- public AnnotationVisitor visitAnnotation(String desc, boolean visible) {
- addDep(Type.getType(desc));
- return null;
- }
-}
diff --git a/dev-java/java-dep-check/files/Main.java b/dev-java/java-dep-check/files/Main.java
deleted file mode 100644
index a057b3577ae5..000000000000
--- a/dev-java/java-dep-check/files/Main.java
+++ /dev/null
@@ -1,233 +0,0 @@
-/*
- * Main.java The main application class.
- *
- * Created on May 1, 2007, 6:32 PM
- *
- * Copyright (C) 2007,2008 Petteri Räty <betelgeuse@gentoo.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public License
- * as published by the Free Software Foundation; either version 2
- * of the License, or (at your option) any later version.
-
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
-
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
- */
-package javadepchecker;
-
-import java.io.BufferedReader;
-import java.io.File;
-import java.io.FileReader;
-import java.util.HashSet;
-import java.util.logging.Level;
-import java.util.logging.Logger;
-import org.apache.bcel.classfile.ClassParser;
-import java.io.IOException;
-import java.io.InputStream;
-import java.io.InputStreamReader;
-import java.util.ArrayList;
-import java.util.Collection;
-import java.util.Enumeration;
-import java.util.TreeSet;
-import java.util.jar.JarEntry;
-import java.util.jar.JarFile;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
-import org.apache.bcel.classfile.ConstantClass;
-import org.apache.bcel.classfile.ConstantPool;
-import org.apache.bcel.classfile.DescendingVisitor;
-import org.apache.bcel.classfile.EmptyVisitor;
-import org.apache.bcel.classfile.JavaClass;
-import org.apache.commons.cli.CommandLine;
-import org.apache.commons.cli.CommandLineParser;
-import org.apache.commons.cli.HelpFormatter;
-import org.apache.commons.cli.Options;
-import org.apache.commons.cli.ParseException;
-import org.apache.commons.cli.PosixParser;
-
-/**
- *
- * @author betelgeuse
- */
-public final class Main extends EmptyVisitor {
-
- static private String image = "";
- private ConstantPool pool;
- private TreeSet<String> deps = new TreeSet<String>();
- private HashSet<String> current = new HashSet<String>();
-
- /** Creates a new instance of Main */
- public Main() {
- }
-
- private static Collection<String> getPackageJars(String pkg) {
- ArrayList<String> jars = new ArrayList<String>();
- try {
- Process p = Runtime.getRuntime().exec("java-config -p " + pkg);
- p.waitFor();
- BufferedReader in;
- in = new BufferedReader(new InputStreamReader(p.getInputStream()));
- String output = in.readLine();
- if (!output.trim().equals("")) {
- for (String jar : output.split(":")) {
- jars.add(jar);
- }
- }
- } catch (InterruptedException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- return jars;
- }
-
- public void processJar(JarFile jar) throws IOException {
- for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
- JarEntry entry = e.nextElement();
- String name = entry.getName();
- if (!entry.isDirectory() && name.endsWith(".class")) {
- this.current.add(name);
- InputStream stream = jar.getInputStream(entry);
- ClassParser parser = new ClassParser(stream, name);
- JavaClass jclass = parser.parse();
- this.pool = jclass.getConstantPool();
- new DescendingVisitor(jclass, this).visitConstantPool(this.pool);
- }
- }
- }
-
- private static boolean depNeeded(String pkg, Collection<String> deps) throws IOException {
- for (String jarName : getPackageJars(pkg)) {
- JarFile jar = new JarFile(jarName);
- for (Enumeration<JarEntry> e = jar.entries(); e.hasMoreElements();) {
- String name = e.nextElement().getName();
- if (deps.contains(name)) {
- return true;
- }
- }
- }
- return false;
- }
-
- private static boolean checkPkg(File env) {
- boolean needed = true;
- HashSet<String> pkgs = new HashSet<String>();
- Collection<String> deps = null;
-
- BufferedReader in = null;
- try {
- Pattern dep_re = Pattern.compile("^DEPEND=\"([^\"]*)\"$");
- Pattern cp_re = Pattern.compile("^CLASSPATH=\"([^\"]*)\"$");
-
- String line;
- in = new BufferedReader(new FileReader(env));
- while ((line = in.readLine()) != null) {
- Matcher m = dep_re.matcher(line);
- if (m.matches()) {
- String atoms = m.group(1);
- for (String atom : atoms.split(":")) {
- String pkg = atom;
- if (atom.contains("@")) {
- pkg = atom.split("@")[1];
- }
- pkgs.add(pkg);
- }
- continue;
- }
- m = cp_re.matcher(line);
- if (m.matches()) {
- Main classParser = new Main();
- for (String jar : m.group(1).split(":")) {
- classParser.processJar(new JarFile(image + jar));
- }
- deps = classParser.getDeps();
- }
- }
-
- for (String pkg : pkgs) {
- if (!depNeeded(pkg, deps)) {
- System.out.println(pkg);
- needed = false;
- }
- }
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- } finally {
- try {
- in.close();
- } catch (IOException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- }
- return needed;
- }
-
- /**
- * @param args the command line arguments
- */
- public static void main(String[] args) throws IOException {
- int exit = 0;
- try {
- CommandLineParser parser = new PosixParser();
- Options options = new Options();
- options.addOption("h", "help", false, "print help");
- options.addOption("i", "image", true, "image directory");
- options.addOption("v","verbose", false, "print verbose output");
- CommandLine line = parser.parse(options, args);
- String[] files = line.getArgs();
- if (line.hasOption("h") || files.length == 0) {
- HelpFormatter h = new HelpFormatter();
- h.printHelp("java-dep-check [-i <image] <package.env>+", options);
- } else {
- image = line.getOptionValue("i", "");
-
- for (String arg : files) {
- if(line.hasOption('v'))
- System.out.println("Checking " + arg);
- if (!checkPkg(new File(arg))) {
- exit = 1;
- }
- }
- }
- } catch (ParseException ex) {
- Logger.getLogger(Main.class.getName()).log(Level.SEVERE, null, ex);
- }
- System.exit(exit);
- }
-
- /**
- * Find referenced class from signature if the signature is for a array
- * type.
- * @see http://java.sun.com/docs/books/jvms/second_edition/html/ClassFile.doc.html
- */
- private String stripArray(String signature) {
- String[] result = signature.split("^\\[+L");
- if (result.length == 2) {
- return result[1].substring(0, result[1].length() - 1);
- } else {
- return signature;
- }
- }
-
- @Override
- public void visitConstantClass(ConstantClass obj) {
- String className = obj.getBytes(pool);
- deps.add(stripArray(className) + ".class");
- }
-
- private Collection<String> getDeps() {
- ArrayList<String> result = new ArrayList<String>();
- for (String s : deps) {
- if (!current.contains(s)) {
- result.add(s);
- }
- }
- return result;
- }
-}
diff --git a/dev-java/java-dep-check/java-dep-check-0.3-r1.ebuild b/dev-java/java-dep-check/java-dep-check-0.3-r1.ebuild
new file mode 100644
index 000000000000..11324ca3c2e0
--- /dev/null
+++ b/dev-java/java-dep-check/java-dep-check-0.3-r1.ebuild
@@ -0,0 +1,32 @@
+# Copyright 1999-2015 Gentoo Foundation
+# Distributed under the terms of the GNU General Public License v2
+# $Header: /var/cvsroot/gentoo-x86/dev-java/java-dep-check/java-dep-check-0.3-r1.ebuild,v 1.1 2015/06/25 22:30:37 chewi Exp $
+
+EAPI=5
+
+inherit java-pkg-2 java-pkg-simple
+
+DESCRIPTION="Java Dependency checker"
+HOMEPAGE="https://wiki.gentoo.org/wiki/Project:Java"
+LICENSE="GPL-2"
+SLOT="0"
+KEYWORDS="~amd64 ~x86"
+
+COMMON_DEP="
+ dev-java/commons-cli:1
+ dev-java/asm:3"
+RDEPEND=">=virtual/jre-1.5
+ ${COMMON_DEP}"
+DEPEND=">=virtual/jdk-1.5
+ ${COMMON_DEP}"
+
+JAVA_GENTOO_CLASSPATH="asm-3,commons-cli-1"
+
+src_unpack() {
+ cp "${FILESDIR}/Main-${PV}.java" Main.java || die
+}
+
+src_install() {
+ java-pkg-simple_src_install
+ java-pkg_dolauncher ${PN} --main javadepchecker.Main
+}