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>