You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@maven.apache.org by jd...@apache.org on 2011/05/24 05:33:07 UTC
svn commit: r1126854 [2/2] - in
/maven/maven-3/branches/mirror-group-routing: ./ apache-maven/
maven-aether-provider/src/main/java/org/apache/maven/repository/internal/
maven-compat/ maven-core/ maven-core/src/main/java/org/apache/maven/
maven-core/src...
Added: maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/main/java/org/apache/maven/router/repository/WagonTransferListenerAdapter.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/main/java/org/apache/maven/router/repository/WagonTransferListenerAdapter.java?rev=1126854&view=auto
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/main/java/org/apache/maven/router/repository/WagonTransferListenerAdapter.java (added)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/main/java/org/apache/maven/router/repository/WagonTransferListenerAdapter.java Tue May 24 03:33:06 2011
@@ -0,0 +1,94 @@
+package org.apache.maven.router.repository;
+
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Apache License v2.0 which accompanies this distribution.
+ * The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * The Apache License v2.0 is available at
+ * http://www.apache.org/licenses/LICENSE-2.0.html
+ * You may elect to redistribute this code under either of these licenses.
+ *******************************************************************************/
+
+import java.io.File;
+
+import org.apache.maven.wagon.events.TransferEvent;
+import org.apache.maven.wagon.observers.AbstractTransferListener;
+import org.sonatype.aether.RequestTrace;
+import org.sonatype.aether.transfer.TransferCancelledException;
+import org.sonatype.aether.transfer.TransferEvent.EventType;
+import org.sonatype.aether.transfer.TransferEvent.RequestType;
+import org.sonatype.aether.transfer.TransferListener;
+import org.sonatype.aether.transfer.TransferResource;
+import org.sonatype.aether.util.listener.DefaultTransferEvent;
+import org.sonatype.aether.util.listener.DefaultTransferResource;
+
+/**
+ * An adapter to transform transfer events from Wagon into events for the repository system.
+ *
+ * @author Benjamin Bentmann
+ */
+class WagonTransferListenerAdapter
+ extends AbstractTransferListener
+{
+
+ private final TransferResource resource;
+
+ private final TransferListener delegate;
+
+ private long transferredBytes;
+
+ public WagonTransferListenerAdapter( TransferListener delegate, String repositoryUrl, String resourceName,
+ File file, RequestTrace trace )
+ {
+ this.delegate = delegate;
+ resource = new DefaultTransferResource( repositoryUrl, resourceName, file, trace );
+ }
+
+ @Override
+ public void transferStarted( TransferEvent event )
+ {
+ transferredBytes = 0;
+ try
+ {
+ delegate.transferStarted( wrap( event, EventType.STARTED ) );
+ }
+ catch ( TransferCancelledException e )
+ {
+ // wagon transfers are not freely abortable
+ }
+ }
+
+ @Override
+ public void transferProgress( TransferEvent event, byte[] buffer, int length )
+ {
+ transferredBytes += length;
+ try
+ {
+ delegate.transferProgressed( wrap( event, EventType.PROGRESSED ).setDataBuffer( buffer, 0, length ) );
+ }
+ catch ( TransferCancelledException e )
+ {
+ // wagon transfers are not freely abortable
+ }
+ }
+
+ private DefaultTransferEvent wrap( TransferEvent event, EventType type )
+ {
+ DefaultTransferEvent e = newEvent();
+ e.setRequestType( event.getRequestType() == TransferEvent.REQUEST_PUT ? RequestType.PUT : RequestType.GET );
+ e.setType( type );
+ return e;
+ }
+
+ public DefaultTransferEvent newEvent()
+ {
+ DefaultTransferEvent e = new DefaultTransferEvent();
+ e.setResource( resource );
+ e.setTransferredBytes( transferredBytes );
+ return e;
+ }
+
+}
Propchange: maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/main/java/org/apache/maven/router/repository/WagonTransferListenerAdapter.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/java/org/apache/maven/router/repository/TestSuiteHttpWagon.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/java/org/apache/maven/router/repository/TestSuiteHttpWagon.java?rev=1126854&view=auto
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/java/org/apache/maven/router/repository/TestSuiteHttpWagon.java (added)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/java/org/apache/maven/router/repository/TestSuiteHttpWagon.java Tue May 24 03:33:06 2011
@@ -0,0 +1,114 @@
+package org.apache.maven.router.repository;
+
+/*******************************************************************************
+ * Copyright (c) 2010-2011 Sonatype, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * and Apache License v2.0 which accompanies this distribution.
+ * The Eclipse Public License is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ * The Apache License v2.0 is available at
+ * http://www.apache.org/licenses/LICENSE-2.0.html
+ * You may elect to redistribute this code under either of these licenses.
+ *******************************************************************************/
+
+import java.util.Map;
+
+import org.apache.maven.router.repository.WagonProvider;
+import org.apache.maven.router.repository.WagonRepositoryConnector;
+import org.apache.maven.wagon.ConnectionException;
+import org.apache.maven.wagon.Wagon;
+import org.apache.maven.wagon.providers.http.LightweightHttpWagon;
+import org.sonatype.aether.RepositorySystemSession;
+import org.sonatype.aether.repository.RemoteRepository;
+import org.sonatype.aether.spi.connector.RepositoryConnector;
+import org.sonatype.aether.spi.connector.RepositoryConnectorFactory;
+import org.sonatype.aether.spi.log.NullLogger;
+import org.sonatype.aether.test.impl.TestFileProcessor;
+import org.sonatype.aether.test.util.connector.suite.ConnectorTestSetup.AbstractConnectorTestSetup;
+import org.sonatype.aether.test.util.connector.suite.ConnectorTestSuite;
+import org.sonatype.aether.transfer.NoRepositoryConnectorException;
+import org.sonatype.tests.http.server.jetty.behaviour.ResourceServer;
+import org.sonatype.tests.http.server.jetty.impl.JettyServerProvider;
+
+/**
+ * @author Benjamin Hanzelmann
+ */
+public class TestSuiteHttpWagon
+ extends ConnectorTestSuite
+{
+
+ private static class JettyConnectorTestSetup
+ extends AbstractConnectorTestSetup
+ {
+
+ private JettyServerProvider provider;
+
+ public RemoteRepository before( RepositorySystemSession session, Map<String, Object> context )
+ throws Exception
+ {
+ provider = new JettyServerProvider();
+ provider.initServer();
+ provider.addBehaviour( "/*", new ResourceServer() );
+ provider.start();
+ return new RemoteRepository( "jetty-repo", "default", provider.getUrl().toString() + "/repo" );
+ }
+
+ public RepositoryConnectorFactory factory()
+ {
+ return new RepositoryConnectorFactory()
+ {
+
+ public RepositoryConnector newInstance( RepositorySystemSession session, RemoteRepository repository )
+ throws NoRepositoryConnectorException
+ {
+ return new WagonRepositoryConnector( new WagonProvider()
+ {
+
+ public void release( Wagon wagon )
+ {
+ try
+ {
+ wagon.disconnect();
+ }
+ catch ( ConnectionException e )
+ {
+ throw new RuntimeException( e.getMessage(), e );
+ }
+ }
+
+ public Wagon lookup( String roleHint )
+ throws Exception
+ {
+ return new LightweightHttpWagon();
+ }
+
+ }, null, repository, session, TestFileProcessor.INSTANCE, NullLogger.INSTANCE );
+ }
+
+ public int getPriority()
+ {
+ return 0;
+ }
+ };
+ }
+
+ @Override
+ public void after( RepositorySystemSession session, RemoteRepository repository, Map<String, Object> context )
+ throws Exception
+ {
+ if ( provider != null )
+ {
+ provider.stop();
+ provider = null;
+ }
+ }
+
+ }
+
+ public TestSuiteHttpWagon()
+ {
+ super( new JettyConnectorTestSetup() );
+ }
+
+}
Propchange: maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/java/org/apache/maven/router/repository/TestSuiteHttpWagon.java
------------------------------------------------------------------------------
svn:eol-style = native
Added: maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/resources/logback-test.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/resources/logback-test.xml?rev=1126854&view=auto
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/resources/logback-test.xml (added)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/resources/logback-test.xml Tue May 24 03:33:06 2011
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!--
+ ~ Copyright (c) 2010-2011 Sonatype, Inc.
+ ~ All rights reserved. This program and the accompanying materials
+ ~ are made available under the terms of the Eclipse Public License v1.0
+ ~ and Apache License v2.0 which accompanies this distribution.
+ ~ The Eclipse Public License is available at
+ ~ http://www.eclipse.org/legal/epl-v10.html
+ ~ The Apache License v2.0 is available at
+ ~ http://www.apache.org/licenses/LICENSE-2.0.html
+ ~ You may elect to redistribute this code under either of these licenses.
+-->
+
+<configuration>
+ <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
+ <encoder>
+ <pattern>%d{HH:mm:ss.SSS} [%-18thread] %c{1} [%p] %m%n</pattern>
+ </encoder>
+ </appender>
+
+ <logger name="org.sonatype.tests.jetty.server" level="INFO"/>
+ <logger name="org.sonatype.tests.jetty.server.behaviour" level="DEBUG"/>
+ <logger name="org.sonatype.tests" level="DEBUG"/>
+
+ <root level="WARN">
+ <appender-ref ref="CONSOLE"/>
+ </root>
+</configuration>
Propchange: maven/maven-3/branches/mirror-group-routing/maven-routem-aether-wagon-connector/src/test/resources/logback-test.xml
------------------------------------------------------------------------------
svn:eol-style = native
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java?rev=1126854&r1=1126853&r2=1126854&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/ArtifactRouter.java Tue May 24 03:33:06 2011
@@ -30,6 +30,8 @@ import java.util.Random;
public final class ArtifactRouter
{
+ public static final String SESSION_KEY = ArtifactRouter.class.getName();
+
private List<MirrorRoute> mirrors = new ArrayList<MirrorRoute>();
private Map<GroupPattern, GroupRoute> groups = new HashMap<GroupPattern, GroupRoute>();
@@ -132,7 +134,7 @@ public final class ArtifactRouter
if ( matches.isEmpty() )
{
- return GroupRoute.CENTRAL;
+ return GroupRoute.DEFAULT;
}
else
{
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/GroupRoute.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/GroupRoute.java?rev=1126854&r1=1126853&r2=1126854&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/GroupRoute.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/GroupRoute.java Tue May 24 03:33:06 2011
@@ -28,7 +28,7 @@ import java.util.List;
public final class GroupRoute
{
- public static final GroupRoute CENTRAL = new GroupRoute( "http://repo1.maven.org/maven2", new GroupPattern( "*" ) );
+ public static final GroupRoute DEFAULT = new GroupRoute( "http://repo1.maven.org/maven2", new GroupPattern( "*" ) );
private final String canonicalUrl;
Modified: maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/MirrorRoute.java
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/MirrorRoute.java?rev=1126854&r1=1126853&r2=1126854&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/MirrorRoute.java (original)
+++ maven/maven-3/branches/mirror-group-routing/maven-routem-api/src/main/java/org/apache/maven/artifact/router/MirrorRoute.java Tue May 24 03:33:06 2011
@@ -27,6 +27,7 @@ import java.util.Collections;
import java.util.HashSet;
import java.util.Set;
+// TODO: Needs to have a layout field!
public final class MirrorRoute
implements Comparable<MirrorRoute>
{
@@ -185,4 +186,9 @@ public final class MirrorRoute
return mirrorOfUrls.contains( check );
}
+ public String getLayout()
+ {
+ return "default";
+ }
+
}
Modified: maven/maven-3/branches/mirror-group-routing/pom.xml
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/pom.xml?rev=1126854&r1=1126853&r2=1126854&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/pom.xml (original)
+++ maven/maven-3/branches/mirror-group-routing/pom.xml Tue May 24 03:33:06 2011
@@ -49,6 +49,7 @@
<jxpathVersion>1.3</jxpathVersion>
<aetherVersion>1.11</aetherVersion>
<maven.test.redirectTestOutputToFile>true</maven.test.redirectTestOutputToFile>
+ <plexusContainerVersion>1.5.5</plexusContainerVersion>
</properties>
<mailingLists>
@@ -142,6 +143,7 @@
<module>maven-compat</module>
<module>maven-routem-api</module>
<module>maven-routem-impl</module>
+ <module>maven-routem-aether-wagon-connector</module>
</modules>
<scm>
@@ -235,6 +237,11 @@
<artifactId>maven-repository-metadata</artifactId>
<version>${project.version}</version>
</dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-routem-aether-wagon-connector</artifactId>
+ <version>${project.version}</version>
+ </dependency>
<!--bootstrap-end-comment-->
<!-- Plexus -->
<dependency>
@@ -267,6 +274,12 @@
</dependency>
<dependency>
<groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>${plexusContainerVersion}</version>
+ <scope>provided</scope>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
<artifactId>plexus-classworlds</artifactId>
<version>${classWorldsVersion}</version>
</dependency>
@@ -318,17 +331,6 @@
<artifactId>aether-util</artifactId>
<version>${aetherVersion}</version>
</dependency>
- <dependency>
- <groupId>org.sonatype.aether</groupId>
- <artifactId>aether-connector-wagon</artifactId>
- <version>${aetherVersion}</version>
- <exclusions>
- <exclusion>
- <groupId>org.codehaus.plexus</groupId>
- <artifactId>plexus-container-default</artifactId>
- </exclusion>
- </exclusions>
- </dependency>
<!-- Commons -->
<dependency>
<groupId>commons-cli</groupId>
Modified: maven/maven-3/branches/mirror-group-routing/pom.xml.orig
URL: http://svn.apache.org/viewvc/maven/maven-3/branches/mirror-group-routing/pom.xml.orig?rev=1126854&r1=1126853&r2=1126854&view=diff
==============================================================================
--- maven/maven-3/branches/mirror-group-routing/pom.xml.orig (original)
+++ maven/maven-3/branches/mirror-group-routing/pom.xml.orig Tue May 24 03:33:06 2011
@@ -37,7 +37,7 @@
<classWorldsVersion>2.4</classWorldsVersion>
<commonsCliVersion>1.2</commonsCliVersion>
<easyMockVersion>1.2_Java1.3</easyMockVersion>
- <junitVersion>3.8.2</junitVersion>
+ <junitVersion>4.8.2</junitVersion>
<plexusVersion>1.5.5</plexusVersion>
<plexusInterpolationVersion>1.14</plexusInterpolationVersion>
<plexusUtilsVersion>2.0.6</plexusUtilsVersion>
@@ -141,6 +141,7 @@
<module>maven-embedder</module>
<module>maven-compat</module>
<module>maven-routem-api</module>
+ <module>maven-routem-impl</module>
</modules>
<scm>
@@ -176,6 +177,11 @@
</dependency>
<dependency>
<groupId>org.apache.maven</groupId>
+ <artifactId>maven-routem-impl</artifactId>
+ <version>${project.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
<artifactId>maven-model</artifactId>
<version>${project.version}</version>
</dependency>