You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by og...@apache.org on 2008/12/12 21:29:06 UTC
svn commit: r726112 - in
/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks:
Config.java Messages.properties WriteTask.java
Author: ogusakov
Date: Fri Dec 12 12:29:05 2008
New Revision: 726112
URL: http://svn.apache.org/viewvc?rev=726112&view=rev
Log:
[MERCURY-56] adding repo authentication config
Modified:
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties
maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/WriteTask.java
Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java?rev=726112&r1=726111&r2=726112&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Config.java Fri Dec 12 12:29:05 2008
@@ -1,18 +1,25 @@
package org.apache.maven.mercury.ant.tasks;
import java.io.File;
+import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
import java.util.Collection;
+import java.util.Map;
import org.apache.maven.mercury.MavenDependencyProcessor;
import org.apache.maven.mercury.builder.api.DependencyProcessor;
import org.apache.maven.mercury.repository.api.Repository;
import org.apache.maven.mercury.repository.local.m2.LocalRepositoryM2;
import org.apache.maven.mercury.repository.remote.m2.RemoteRepositoryM2;
+import org.apache.maven.mercury.transport.api.Credentials;
import org.apache.maven.mercury.transport.api.Server;
+import org.apache.maven.mercury.util.FileUtil;
import org.apache.maven.mercury.util.Util;
+import org.apache.tools.ant.BuildException;
+import org.codehaus.plexus.lang.DefaultLanguage;
+import org.codehaus.plexus.lang.Language;
/**
*
@@ -24,12 +31,16 @@
public class Config
extends AbstractDataType
{
+ private static final Language _lang = new DefaultLanguage( Config.class );
+
Collection<Repo> _repos;
+ Collection<Auth> _auths;
+
Collection<Repository> _repositories;
public Collection<Repository> getRepositories()
- throws MalformedURLException
+ throws BuildException
{
if( Util.isEmpty( _repos ) )
return null;
@@ -53,7 +64,53 @@
{
DependencyProcessor dp = new MavenDependencyProcessor();
- Server server = new Server( repo.getId(), new URL( repo._url ) );
+ Server server;
+ try
+ {
+ server = new Server( repo.getId(), new URL( repo._url ) );
+ }
+ catch( MalformedURLException e )
+ {
+ throw new BuildException(e);
+ }
+
+ if( repo._authid != null )
+ {
+ Auth au = null;
+
+ if( _auths == null )
+ throw new BuildException( _lang.getMessage( "config.no.auths", repo._authid ) );
+
+ for( Auth a : _auths )
+ if( repo._authid.equals( a.getId() ) )
+ au = a;
+
+ if( au == null )
+ throw new BuildException( _lang.getMessage( "config.no.auth.for.id", repo._authid ) );
+
+ Credentials serverCred = createCredentials( au );
+
+ server.setServerCredentials( serverCred );
+ }
+
+ if( repo._proxyauthid != null )
+ {
+ Auth au = null;
+
+ if( _auths == null )
+ throw new BuildException( _lang.getMessage( "config.no.proxy.auths", repo._proxyauthid ) );
+
+ for( Auth a : _auths )
+ if( repo._proxyauthid.equals( a.getId() ) )
+ au = a;
+
+ if( au == null )
+ throw new BuildException( _lang.getMessage( "config.no.proxy.auth.for.id", repo._proxyauthid ) );
+
+ Credentials proxyCred = createCredentials( au );
+
+ server.setProxyCredentials( proxyCred );
+ }
RemoteRepositoryM2 r = new RemoteRepositoryM2( server, dp );
@@ -64,6 +121,31 @@
return _repositories;
}
+ private static Credentials createCredentials( Auth a )
+ {
+ Credentials cred = null;
+
+ if( a._certfile != null )
+ {
+ File cf = new File( a._certfile );
+ if( ! cf.exists() )
+ throw new BuildException( _lang.getMessage( "config.no.cert.file", a._certfile ) );
+
+ try
+ {
+ cred = new Credentials( FileUtil.readRawData( cf ), a._name, a._pass );
+ }
+ catch( IOException e )
+ {
+ throw new BuildException(e);
+ }
+ }
+ else
+ cred = new Credentials( a._name, a._pass );
+
+ return cred;
+ }
+
public Repo createRepo()
{
if( _repos == null )
@@ -76,6 +158,18 @@
return r;
}
+ public Auth createAuth()
+ {
+ if( _auths == null )
+ _auths = new ArrayList<Auth>(4);
+
+ Auth a = new Auth();
+
+ _auths.add( a );
+
+ return a;
+ }
+
public class Repo
extends AbstractDataType
{
Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties?rev=726112&r1=726111&r2=726112&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/Messages.properties Fri Dec 12 12:29:05 2008
@@ -24,3 +24,9 @@
write.no.name.no.pom=write task desperately needs either name or pom to deploy file {0} to {1}
write.no.name.no.pom=write task desperately needs only name or pom, not both, to deploy file {0} to {1}
write.pom.not.supported=write task does not support pom yet. Saw one deploying file {0} to {1}
+
+config.no.proxy.auths=No authentications are declared. Looking for proxy authid {0}
+config.no.proxy.auth.for.id=No authentications are declared. Looking for proxy auth id {0}
+config.no.auths=No authentications are declared. Looking for auth id {0}
+config.no.auth.for.id=No authentications are declared. Looking for auth id {0}
+config.no.cert.file=cert file {0} does not exist
Modified: maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/WriteTask.java
URL: http://svn.apache.org/viewvc/maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/WriteTask.java?rev=726112&r1=726111&r2=726112&view=diff
==============================================================================
--- maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/WriteTask.java (original)
+++ maven/mercury/trunk/mercury-ant/mercury-ant-tasks/src/main/java/org/apache/maven/mercury/ant/tasks/WriteTask.java Fri Dec 12 12:29:05 2008
@@ -80,15 +80,7 @@
Config conf = (Config)o;
- Collection<Repository> repos;
- try
- {
- repos = conf.getRepositories();
- }
- catch( MalformedURLException e )
- {
- throw new BuildException( e );
- }
+ Collection<Repository> repos = conf.getRepositories();
if( Util.isEmpty( repos ) )
continue;