187 .collect(Collectors.toList());
188
189 // Additional pass to find archive where dependences are identified
190 // and also any specified classes, if any.
191 // If -R is specified, perform transitive dependency analysis.
192 Deque<String> unresolved = new LinkedList<>(classes);
193 do {
194 String name;
195 while ((name = unresolved.poll()) != null) {
196 if (doneClasses.contains(name)) {
197 continue;
198 }
199 if (compileTimeView) {
200 final String cn = name + ".class";
201 // parse all classes in the source archive
202 Optional<Archive> source = archives.stream()
203 .filter(a -> a.reader().entries().contains(cn))
204 .findFirst();
205 trace("%s compile time view %s%n", name, source.map(Archive::getName).orElse(" not found"));
206 if (source.isPresent()) {
207 executor.runTask(source.get(), deque);
208 }
209 }
210 ClassFile cf = null;
211 for (Archive archive : archives) {
212 cf = archive.reader().getClassFile(name);
213
214 if (cf != null) {
215 String classFileName;
216 try {
217 classFileName = cf.getName();
218 } catch (ConstantPoolException e) {
219 throw new Dependencies.ClassFileError(e);
220 }
221 if (!doneClasses.contains(classFileName)) {
222 // if name is a fully-qualified class name specified
223 // from command-line, this class might already be parsed
224 doneClasses.add(classFileName);
225 for (Dependency d : finder.findDependencies(cf)) {
226 if (depth == 0) {
227 // ignore the dependency
|
187 .collect(Collectors.toList());
188
189 // Additional pass to find archive where dependences are identified
190 // and also any specified classes, if any.
191 // If -R is specified, perform transitive dependency analysis.
192 Deque<String> unresolved = new LinkedList<>(classes);
193 do {
194 String name;
195 while ((name = unresolved.poll()) != null) {
196 if (doneClasses.contains(name)) {
197 continue;
198 }
199 if (compileTimeView) {
200 final String cn = name + ".class";
201 // parse all classes in the source archive
202 Optional<Archive> source = archives.stream()
203 .filter(a -> a.reader().entries().contains(cn))
204 .findFirst();
205 trace("%s compile time view %s%n", name, source.map(Archive::getName).orElse(" not found"));
206 if (source.isPresent()) {
207 executor.runTask(source.getWhenPresent(), deque);
208 }
209 }
210 ClassFile cf = null;
211 for (Archive archive : archives) {
212 cf = archive.reader().getClassFile(name);
213
214 if (cf != null) {
215 String classFileName;
216 try {
217 classFileName = cf.getName();
218 } catch (ConstantPoolException e) {
219 throw new Dependencies.ClassFileError(e);
220 }
221 if (!doneClasses.contains(classFileName)) {
222 // if name is a fully-qualified class name specified
223 // from command-line, this class might already be parsed
224 doneClasses.add(classFileName);
225 for (Dependency d : finder.findDependencies(cf)) {
226 if (depth == 0) {
227 // ignore the dependency
|