aboutsummaryrefslogtreecommitdiffstats
path: root/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java
diff options
context:
space:
mode:
Diffstat (limited to 'framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java')
-rw-r--r--framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java187
1 files changed, 187 insertions, 0 deletions
diff --git a/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java
new file mode 100644
index 00000000..b20bd72b
--- /dev/null
+++ b/framework/src/maven/apache-maven-3.3.3/maven-compat/src/main/java/org/apache/maven/repository/legacy/TransferListenerAdapter.java
@@ -0,0 +1,187 @@
+package org.apache.maven.repository.legacy;
+
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+import java.util.IdentityHashMap;
+import java.util.Map;
+
+import org.apache.maven.repository.ArtifactTransferEvent;
+import org.apache.maven.repository.ArtifactTransferListener;
+import org.apache.maven.repository.ArtifactTransferResource;
+import org.apache.maven.wagon.events.TransferEvent;
+import org.apache.maven.wagon.events.TransferListener;
+import org.apache.maven.wagon.repository.Repository;
+import org.apache.maven.wagon.resource.Resource;
+
+public class TransferListenerAdapter
+ implements TransferListener
+{
+
+ private final ArtifactTransferListener listener;
+
+ private final Map<Resource, ArtifactTransferResource> artifacts;
+
+ private final Map<Resource, Long> transfers;
+
+ public static TransferListener newAdapter( ArtifactTransferListener listener )
+ {
+ if ( listener == null )
+ {
+ return null;
+ }
+ else
+ {
+ return new TransferListenerAdapter( listener );
+ }
+ }
+
+ private TransferListenerAdapter( ArtifactTransferListener listener )
+ {
+ this.listener = listener;
+ this.artifacts = new IdentityHashMap<Resource, ArtifactTransferResource>();
+ this.transfers = new IdentityHashMap<Resource, Long>();
+ }
+
+ public void debug( String message )
+ {
+ }
+
+ public void transferCompleted( TransferEvent transferEvent )
+ {
+ ArtifactTransferEvent event = wrap( transferEvent );
+
+ Long transferred;
+ synchronized ( transfers )
+ {
+ transferred = transfers.remove( transferEvent.getResource() );
+ }
+ if ( transferred != null )
+ {
+ event.setTransferredBytes( transferred );
+ }
+
+ synchronized ( artifacts )
+ {
+ artifacts.remove( transferEvent.getResource() );
+ }
+
+ listener.transferCompleted( event );
+ }
+
+ public void transferError( TransferEvent transferEvent )
+ {
+ synchronized ( transfers )
+ {
+ transfers.remove( transferEvent.getResource() );
+ }
+ synchronized ( artifacts )
+ {
+ artifacts.remove( transferEvent.getResource() );
+ }
+ }
+
+ public void transferInitiated( TransferEvent transferEvent )
+ {
+ listener.transferInitiated( wrap( transferEvent ) );
+ }
+
+ public void transferProgress( TransferEvent transferEvent, byte[] buffer, int length )
+ {
+ Long transferred;
+ synchronized ( transfers )
+ {
+ transferred = transfers.get( transferEvent.getResource() );
+ if ( transferred == null )
+ {
+ transferred = (long) length;
+ }
+ else
+ {
+ transferred = transferred + length;
+ }
+ transfers.put( transferEvent.getResource(), transferred );
+ }
+
+ ArtifactTransferEvent event = wrap( transferEvent );
+ event.setDataBuffer( buffer );
+ event.setDataOffset( 0 );
+ event.setDataLength( length );
+ event.setTransferredBytes( transferred );
+
+ listener.transferProgress( event );
+ }
+
+ public void transferStarted( TransferEvent transferEvent )
+ {
+ listener.transferStarted( wrap( transferEvent ) );
+ }
+
+ private ArtifactTransferEvent wrap( TransferEvent event )
+ {
+ if ( event == null )
+ {
+ return null;
+ }
+ else
+ {
+ String wagon = event.getWagon().getClass().getName();
+
+ ArtifactTransferResource artifact = wrap( event.getWagon().getRepository(), event.getResource() );
+
+ ArtifactTransferEvent evt;
+ if ( event.getException() != null )
+ {
+ evt = new ArtifactTransferEvent( wagon, event.getException(), event.getRequestType(), artifact );
+ }
+ else
+ {
+ evt = new ArtifactTransferEvent( wagon, event.getEventType(), event.getRequestType(), artifact );
+ }
+
+ evt.setLocalFile( event.getLocalFile() );
+
+ return evt;
+ }
+ }
+
+ private ArtifactTransferResource wrap( Repository repository, Resource resource )
+ {
+ if ( resource == null )
+ {
+ return null;
+ }
+ else
+ {
+ synchronized ( artifacts )
+ {
+ ArtifactTransferResource artifact = artifacts.get( resource );
+
+ if ( artifact == null )
+ {
+ artifact = new MavenArtifact( repository.getUrl(), resource );
+ artifacts.put( resource, artifact );
+ }
+
+ return artifact;
+ }
+ }
+ }
+
+}