summaryrefslogtreecommitdiffstats
path: root/container-dev-builder/tools/src/main/java/com/yahoo/container/dev/builder/DependencyResolver.java
diff options
context:
space:
mode:
Diffstat (limited to 'container-dev-builder/tools/src/main/java/com/yahoo/container/dev/builder/DependencyResolver.java')
-rw-r--r--container-dev-builder/tools/src/main/java/com/yahoo/container/dev/builder/DependencyResolver.java58
1 files changed, 58 insertions, 0 deletions
diff --git a/container-dev-builder/tools/src/main/java/com/yahoo/container/dev/builder/DependencyResolver.java b/container-dev-builder/tools/src/main/java/com/yahoo/container/dev/builder/DependencyResolver.java
new file mode 100644
index 00000000000..c8a0bcf5a8a
--- /dev/null
+++ b/container-dev-builder/tools/src/main/java/com/yahoo/container/dev/builder/DependencyResolver.java
@@ -0,0 +1,58 @@
+// Copyright 2016 Yahoo Inc. Licensed under the terms of the Apache 2.0 license. See LICENSE in the project root.
+package com.yahoo.container.dev.builder;
+
+import org.codehaus.plexus.util.xml.pull.XmlPullParserException;
+
+import java.io.IOException;
+import java.nio.charset.StandardCharsets;
+import java.nio.file.FileVisitResult;
+import java.nio.file.Files;
+import java.nio.file.Path;
+import java.nio.file.Paths;
+import java.nio.file.SimpleFileVisitor;
+import java.nio.file.attribute.BasicFileAttributes;
+import java.util.Arrays;
+import java.util.HashSet;
+import java.util.Set;
+import java.util.TreeSet;
+
+/**
+ * @author <a href="mailto:simon@yahoo-inc.com">Simon Thoresen Hult</a>
+ */
+public class DependencyResolver {
+
+ private static final Path DEPENDENCIES = Paths.get("dependencies");
+
+ public static void main(String[] args) throws IOException, XmlPullParserException {
+ final Set<String> blacklist = new HashSet<>(Arrays.asList(args).subList(1, args.length));
+ final Set<String> dependencies = new TreeSet<>();
+ Files.walkFileTree(Paths.get(args[0]), new SimpleFileVisitor<Path>() {
+
+ @Override
+ public FileVisitResult visitFile(final Path file, final BasicFileAttributes attrs) throws IOException {
+ if (!attrs.isRegularFile()) {
+ return FileVisitResult.CONTINUE;
+ }
+ if (!file.getFileName().equals(DEPENDENCIES)) {
+ return FileVisitResult.CONTINUE;
+ }
+ for (final String line : Files.readAllLines(file, StandardCharsets.UTF_8)) {
+ for (final String dependency : line.split(" ")) {
+ if (dependency == null || dependency.isEmpty()) {
+ continue;
+ }
+ final String[] arr = dependency.split(":");
+ if (arr.length != 5 || blacklist.contains(arr[0] + ":" + arr[1])) {
+ continue;
+ }
+ dependencies.add(dependency);
+ }
+ }
+ return FileVisitResult.CONTINUE;
+ }
+ });
+ for (final String dependency : dependencies) {
+ System.out.println(dependency);
+ }
+ }
+} \ No newline at end of file