package org.codefx.mvn.jdeps.tool.jdeps;
import org.apache.commons.lang3.SystemUtils;
import java.nio.file.Path;
import java.util.Optional;
/**
* Tries to locate jdeps via the system property "java.home".
*/
final class JavaHomeSystemPropertyJDepsSearch implements JDepsSearch {
private final SearchJDepsInJdk searchJDepsInJdk;
/**
* Creates a new search.
*/
public JavaHomeSystemPropertyJDepsSearch() {
this(new SearchJDepsInJdk());
}
/**
* Creates a new search which uses the specified service to locate JDeps in the JDK folder.
*
* @param searchJDepsInJdk
* used to locate JDeps in the JDK folder
*/
public JavaHomeSystemPropertyJDepsSearch(SearchJDepsInJdk searchJDepsInJdk) {
this.searchJDepsInJdk = searchJDepsInJdk;
}
@Override
public Optional<Path> search() {
// "java.home" points to "jdk/jre" and jdeps can be found in "jdk/bin" (if this is run with a JDK)
Path javaHome = SystemUtils.getJavaHome().toPath();
Path jdkHome = javaHome.getParent();
return searchJDepsInJdk.search(jdkHome);
}
}