diff -Nru gradle-1.0/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java gradle-1.0-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java
--- gradle-1.0/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java 2012-04-25 01:27:12.000000000 +0200
+++ gradle-1.0-gil/subprojects/core-impl/src/main/groovy/org/gradle/api/internal/artifacts/mvnsettings/DefaultLocalMavenRepositoryLocator.java 2012-09-21 20:22:57.195186172 +0200
@@ -15,79 +15,32 @@
*/
package org.gradle.api.internal.artifacts.mvnsettings;
-import org.apache.maven.settings.DefaultMavenSettingsBuilder;
-import org.apache.maven.settings.MavenSettingsBuilder;
-import org.apache.maven.settings.Settings;
-import org.gradle.api.internal.artifacts.PlexusLoggerAdapter;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
import java.io.File;
-import java.lang.reflect.Field;
import java.util.Map;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
/**
* @author Steve Ebersole
*/
public class DefaultLocalMavenRepositoryLocator implements LocalMavenRepositoryLocator {
- private static final Logger LOGGER = LoggerFactory.getLogger(DefaultLocalMavenRepositoryLocator.class);
- private static final Pattern PLACEHOLDER_PATTERN = Pattern.compile("\\$\\{([^\\}]*)\\}");
-
- private final MavenFileLocations mavenFileLocations;
- private final Map<String, String> systemProperties;
- private final Map<String, String> environmentVariables;
+ private static final String SETTINGS_LOCATION_OVERRIDE = "maven.settings";
public DefaultLocalMavenRepositoryLocator(MavenFileLocations mavenFileLocations, Map<String, String> systemProperties, Map<String, String> environmentVariables) {
- this.mavenFileLocations = mavenFileLocations;
- this.systemProperties = systemProperties;
- this.environmentVariables = environmentVariables;
}
public File getLocalMavenRepository() {
- Settings settings = buildSettings();
- String repoPath = settings.getLocalRepository().trim();
- return new File(resolvePlaceholders(repoPath));
- }
-
- private String resolvePlaceholders(String value) {
- StringBuffer result = new StringBuffer();
- Matcher matcher = PLACEHOLDER_PATTERN.matcher(value);
-
- while (matcher.find()) {
- String placeholder = matcher.group(1);
- String replacement = placeholder.startsWith("env.") ? environmentVariables.get(placeholder.substring(4)) : systemProperties.get(placeholder);
- if (replacement == null) {
- throw new CannotLocateLocalMavenRepositoryException(String.format("Cannot resolve placeholder '%s' in value '%s'", placeholder, value));
- }
- matcher.appendReplacement(result, Matcher.quoteReplacement(replacement));
- }
- matcher.appendTail(result);
-
- return result.toString();
+ return determineSettingsFileLocation();
}
- private Settings buildSettings() {
- try {
- return createSettingsBuilder().buildSettings();
- } catch (Exception e) {
- throw new CannotLocateLocalMavenRepositoryException(e);
- }
+ private static String normalizePath(String path) {
+ if ( path.startsWith( "~" ) ) {
+ path = System.getProperty( "user.home" ) + path.substring( 1 );
+ }
+ return path;
}
- private MavenSettingsBuilder createSettingsBuilder() throws Exception {
- DefaultMavenSettingsBuilder builder = new DefaultMavenSettingsBuilder();
- builder.enableLogging(new PlexusLoggerAdapter(LOGGER));
-
- Field userSettingsFileField = DefaultMavenSettingsBuilder.class.getDeclaredField("userSettingsFile");
- userSettingsFileField.setAccessible(true);
- userSettingsFileField.set(builder, mavenFileLocations.getUserSettingsFile());
-
- Field globalSettingsFileField = DefaultMavenSettingsBuilder.class.getDeclaredField("globalSettingsFile");
- globalSettingsFileField.setAccessible(true);
- globalSettingsFileField.set(builder, mavenFileLocations.getGlobalSettingsFile());
-
- return builder;
+ private File determineSettingsFileLocation() {
+ final String defaultLocation = "~/.m2/settings.xml";
+ final String location = System.getProperty( SETTINGS_LOCATION_OVERRIDE, defaultLocation );
+ return new File( normalizePath( location ) );
}
}
diff -Nru gradle-1.0/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java gradle-1.0-gil/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java
--- gradle-1.0/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java 2011-10-25 05:52:58.000000000 +0200
+++ gradle-1.0-gil/subprojects/maven/src/main/groovy/org/gradle/api/publication/maven/internal/ant/LoggingHelper.java 2012-09-21 20:22:57.197186053 +0200
@@ -17,7 +17,7 @@
import org.apache.maven.artifact.ant.AntDownloadMonitor;
import org.apache.maven.artifact.manager.DefaultWagonManager;
-import org.apache.maven.artifact.manager.WagonManager;
+import org.apache.maven.artifact.handler.ArtifactHandler;
import org.apache.tools.ant.Project;
import org.codehaus.plexus.PlexusContainer;
import org.codehaus.plexus.component.repository.exception.ComponentLookupException;
@@ -30,7 +30,7 @@
public class LoggingHelper {
public static void injectLogger(PlexusContainer container, Project project) {
try {
- WagonManager wagonManager = (WagonManager) container.lookup(WagonManager.ROLE);
+ ArtifactHandler wagonManager = (ArtifactHandler) container.lookup(ArtifactHandler.ROLE);
Field field = DefaultWagonManager.class.getDeclaredField("downloadMonitor");
field.setAccessible(true);
AntDownloadMonitor antDownloadMonitor = (AntDownloadMonitor) field.get(wagonManager);