You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2012/03/30 00:52:48 UTC
svn commit: r1307153 - in
/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main:
java/org/apache/archiva/webapp/ui/services/api/ webapp/js/archiva/
webapp/js/templates/archiva/
Author: olamy
Date: Thu Mar 29 22:52:48 2012
New Revision: 1307153
URL: http://svn.apache.org/viewvc?rev=1307153&view=rev
Log:
use MultipartBody as a parameter for the FileUpload service and parse various parameters
Modified:
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js
archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java?rev=1307153&r1=1307152&r2=1307153&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java Thu Mar 29 22:52:48 2012
@@ -21,7 +21,10 @@ package org.apache.archiva.webapp.ui.ser
import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
import org.apache.archiva.webapp.ui.services.model.FileMetadata;
import org.apache.commons.io.IOUtils;
+import org.apache.commons.lang.BooleanUtils;
import org.apache.commons.lang.SystemUtils;
+import org.apache.cxf.jaxrs.ext.multipart.Attachment;
+import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Service;
@@ -70,6 +73,44 @@ public class DefaultFileUploadService
}
}
+ public FileMetadata post( MultipartBody multipartBody )
+ throws ArchivaRestServiceException
+ {
+
+ try
+ {
+ String groupId =
+ IOUtils.toString( multipartBody.getAttachment( "groupId" ).getDataHandler().getInputStream() );
+ String artifactId =
+ IOUtils.toString( multipartBody.getAttachment( "artifactId" ).getDataHandler().getInputStream() );
+ String version =
+ IOUtils.toString( multipartBody.getAttachment( "version" ).getDataHandler().getInputStream() );
+ String packaging =
+ IOUtils.toString( multipartBody.getAttachment( "packaging" ).getDataHandler().getInputStream() );
+
+ boolean generatePom = BooleanUtils.toBoolean(
+ IOUtils.toString( multipartBody.getAttachment( "generatePom" ).getDataHandler().getInputStream() ) );
+
+ String classifier =
+ IOUtils.toString( multipartBody.getAttachment( "classifier" ).getDataHandler().getInputStream() );
+
+ log.info( "uploading file:" + groupId + ":" + artifactId + ":" + version );
+ Attachment file = multipartBody.getAttachment( "files[]" );
+ File tmpFile = File.createTempFile( "upload-artifact", "tmp" );
+ tmpFile.deleteOnExit();
+ IOUtils.copy( file.getDataHandler().getInputStream(), new FileOutputStream( tmpFile ) );
+ FileMetadata fileMetadata = new FileMetadata( "thefile", tmpFile.length(), "theurl" );
+ fileMetadata.setDeleteUrl( tmpFile.getName() );
+ return fileMetadata;
+ }
+ catch ( IOException e )
+ {
+ throw new ArchivaRestServiceException( e.getMessage(),
+ Response.Status.INTERNAL_SERVER_ERROR.getStatusCode() );
+ }
+
+ }
+
public Boolean deleteFile( String fileName )
throws ArchivaRestServiceException
{
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java?rev=1307153&r1=1307152&r2=1307153&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java Thu Mar 29 22:52:48 2012
@@ -20,6 +20,7 @@ package org.apache.archiva.webapp.ui.ser
import org.apache.archiva.rest.api.services.ArchivaRestServiceException;
import org.apache.archiva.webapp.ui.services.model.FileMetadata;
+import org.apache.cxf.jaxrs.ext.multipart.MultipartBody;
import org.codehaus.plexus.redback.authorization.RedbackAuthorization;
import javax.ws.rs.Consumes;
@@ -28,7 +29,6 @@ import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.PathParam;
import javax.ws.rs.Produces;
-import javax.ws.rs.QueryParam;
import javax.ws.rs.core.MediaType;
/**
@@ -39,15 +39,15 @@ import javax.ws.rs.core.MediaType;
public interface FileUploadService
{
- //@Path( "upload" )
@POST
@Consumes( MediaType.MULTIPART_FORM_DATA )
@Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } )
@RedbackAuthorization( noRestriction = true )
- FileMetadata post( @QueryParam( "g" ) String groupId, @QueryParam( "a" ) String artifactId,
- @QueryParam( "v" ) String version, @QueryParam( "p" ) String packaging,
- @QueryParam( "c" ) String classifier, @QueryParam( "r" ) String repositoryId,
- @QueryParam( "generatePom" ) String generatePom )
+ //FileMetadata post( @FormParam( "groupId" ) String groupId, @FormParam( "artifactId" ) String artifactId,
+ // @FormParam( "version" ) String version, @FormParam( "packaging" ) String packaging,
+ // @FormParam( "classifier" ) String classifier, @FormParam( "repositoryId" ) String repositoryId,
+ // @FormParam( "generatePom" ) String generatePom )
+ FileMetadata post( MultipartBody multipartBody )// @Multipart( value = "files[]", type = "*/*" ) Attachment file )
throws ArchivaRestServiceException;
@Path( "{fileName}" )
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js?rev=1307153&r1=1307152&r2=1307153&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js Thu Mar 29 22:52:48 2012
@@ -27,7 +27,14 @@ define("archiva.artifacts-management",["
dataType: 'json',
success: function(data) {
mainContent.html($("#file-upload-tmpl" ).tmpl({managedRepositories: data}));
- $('#fileupload').fileupload();
+ $('#fileupload').fileupload({
+ add: function (e, data) {
+ data.timeStamp = $.now();
+ $.blueimpUI.fileupload.prototype
+ .options.add.call(this, e, data);
+ }
+ }
+ );
}
});
Modified: archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html
URL: http://svn.apache.org/viewvc/archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html?rev=1307153&r1=1307152&r2=1307153&view=diff
==============================================================================
--- archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html (original)
+++ archiva/trunk/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/templates/archiva/artifacts-management.html Thu Mar 29 22:52:48 2012
@@ -94,7 +94,7 @@
{% for (var i=0, file; file=o.files[i]; i++) { %}
<tr class="template-upload">
<td class="name"><span>{%=file.name%}</span></td>
- <td><input type="text" placeholder="classifier"></td>
+ <td><input type="text" id="classifier" name="classifier" placeholder="classifier" value=""></td>
<td class="size"><span>{%=o.formatFileSize(file.size)%}</span></td>
{% if (file.error) { %}
<td class="error" colspan="2">