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 2009/04/08 06:09:10 UTC
svn commit: r762576 - in /maven/components/trunk: ./
maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/
maven-repository/src/main/java/org/apache/maven/repository/
Author: ogusakov
Date: Tue Apr 7 00:18:23 2009
New Revision: 762576
URL: http://svn.apache.org/viewvc?rev=762576&view=rev
Log:
working on MercuryRepositorySystem - oprimized Adapter
Modified:
maven/components/trunk/build-mercury.xml
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
maven/components/trunk/mercury-ant-tasks-1.0-alpha-6-SNAPSHOT.jar
Modified: maven/components/trunk/build-mercury.xml
URL: http://svn.apache.org/viewvc/maven/components/trunk/build-mercury.xml?rev=762576&r1=762575&r2=762576&view=diff
==============================================================================
--- maven/components/trunk/build-mercury.xml (original)
+++ maven/components/trunk/build-mercury.xml Tue Apr 7 00:18:23 2009
@@ -67,9 +67,13 @@
<property name="maven.repo.central" value="http://repository.sonatype.org/content/groups/public"/>
<!--
<property name="maven.repo.central" value="http://repo1.maven.org/maven2"/>
+ <property name="maven.repo.update.policy" value="daily"/>
+ <property name="maven.repo.update.policy" value="always"/>
-->
<property name="maven.repo.update.policy" value="daily"/>
-
+
+ <property name="maven.repo.system" value="don.t"/>
+
<condition property="do.not.clean.local.repo">
<not>
<isset property="clean.local.repo"/>
@@ -89,6 +93,52 @@
<mkdir dir="${maven.repo.local}"/>
</target>
+ <target name="flip-default-repository" unless="do.not.flip.repository">
+
+ <replace dir="${basedir}/maven-repository/src/main/java">
+ <include name="**/LegacyRepositorySystem.java"/>
+ <replacefilter token='@Component( role = RepositorySystem.class, hint = "default" )'
+ value='@Component( role = RepositorySystem.class, hint = "${legacy-hint}" )'/>
+ <replacefilter token='@Component( role = RepositorySystem.class, hint = "legacy" )'
+ value='@Component( role = RepositorySystem.class, hint = "${legacy-hint}" )'/>
+ </replace>
+
+ <replace dir="${basedir}/maven-repository-mercury/src/main/java">
+ <include name="**/MercuryRepositorySystem.java"/>
+ <replacefilter token='@Component( role = RepositorySystem.class, hint = "mercury" )'
+ value='@Component( role = RepositorySystem.class, hint = "${mercury-hint}" )'/>
+ <replacefilter token='@Component( role = RepositorySystem.class, hint = "default" )'
+ value='@Component( role = RepositorySystem.class, hint = "${mercury-hint}" )'/>
+ </replace>
+
+ <echo>maven.repo.system is ${maven.repo.system}, flip: legacy-hint=${legacy-hint}, mercury-hint=${mercury-hint}</echo>
+
+ </target>
+
+ <target name="flip-default-repository-system" description="flips repository system impl">
+
+ <condition property="legacy-hint" value="default">
+ <equals arg1="${maven.repo.system}" arg2="legacy"/>
+ </condition>
+ <condition property="mercury-hint" value="mercury">
+ <equals arg1="${maven.repo.system}" arg2="legacy"/>
+ </condition>
+
+ <condition property="legacy-hint" value="legacy">
+ <equals arg1="${maven.repo.system}" arg2="mercury"/>
+ </condition>
+ <condition property="mercury-hint" value="default">
+ <equals arg1="${maven.repo.system}" arg2="mercury"/>
+ </condition>
+
+ <condition property="do.not.flip.repository" value="default">
+ <equals arg1="${maven.repo.system}" arg2="don.t"/>
+ </condition>
+
+ <antcall target="flip-default-repository"/>
+
+ </target>
+
<target name="pull" depends="init,clean-local-repo" unless="skip.pull">
<property name="verbose" value="false"/>
<!-- Pull the dependencies that Maven needs to build -->
@@ -219,7 +269,7 @@
<modello file="maven-compat/src/main/mdo/metadata.mdo"/>
</target>
- <target name="compile-boot" depends="generate-sources" description="compiles the bootstrap sources">
+ <target name="compile-boot" depends="generate-sources,flip-default-repository-system" description="compiles the bootstrap sources">
<path id="sources">
<dirset dir=".">
@@ -253,6 +303,12 @@
<arg value="install"/>
<arg value="-Dmaven.repo.local=${maven.repo.local}"/>
<arg value="-Dsurefire.useFile=${surefire.useFile}"/>
+ <!-- <debug-the-bootstrap> -->
+ <jvmarg value="-Xdebug"/>
+ <jvmarg value="-Xnoagent"/>
+ <jvmarg value="-Djava.compiler=NONE"/>
+ <jvmarg value="-Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=8000"/>
+ <!-- </debug-the-bootstrap> -->
</java>
</target>
Modified: maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java?rev=762576&r1=762575&r2=762576&view=diff
==============================================================================
--- maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java (original)
+++ maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryAdaptor.java Tue Apr 7 00:18:23 2009
@@ -21,9 +21,14 @@
import java.io.File;
import java.net.MalformedURLException;
+import java.net.URI;
+import java.net.URISyntaxException;
import java.net.URL;
import java.util.ArrayList;
+import java.util.Collections;
+import java.util.HashMap;
import java.util.List;
+import java.util.Map;
import org.apache.maven.artifact.Artifact;
import org.apache.maven.artifact.factory.ArtifactFactory;
@@ -46,9 +51,13 @@
*/
public class MercuryAdaptor
{
+
+ private static Map<String, Repository> _repos = Collections.synchronizedMap( new HashMap<String, Repository>() );
+
public static List<Repository> toMercuryRepos( ArtifactRepository localRepository,
List<ArtifactRepository> remoteRepositories,
- DependencyProcessor dependencyProcessor )
+ DependencyProcessor dependencyProcessor
+ )
{
if ( localRepository == null && Util.isEmpty( remoteRepositories ) )
return null;
@@ -60,9 +69,25 @@
if ( localRepository != null )
{
- LocalRepositoryM2 lr =
- new LocalRepositoryM2( localRepository.getId(), new File( localRepository.getUrl() ),
- dependencyProcessor );
+ String url = localRepository.getUrl();
+
+ LocalRepositoryM2 lr = (LocalRepositoryM2) _repos.get( url );
+
+ if( lr == null )
+ try
+ {
+ URI rootURI = new URI( url );
+
+ File localRepoDir = new File( rootURI );
+
+ lr = new LocalRepositoryM2( localRepository.getId(), localRepoDir, dependencyProcessor );
+
+ _repos.put( url, lr );
+ }
+ catch ( URISyntaxException e )
+ {
+ throw new IllegalArgumentException( e );
+ }
res.add( lr );
}
@@ -70,16 +95,24 @@
{
for ( ArtifactRepository ar : remoteRepositories )
{
- Server server;
- try
+ String url = ar.getUrl();
+
+ RemoteRepositoryM2 rr = (RemoteRepositoryM2) _repos.get( url );
+
+ if( rr == null )
{
- server = new Server( ar.getId(), new URL( ar.getUrl() ) );
- }
- catch ( MalformedURLException e )
- {
- throw new IllegalArgumentException( e );
+ Server server;
+ try
+ {
+ server = new Server( ar.getId(), new URL( url ) );
+ }
+ catch ( MalformedURLException e )
+ {
+ throw new IllegalArgumentException( e );
+ }
+ rr = new RemoteRepositoryM2( server, dependencyProcessor );
+ _repos.put( url, rr );
}
- RemoteRepositoryM2 rr = new RemoteRepositoryM2( server, dependencyProcessor );
res.add( rr );
}
Modified: maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java?rev=762576&r1=762575&r2=762576&view=diff
==============================================================================
--- maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java (original)
+++ maven/components/trunk/maven-repository-mercury/src/main/java/org/apache/maven/repository/mercury/MercuryRepositorySystem.java Tue Apr 7 00:18:23 2009
@@ -25,6 +25,7 @@
import org.apache.maven.artifact.resolver.ArtifactResolutionException;
import org.apache.maven.artifact.resolver.ArtifactResolutionRequest;
import org.apache.maven.artifact.resolver.ArtifactResolutionResult;
+import org.apache.maven.mercury.artifact.Artifact;
import org.apache.maven.mercury.artifact.ArtifactMetadata;
import org.apache.maven.mercury.artifact.ArtifactQueryList;
import org.apache.maven.mercury.artifact.ArtifactScopeEnum;
@@ -48,7 +49,7 @@
* @author Oleg Gusakov
* @version $Id$
*/
-@Component( role = RepositorySystem.class, hint = "mercury" )
+@Component( role = RepositorySystem.class, hint = "default" )
public class MercuryRepositorySystem
extends LegacyRepositorySystem
implements RepositorySystem
@@ -83,15 +84,25 @@
try
{
- List<ArtifactMetadata> mercuryMetadataList =
- _mercury.resolve( repos, null, MercuryAdaptor.toMercuryMetadata( request.getArtifact() ) );
+ org.apache.maven.artifact.Artifact mavenRootArtifact = request.getArtifact();
+
+ ArtifactMetadata rootMd = MercuryAdaptor.toMercuryMetadata( mavenRootArtifact );
+
+ List<ArtifactMetadata> mercuryMetadataList = _mercury.resolve( repos, null, rootMd );
List<org.apache.maven.mercury.artifact.Artifact> mercuryArtifactList =
_mercury.read( repos, mercuryMetadataList );
if ( !Util.isEmpty( mercuryArtifactList ) )
+ {
for ( org.apache.maven.mercury.artifact.Artifact a : mercuryArtifactList )
result.addArtifact( MercuryAdaptor.toMavenArtifact( _artifactFactory, a ) );
+
+ // maven likes the original artifact instance - fill it in
+ Artifact mercuryRootArtifact = mercuryArtifactList.get( 0 );
+
+ mavenRootArtifact.setFile( mercuryRootArtifact.getFile() );
+ }
}
catch ( RepositoryException e )
{
Modified: maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java
URL: http://svn.apache.org/viewvc/maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java?rev=762576&r1=762575&r2=762576&view=diff
==============================================================================
--- maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java (original)
+++ maven/components/trunk/maven-repository/src/main/java/org/apache/maven/repository/LegacyRepositorySystem.java Tue Apr 7 00:18:23 2009
@@ -59,7 +59,7 @@
/**
* @author Jason van Zyl
*/
-@Component( role = RepositorySystem.class, hint = "default" )
+@Component( role = RepositorySystem.class, hint = "legacy" )
public class LegacyRepositorySystem
implements RepositorySystem
{
Modified: maven/components/trunk/mercury-ant-tasks-1.0-alpha-6-SNAPSHOT.jar
URL: http://svn.apache.org/viewvc/maven/components/trunk/mercury-ant-tasks-1.0-alpha-6-SNAPSHOT.jar?rev=762576&r1=762575&r2=762576&view=diff
==============================================================================
Binary files - no diff available.