@Inject ClasspathProvider(final RuntimeClasspathProvider runtimeClasspathProvider, final REEFFileNames reefFileNames) { final List<String> baseClasspath = Arrays.asList( reefFileNames.getLocalFolderPath() + "/*", reefFileNames.getGlobalFolderPath() + "/*"); // Assemble the driver classpath final List<String> runtimeDriverClasspathPrefix = runtimeClasspathProvider.getDriverClasspathPrefix(); final List<String> runtimeDriverClasspathSuffix = runtimeClasspathProvider.getDriverClasspathSuffix(); final List<String> driverClasspath = new ArrayList<>(baseClasspath.size() + runtimeDriverClasspathPrefix.size() + runtimeDriverClasspathSuffix.size()); driverClasspath.addAll(runtimeDriverClasspathPrefix); driverClasspath.addAll(baseClasspath); driverClasspath.addAll(runtimeDriverClasspathSuffix); this.driverClasspath = Collections.unmodifiableList(driverClasspath); // Assemble the evaluator classpath final List<String> runtimeEvaluatorClasspathPrefix = runtimeClasspathProvider.getEvaluatorClasspathPrefix(); final List<String> runtimeEvaluatorClasspathSuffix = runtimeClasspathProvider.getEvaluatorClasspathSuffix(); final List<String> evaluatorClasspath = new ArrayList<>(runtimeEvaluatorClasspathPrefix.size() + baseClasspath.size() + runtimeEvaluatorClasspathSuffix.size()); evaluatorClasspath.addAll(runtimeEvaluatorClasspathPrefix); evaluatorClasspath.addAll(baseClasspath); evaluatorClasspath.addAll(runtimeEvaluatorClasspathSuffix); this.evaluatorClasspath = Collections.unmodifiableList(evaluatorClasspath); }