private List<File> getSourceFiles() { List<File> sources = new ArrayList<File>(); for (String source : SpringApplicationRunner.this.sources) { List<String> paths = ResourceUtils.getUrls(source, SpringApplicationRunner.this.compiler.getLoader()); for (String path : paths) { try { URL url = new URL(path); if ("file".equals(url.getProtocol())) { sources.add(new File(url.getFile())); } } catch (MalformedURLException ex) { // Ignore } } } return sources; }
private SourceOptions(List<?> nonOptionArguments, ClassLoader classLoader) { List<String> sources = new ArrayList<String>(); int sourceArgCount = 0; for (Object option : nonOptionArguments) { if (option instanceof String) { String filename = (String) option; if ("--".equals(filename)) { break; } List<String> urls = new ArrayList<String>(); File fileCandidate = new File(filename); if (fileCandidate.isFile()) { urls.add(fileCandidate.getAbsoluteFile().toURI().toString()); } else if (!isAbsoluteWindowsFile(fileCandidate)) { urls.addAll(ResourceUtils.getUrls(filename, classLoader)); } for (String url : urls) { if (isSource(url)) { sources.add(url); } } if (isSource(filename)) { if (urls.isEmpty()) { throw new IllegalArgumentException("Can't find " + filename); } else { sourceArgCount++; } } } } this.args = Collections.unmodifiableList( nonOptionArguments.subList(sourceArgCount, nonOptionArguments.size())); Assert.isTrue(!sources.isEmpty(), "Please specify at least one file"); this.sources = Collections.unmodifiableList(sources); }
private SourceOptions(List<?> nonOptionArguments, ClassLoader classLoader) { List<String> sources = new ArrayList<String>(); int sourceArgCount = 0; for (Object option : nonOptionArguments) { if (option instanceof String) { String filename = (String) option; if ("--".equals(filename)) { break; } List<String> urls = ResourceUtils.getUrls(filename, classLoader); for (String url : urls) { if (url.endsWith(".groovy") || url.endsWith(".java")) { sources.add(url); } } if ((filename.endsWith(".groovy") || filename.endsWith(".java"))) { if (urls.isEmpty()) { throw new IllegalArgumentException("Can't find " + filename); } else { sourceArgCount++; } } } } this.args = Collections.unmodifiableList( nonOptionArguments.subList(sourceArgCount, nonOptionArguments.size())); Assert.isTrue(sources.size() > 0, "Please specify at least one file"); this.sources = Collections.unmodifiableList(sources); }