diff --git a/pom.xml b/pom.xml index 4cd75a2..bac0f81 100644 --- a/pom.xml +++ b/pom.xml @@ -84,9 +84,42 @@ + + + org.codehaus.plexus + plexus-component-metadata + 1.5.5 + + + + generate-metadata + + + + + + javax.inject + javax.inject + 1 + + + org.codehaus.plexus + plexus-component-annotations + 1.5.5 + + + org.apache.maven.plugin-tools + maven-plugin-annotations + 3.2 + + + org.apache.maven + maven-project + 2.2.1 + junit junit diff --git a/src/main/java/org/kuali/maven/wagon/AbstractWagon.java b/src/main/java/org/kuali/maven/wagon/AbstractWagon.java index 22d587c..e10c512 100644 --- a/src/main/java/org/kuali/maven/wagon/AbstractWagon.java +++ b/src/main/java/org/kuali/maven/wagon/AbstractWagon.java @@ -163,7 +163,7 @@ public final void disconnect() throws ConnectionException { } public final void get(final String resourceName, final File destination) throws TransferFailedException, ResourceDoesNotExistException, AuthorizationException { - Resource resource = new Resource(resourceName); + S3Resource resource = new S3Resource(resourceName); transferListeners.fireTransferInitiated(resource, TransferEvent.REQUEST_GET); transferListeners.fireTransferStarted(resource, TransferEvent.REQUEST_GET); @@ -225,7 +225,7 @@ public final void openConnection() throws ConnectionException, AuthenticationExc } protected PutFileContext getPutFileContext(File source, String destination) { - Resource resource = new Resource(destination); + S3Resource resource = new S3Resource(destination); PutFileContext context = new PutFileContext(); context.setResource(resource); context.setProgress(new TransferProgress(resource, TransferEvent.REQUEST_PUT, transferListeners)); diff --git a/src/main/java/org/kuali/maven/wagon/S3Listener.java b/src/main/java/org/kuali/maven/wagon/S3Listener.java index e7ad0eb..41369e9 100644 --- a/src/main/java/org/kuali/maven/wagon/S3Listener.java +++ b/src/main/java/org/kuali/maven/wagon/S3Listener.java @@ -22,6 +22,7 @@ import org.apache.maven.wagon.events.SessionListener; import org.apache.maven.wagon.events.TransferEvent; import org.apache.maven.wagon.events.TransferListener; +import org.apache.maven.wagon.resource.Resource; import org.kuali.common.aws.s3.SimpleFormatter; import org.slf4j.Logger; import org.slf4j.LoggerFactory; @@ -40,7 +41,15 @@ public class S3Listener implements TransferListener, SessionListener { public void transferCompleted(final TransferEvent transferEvent) { TransferTracker tt = sessionTracker.getCurrentTransfer(); tt.setCompleted(System.currentTimeMillis()); - // System.out.println(); + Resource resource = transferEvent.getResource(); + if (resource instanceof S3Resource) { + final S3Resource s3resource = (S3Resource) resource; + if (transferEvent.getRequestType() == TransferEvent.REQUEST_PUT) { + log.info("Uploaded: " + s3resource.getUrl()); + } else { + log.info("Downloaded: " + s3resource.getUrl()); + } + } // log(tt.toString()); } @@ -74,7 +83,7 @@ public void transferStarted(final TransferEvent transferEvent) { } // System.out.print("[INFO] "); } - + protected String getURI(final TransferEvent event) { return getNormalizedURI(event.getWagon().getRepository().getUrl() + "/" + event.getResource().getName()); } diff --git a/src/main/java/org/kuali/maven/wagon/S3Resource.java b/src/main/java/org/kuali/maven/wagon/S3Resource.java new file mode 100644 index 0000000..71f1602 --- /dev/null +++ b/src/main/java/org/kuali/maven/wagon/S3Resource.java @@ -0,0 +1,38 @@ +/** + * Copyright 2014 Adobe Systems Incorporated + * + * Licensed under the Educational Community 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.opensource.org/licenses/ecl2.php + * + * 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. + */ +package org.kuali.maven.wagon; + +import org.apache.maven.wagon.resource.Resource; + +/** + * @author contexts) { protected void putResource(final File source, final String destination, final TransferProgress progress) throws IOException { // Create a new PutObjectRequest - PutObjectRequest request = getPutObjectRequest(source, destination, progress); + String key = getCanonicalKey(destination); + PutObjectRequest request = getPutObjectRequest(source, destination, key, progress); // Upload the file to S3, using multi-part upload for large files S3Utils.getInstance().upload(source, request, client, transferManager); + + progress.getResource().setURL(client.getResourceUrl(bucketName, key)); } protected String getDestinationPath(final String destination) { diff --git a/src/main/java/org/kuali/maven/wagon/TransferProgress.java b/src/main/java/org/kuali/maven/wagon/TransferProgress.java index 70406d0..b3e8c68 100644 --- a/src/main/java/org/kuali/maven/wagon/TransferProgress.java +++ b/src/main/java/org/kuali/maven/wagon/TransferProgress.java @@ -15,7 +15,6 @@ */ package org.kuali.maven.wagon; -import org.apache.maven.wagon.resource.Resource; /** * A class that encapsulates the notification of the transfer listeners for @@ -26,13 +25,13 @@ */ class TransferProgress { - private Resource resource; + private S3Resource resource; private int requestType; private TransferListenerSupport transferListeners; - public TransferProgress(Resource resource, int requestType, TransferListenerSupport listeners) { + public TransferProgress(S3Resource resource, int requestType, TransferListenerSupport listeners) { this.resource = resource; this.requestType = requestType; this.transferListeners = listeners; @@ -42,4 +41,7 @@ protected void notify(byte[] buffer, int length) { transferListeners.fireTransferProgress(resource, requestType, buffer, length); } + public S3Resource getResource() { + return resource; + } } diff --git a/src/main/resources/META-INF/plexus/components.xml b/src/main/resources/META-INF/plexus/components.xml deleted file mode 100644 index aa61ceb..0000000 --- a/src/main/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,27 +0,0 @@ - - - - - org.apache.maven.wagon.Wagon - s3 - org.kuali.maven.wagon.S3Wagon - per-lookup - - -