You are viewing a plain text version of this content. The canonical link for it is here.
Posted to m2-dev@maven.apache.org by ev...@apache.org on 2005/03/17 07:11:17 UTC
cvs commit: maven-components/maven-mboot2/src/main/java/download ArtifactDownloader.java
evenisse 2005/03/16 22:11:17
Modified: maven-mboot2/src/main/java MBoot.java
maven-mboot2/src/main/java/download ArtifactDownloader.java
Log:
Add support for proxy in bootstrap.
Revision Changes Path
1.69 +158 -17 maven-components/maven-mboot2/src/main/java/MBoot.java
Index: MBoot.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/src/main/java/MBoot.java,v
retrieving revision 1.68
retrieving revision 1.69
diff -u -r1.68 -r1.69
--- MBoot.java 16 Mar 2005 06:55:36 -0000 1.68
+++ MBoot.java 17 Mar 2005 06:11:17 -0000 1.69
@@ -184,9 +184,11 @@
String mavenRepoLocal = System.getProperty( "maven.repo.local" );
+ SettingsReader userModelReader = null;
+
if ( mavenRepoLocal == null )
{
- SettingsReader userModelReader = new SettingsReader();
+ userModelReader = new SettingsReader();
try
{
@@ -198,7 +200,7 @@
{
userModelReader.parse( settingsXml );
- Profile activeProfile = userModelReader.getActiveMavenProfile();
+ Profile activeProfile = userModelReader.getActiveProfile();
mavenRepoLocal = new File( activeProfile.getLocalRepo() ).getAbsolutePath();
}
@@ -222,12 +224,12 @@
mavenRepoLocal = repoDir.getAbsolutePath();
- System.out
- .println( "You SHOULD have a ~/.m2/settings.xml file and must contain at least the following information:\n" );
+ System.out.println( "You SHOULD have a ~/.m2/settings.xml file and must contain at least the following information:\n" );
- System.out.println( "<settings>\n " + "<profiles>\n " + "<profile>\n "
- + "<localRepository>/path/to/your/repository</localRepository>\n "
- + "</profile>\n " + "</profiles>\n"
+ System.out.println( "<settings>\n" + " <profiles>\n" + " <profile>\n"
+ + " <active>true</active>\n"
+ + " <localRepository>/path/to/your/repository</localRepository>\n"
+ + " </profile>\n" + " </profiles>\n"
+ "</settings>\n" );
System.out.println();
@@ -272,6 +274,11 @@
}
downloader = new ArtifactDownloader( mavenRepoLocal, reader.getRemoteRepositories() );
+ if ( userModelReader.getActiveProxy() != null )
+ {
+ Proxy proxy = userModelReader.getActiveProxy();
+ downloader.setProxy( proxy.getHost(), proxy.getPort(), proxy.getUserName(), proxy.getPassword() );
+ }
repoLocal = downloader.getMavenRepoLocal().getPath();
@@ -1332,18 +1339,28 @@
class SettingsReader
extends AbstractReader
{
-
private List profiles = new ArrayList();
private Profile currentProfile = null;
+ private List proxies = new ArrayList();
+
+ private Proxy currentProxy = null;
+
private StringBuffer currentBody = new StringBuffer();
- private Profile activeMavenProfile = null;
+ private Profile activeProfile = null;
- public Profile getActiveMavenProfile()
+ private Proxy activeProxy = null;
+
+ public Profile getActiveProfile()
{
- return activeMavenProfile;
+ return activeProfile;
+ }
+
+ public Proxy getActiveProxy()
+ {
+ return activeProxy;
}
public void characters( char[] ch, int start, int length )
@@ -1383,20 +1400,77 @@
throw new SAXException( "Illegal element inside profile: \'" + rawName + "\'" );
}
}
+ else if ( "proxy".equals( rawName ) )
+ {
+ if ( notEmpty( currentProxy.getHost() ) && notEmpty( currentProxy.getPort() ) )
+ {
+ proxies.add( currentProxy );
+ currentProxy = null;
+ }
+ else
+ {
+ throw new SAXException( "Invalid proxy entry. Missing one or more " +
+ "fields: {host, port}." );
+ }
+ }
+ else if ( currentProxy != null )
+ {
+ if ( "active".equals( rawName ) )
+ {
+ currentProxy.setActive( Boolean.valueOf(currentBody.toString().trim()).booleanValue() );
+ }
+ else if ( "host".equals( rawName ) )
+ {
+ currentProxy.setHost( currentBody.toString().trim() );
+ }
+ else if ( "port".equals( rawName ) )
+ {
+ currentProxy.setPort( currentBody.toString().trim() );
+ }
+ else if ( "username".equals( rawName ) )
+ {
+ currentProxy.setUserName( currentBody.toString().trim() );
+ }
+ else if ( "password".equals( rawName ) )
+ {
+ currentProxy.setPassword( currentBody.toString().trim() );
+ }
+ else if ( "protocol".equals( rawName ) )
+ {
+ }
+ else if ( "nonProxyHosts".equals( rawName ) )
+ {
+ }
+ else
+ {
+ throw new SAXException( "Illegal element inside proxy: \'" + rawName + "\'" );
+ }
+ }
else if ( "settings".equals( rawName ) )
{
- if(profiles.size() == 1)
+ if( profiles.size() == 1 )
{
- activeMavenProfile = (Profile) profiles.get(0);
+ activeProfile = (Profile) profiles.get(0);
}
else
{
for ( Iterator it = profiles.iterator(); it.hasNext(); )
{
Profile profile = (Profile) it.next();
- if(profile.isActive())
+ if( profile.isActive() )
+ {
+ activeProfile = profile;
+ }
+ }
+ }
+ if ( proxies.size() != 0 )
+ {
+ for ( Iterator it = proxies.iterator(); it.hasNext(); )
+ {
+ Proxy proxy = (Proxy) it.next();
+ if( proxy.isActive() )
{
- activeMavenProfile = profile;
+ activeProxy = proxy;
}
}
}
@@ -1417,20 +1491,25 @@
{
currentProfile = new Profile();
}
+ else if ( "proxy".equals( rawName ) )
+ {
+ currentProxy = new Proxy();
+ }
}
public void reset()
{
this.currentBody = null;
- this.activeMavenProfile = null;
+ this.activeProfile = null;
+ this.activeProxy = null;
this.currentProfile = null;
this.profiles.clear();
+ this.proxies.clear();
}
}
public static class Profile
{
-
private String localRepo;
private boolean active = false;
@@ -1454,7 +1533,69 @@
{
return localRepo;
}
+ }
+
+ public class Proxy
+ {
+ private boolean active;
+
+ private String host;
+
+ private String port;
+
+ private String userName;
+
+ private String password;
+
+ public boolean isActive()
+ {
+ return active;
+ }
+ public void setActive( boolean active )
+ {
+ this.active = active;
+ }
+
+ public void setHost( String host )
+ {
+ this.host = host;
+ }
+
+ public String getHost()
+ {
+ return host;
+ }
+
+ public void setPort( String port )
+ {
+ this.port = port;
+ }
+
+ public String getPort()
+ {
+ return port;
+ }
+
+ public void setUserName( String userName )
+ {
+ this.userName = userName;
+ }
+
+ public String getUserName()
+ {
+ return userName;
+ }
+
+ public void setPassword( String password )
+ {
+ this.password = password;
+ }
+
+ public String getPassword()
+ {
+ return password;
+ }
}
public static class Dependency
1.2 +9 -0 maven-components/maven-mboot2/src/main/java/download/ArtifactDownloader.java
Index: ArtifactDownloader.java
===================================================================
RCS file: /home/cvs/maven-components/maven-mboot2/src/main/java/download/ArtifactDownloader.java,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -r1.1 -r1.2
--- ArtifactDownloader.java 5 Dec 2004 04:12:24 -0000 1.1
+++ ArtifactDownloader.java 17 Mar 2005 06:11:17 -0000 1.2
@@ -70,6 +70,15 @@
private Set downloadedArtifacts = new HashSet();
+ public void setProxy( String host, String port, String userName, String password )
+ {
+ proxyHost = host;
+ proxyPort = port;
+ proxyUserName = userName;
+ proxyPassword = password;
+ System.out.println("Using the following proxy : " + proxyHost + "/" + proxyPort );
+ }
+
public void downloadDependencies( List files )
throws Exception
{