Skip to content

Commit

Permalink
When resolving dependencies, java.home should be set to the target jv…
Browse files Browse the repository at this point in the history
…m, not the jvm that is running capsule
  • Loading branch information
jmost authored and jmost committed Jan 21, 2015
1 parent b31e4a4 commit 0eaf3b1
Show file tree
Hide file tree
Showing 3 changed files with 9 additions and 7 deletions.
6 changes: 3 additions & 3 deletions capsule/src/main/java/Capsule.java
Expand Up @@ -2395,7 +2395,7 @@ private Object tryCreateDependencyManager() {
try {
final boolean reset = systemPropertyEmptyOrTrue(PROP_RESET);
final Path localRepo = getLocalRepo();
return createDependencyManager(localRepo.toAbsolutePath(), reset, oc.logLevel);
return createDependencyManager(localRepo.toAbsolutePath(), reset, oc.logLevel, javaHome_.toString());
} catch (NoClassDefFoundError e) {
return null;
}
Expand All @@ -2404,8 +2404,8 @@ private Object tryCreateDependencyManager() {
/**
* @deprecated marked deprecated to exclude from javadoc.
*/
protected Object createDependencyManager(Path localRepo, boolean reset, int logLevel) {
return new DependencyManagerImpl(localRepo, reset, logLevel);
protected Object createDependencyManager(Path localRepo, boolean reset, int logLevel, String javaHome) {
return new DependencyManagerImpl(localRepo, reset, logLevel, javaHome);
}

private Object getDependencyManager() {
Expand Down
8 changes: 5 additions & 3 deletions capsule/src/main/java/capsule/DependencyManagerImpl.java
Expand Up @@ -81,6 +81,7 @@ public class DependencyManagerImpl implements DependencyManager {
private static final int LOG_VERBOSE = 2;
private static final int LOG_DEBUG = 3;
private static final String LOG_PREFIX = "CAPSULE: ";
private static final String JAVA_HOME = "java.home";
//</editor-fold>

private final boolean forceRefresh;
Expand All @@ -94,7 +95,7 @@ public class DependencyManagerImpl implements DependencyManager {
//<editor-fold desc="Construction and Setup">
/////////// Construction and Setup ///////////////////////////////////
@SuppressWarnings("OverridableMethodCallInConstructor")
public DependencyManagerImpl(Path localRepoPath, boolean forceRefresh, int logLevel) {
public DependencyManagerImpl(Path localRepoPath, boolean forceRefresh, int logLevel, String javaHome) {
this.logLevel = logLevel;
this.forceRefresh = forceRefresh;
this.offline = isPropertySet(PROP_OFFLINE, false);
Expand All @@ -107,7 +108,7 @@ public DependencyManagerImpl(Path localRepoPath, boolean forceRefresh, int logLe
final LocalRepository localRepo = new LocalRepository(localRepoPath.toFile());
this.settings = UserSettings.getInstance();
this.system = newRepositorySystem();
this.session = newRepositorySession(system, localRepo);
this.session = newRepositorySession(system, localRepo, javaHome);
}

@Override
Expand Down Expand Up @@ -163,12 +164,13 @@ public void serviceCreationFailed(Class<?> type, Class<?> impl, Throwable ex) {
return locator.getService(RepositorySystem.class);
}

protected RepositorySystemSession newRepositorySession(RepositorySystem system, LocalRepository localRepo) {
protected RepositorySystemSession newRepositorySession(RepositorySystem system, LocalRepository localRepo, String javaHome) {
final DefaultRepositorySystemSession s = MavenRepositorySystemUtils.newSession();

s.setConfigProperty(ConfigurationProperties.CONNECT_TIMEOUT, propertyOrEnv(PROP_CONNECT_TIMEOUT, ENV_CONNECT_TIMEOUT));
s.setConfigProperty(ConfigurationProperties.REQUEST_TIMEOUT, propertyOrEnv(PROP_REQUEST_TIMEOUT, ENV_REQUEST_TIMEOUT));
s.setConfigProperty(ConflictResolver.CONFIG_PROP_VERBOSE, true);
s.setSystemProperty(JAVA_HOME, javaHome);

s.setOffline(offline);
s.setUpdatePolicy(forceRefresh ? RepositoryPolicy.UPDATE_POLICY_ALWAYS : RepositoryPolicy.UPDATE_POLICY_NEVER);
Expand Down
2 changes: 1 addition & 1 deletion capsule/src/test/java/capsule/DependencyManagerDriver.java
Expand Up @@ -23,7 +23,7 @@ public class DependencyManagerDriver {
public static void main(String[] args) {
DependencyManager dm;

dm = new DependencyManagerImpl(DEFAULT_LOCAL_MAVEN, false, 3);
dm = new DependencyManagerImpl(DEFAULT_LOCAL_MAVEN, false, 3, "");
dm.setRepos(null, true);

resolve(dm, "co.paralleluniverse:quasar-core:LATEST");
Expand Down

0 comments on commit 0eaf3b1

Please sign in to comment.