From 4fb3387944b3afa2a6ab1d7d22420185d449787f Mon Sep 17 00:00:00 2001 From: Olivier Lamy Date: Mon, 2 Apr 2012 07:17:50 +0000 Subject: [PATCH] cleanup logic to upload artifacts groupId,artifactId,version,packaging can be changed at save time git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1308255 13f79535-47bb-0310-9956-ffa450edef68 --- .../api/DefaultFileUploadService.java | 88 ++++++++++--------- .../ui/services/api/FileUploadService.java | 5 +- .../ui/services/model/FileMetadata.java | 52 ----------- .../webapp/js/archiva/artifacts-management.js | 14 +-- 4 files changed, 52 insertions(+), 107 deletions(-) diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java b/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java index 07253e372..56af9bf14 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/DefaultFileUploadService.java @@ -207,7 +207,8 @@ public class DefaultFileUploadService return fileMetadatas == null ? Collections.emptyList() : fileMetadatas; } - public Boolean save( String repositoryId, final String groupId, final String artifactId, final boolean generatePom ) + public Boolean save( String repositoryId, final String groupId, final String artifactId, String version, + String packaging, final boolean generatePom ) throws ArchivaRestServiceException { List fileMetadatas = @@ -231,7 +232,8 @@ public class DefaultFileUploadService { FileMetadata fileMetadata = iterator.next(); log.debug( "fileToAdd: {}", fileMetadata ); - saveFile( repositoryId, fileMetadata, generatePom && !pomGenerated ); + saveFile( repositoryId, fileMetadata, generatePom && !pomGenerated, groupId, artifactId, version, + packaging ); pomGenerated = true; } @@ -248,13 +250,14 @@ public class DefaultFileUploadService { FileMetadata fileMetadata = iterator.next(); log.debug( "fileToAdd: {}", fileMetadata ); - savePomFile( repositoryId, fileMetadata ); + savePomFile( repositoryId, fileMetadata, groupId, artifactId, version, packaging ); } return Boolean.TRUE; } - protected void savePomFile( String repositoryId, FileMetadata fileMetadata ) + protected void savePomFile( String repositoryId, FileMetadata fileMetadata, String groupId, String artifactId, + String version, String packaging ) throws ArchivaRestServiceException { @@ -266,11 +269,11 @@ public class DefaultFileUploadService ManagedRepository repoConfig = managedRepositoryAdmin.getManagedRepository( repositoryId ); ArtifactReference artifactReference = new ArtifactReference(); - artifactReference.setArtifactId( fileMetadata.getArtifactId() ); - artifactReference.setGroupId( fileMetadata.getGroupId() ); - artifactReference.setVersion( fileMetadata.getVersion() ); + artifactReference.setArtifactId( artifactId ); + artifactReference.setGroupId( groupId ); + artifactReference.setVersion( version ); artifactReference.setClassifier( fileMetadata.getClassifier() ); - artifactReference.setType( fileMetadata.getPackaging() ); + artifactReference.setType( packaging ); ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); @@ -309,7 +312,8 @@ public class DefaultFileUploadService } } - protected void saveFile( String repositoryId, FileMetadata fileMetadata, boolean generatePom ) + protected void saveFile( String repositoryId, FileMetadata fileMetadata, boolean generatePom, String groupId, + String artifactId, String version, String packaging ) throws ArchivaRestServiceException { try @@ -318,11 +322,11 @@ public class DefaultFileUploadService ManagedRepository repoConfig = managedRepositoryAdmin.getManagedRepository( repositoryId ); ArtifactReference artifactReference = new ArtifactReference(); - artifactReference.setArtifactId( fileMetadata.getArtifactId() ); - artifactReference.setGroupId( fileMetadata.getGroupId() ); - artifactReference.setVersion( fileMetadata.getVersion() ); + artifactReference.setArtifactId( artifactId ); + artifactReference.setGroupId( groupId ); + artifactReference.setVersion( version ); artifactReference.setClassifier( fileMetadata.getClassifier() ); - artifactReference.setType( fileMetadata.getPackaging() ); + artifactReference.setType( packaging ); ManagedRepositoryContent repository = repositoryFactory.getManagedRepositoryContent( repositoryId ); @@ -342,7 +346,7 @@ public class DefaultFileUploadService File versionMetadataFile = new File( targetPath, MetadataTools.MAVEN_METADATA ); ArchivaRepositoryMetadata versionMetadata = getMetadata( versionMetadataFile ); - if ( VersionUtil.isSnapshot( fileMetadata.getVersion() ) ) + if ( VersionUtil.isSnapshot( version ) ) { TimeZone timezone = TimeZone.getTimeZone( "UTC" ); DateFormat fmt = new SimpleDateFormat( "yyyyMMdd.HHmmss" ); @@ -364,7 +368,7 @@ public class DefaultFileUploadService } String filename = artifactPath.substring( lastIndex + 1 ); - if ( VersionUtil.isSnapshot( fileMetadata.getVersion() ) ) + if ( VersionUtil.isSnapshot( version ) ) { filename = filename.replaceAll( "SNAPSHOT", timestamp + "-" + newBuildNumber ); } @@ -375,8 +379,7 @@ public class DefaultFileUploadService try { File targetFile = new File( targetPath, filename ); - if ( targetFile.exists() && !VersionUtil.isSnapshot( fileMetadata.getVersion() ) - && repoConfig.isBlockRedeployments() ) + if ( targetFile.exists() && !VersionUtil.isSnapshot( version ) && repoConfig.isBlockRedeployments() ) { throw new ArchivaRestServiceException( "Overwriting released artifacts in repository '" + repoConfig.getId() + "' is not allowed.", @@ -407,7 +410,8 @@ public class DefaultFileUploadService try { - File generatedPomFile = createPom( targetPath, pomFilename, fileMetadata ); + File generatedPomFile = + createPom( targetPath, pomFilename, fileMetadata, groupId, artifactId, version, packaging ); triggerAuditEvent( repoConfig.getId(), path + "/" + pomFilename, AuditEvent.UPLOAD_FILE ); if ( fixChecksums ) { @@ -427,12 +431,13 @@ public class DefaultFileUploadService if ( !archivaAdministration.getKnownContentConsumers().contains( "metadata-updater" ) ) { updateProjectMetadata( targetPath.getAbsolutePath(), lastUpdatedTimestamp, timestamp, newBuildNumber, - fixChecksums, fileMetadata ); + fixChecksums, fileMetadata, groupId, artifactId, version, packaging ); - if ( VersionUtil.isSnapshot( fileMetadata.getVersion() ) ) + if ( VersionUtil.isSnapshot( version ) ) { updateVersionMetadata( versionMetadata, versionMetadataFile, lastUpdatedTimestamp, timestamp, - newBuildNumber, fixChecksums, fileMetadata ); + newBuildNumber, fixChecksums, fileMetadata, groupId, artifactId, version, + packaging ); } } } @@ -471,15 +476,16 @@ public class DefaultFileUploadService return metadata; } - private File createPom( File targetPath, String filename, FileMetadata fileMetadata ) + private File createPom( File targetPath, String filename, FileMetadata fileMetadata, String groupId, + String artifactId, String version, String packaging ) throws IOException { Model projectModel = new Model(); projectModel.setModelVersion( "4.0.0" ); - projectModel.setGroupId( fileMetadata.getGroupId() ); - projectModel.setArtifactId( fileMetadata.getArtifactId() ); - projectModel.setVersion( fileMetadata.getVersion() ); - projectModel.setPackaging( fileMetadata.getPackaging() ); + projectModel.setGroupId( groupId ); + projectModel.setArtifactId( artifactId ); + projectModel.setVersion( version ); + projectModel.setPackaging( packaging ); File pomFile = new File( targetPath, filename ); MavenXpp3Writer writer = new MavenXpp3Writer(); @@ -547,11 +553,12 @@ public class DefaultFileUploadService * Update artifact level metadata. If it does not exist, create the metadata and fix checksums if necessary. */ private void updateProjectMetadata( String targetPath, Date lastUpdatedTimestamp, String timestamp, int buildNumber, - boolean fixChecksums, FileMetadata fileMetadata ) + boolean fixChecksums, FileMetadata fileMetadata, String groupId, + String artifactId, String version, String packaging ) throws RepositoryMetadataException { List availableVersions = new ArrayList(); - String latestVersion = fileMetadata.getVersion(); + String latestVersion = version; File projectDir = new File( targetPath ).getParentFile(); File projectMetadataFile = new File( projectDir, MetadataTools.MAVEN_METADATA ); @@ -564,36 +571,36 @@ public class DefaultFileUploadService Collections.sort( availableVersions, VersionComparator.getInstance() ); - if ( !availableVersions.contains( fileMetadata.getVersion() ) ) + if ( !availableVersions.contains( version ) ) { - availableVersions.add( fileMetadata.getVersion() ); + availableVersions.add( version ); } latestVersion = availableVersions.get( availableVersions.size() - 1 ); } else { - availableVersions.add( fileMetadata.getVersion() ); + availableVersions.add( version ); - projectMetadata.setGroupId( fileMetadata.getGroupId() ); - projectMetadata.setArtifactId( fileMetadata.getArtifactId() ); + projectMetadata.setGroupId( groupId ); + projectMetadata.setArtifactId( artifactId ); } if ( projectMetadata.getGroupId() == null ) { - projectMetadata.setGroupId( fileMetadata.getGroupId() ); + projectMetadata.setGroupId( groupId ); } if ( projectMetadata.getArtifactId() == null ) { - projectMetadata.setArtifactId( fileMetadata.getArtifactId() ); + projectMetadata.setArtifactId( artifactId ); } projectMetadata.setLatestVersion( latestVersion ); projectMetadata.setLastUpdatedTimestamp( lastUpdatedTimestamp ); projectMetadata.setAvailableVersions( availableVersions ); - if ( !VersionUtil.isSnapshot( fileMetadata.getVersion() ) ) + if ( !VersionUtil.isSnapshot( version ) ) { projectMetadata.setReleasedVersion( latestVersion ); } @@ -612,14 +619,15 @@ public class DefaultFileUploadService */ private void updateVersionMetadata( ArchivaRepositoryMetadata metadata, File metadataFile, Date lastUpdatedTimestamp, String timestamp, int buildNumber, - boolean fixChecksums, FileMetadata fileMetadata ) + boolean fixChecksums, FileMetadata fileMetadata, String groupId, + String artifactId, String version, String packaging ) throws RepositoryMetadataException { if ( !metadataFile.exists() ) { - metadata.setGroupId( fileMetadata.getGroupId() ); - metadata.setArtifactId( fileMetadata.getArtifactId() ); - metadata.setVersion( fileMetadata.getVersion() ); + metadata.setGroupId( groupId ); + metadata.setArtifactId( artifactId ); + metadata.setVersion( version ); } if ( metadata.getSnapshotVersion() == null ) diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java b/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java index 61abd8883..a61cb3478 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/api/FileUploadService.java @@ -67,12 +67,13 @@ public interface FileUploadService List getSessionFileMetadatas() throws ArchivaRestServiceException; - @Path( "save/{repositoryId}/{groupId}/{artifactId}" ) + @Path( "save/{repositoryId}/{groupId}/{artifactId}/{version}/{packaging}" ) @GET @Produces( { MediaType.APPLICATION_JSON, MediaType.APPLICATION_XML } ) @RedbackAuthorization( permissions = ArchivaRoleConstants.OPERATION_REPOSITORY_UPLOAD ) Boolean save( @PathParam( "repositoryId" ) String repositoryId, @PathParam( "groupId" ) String groupId, - @PathParam( "artifactId" ) String artifactId, @QueryParam( "generatePom" ) boolean generatePom ) + @PathParam( "artifactId" ) String artifactId, @PathParam( "version" ) String version, + @PathParam( "packaging" ) String packaging, @QueryParam( "generatePom" ) boolean generatePom ) throws ArchivaRestServiceException; diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java b/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java index 699d3ea7c..0d6a7893e 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/java/org/apache/archiva/webapp/ui/services/model/FileMetadata.java @@ -43,14 +43,6 @@ public class FileMetadata private String errorKey; - private String groupId; - - private String artifactId; - - private String version; - - private String packaging; - private String classifier; private boolean pomFile; @@ -134,46 +126,6 @@ public class FileMetadata this.errorKey = errorKey; } - public String getGroupId() - { - return groupId; - } - - public void setGroupId( String groupId ) - { - this.groupId = groupId; - } - - public String getArtifactId() - { - return artifactId; - } - - public void setArtifactId( String artifactId ) - { - this.artifactId = artifactId; - } - - public String getVersion() - { - return version; - } - - public void setVersion( String version ) - { - this.version = version; - } - - public String getPackaging() - { - return packaging; - } - - public void setPackaging( String packaging ) - { - this.packaging = packaging; - } - public String getClassifier() { return classifier; @@ -245,10 +197,6 @@ public class FileMetadata sb.append( ", deleteUrl='" ).append( deleteUrl ).append( '\'' ); sb.append( ", deleteType='" ).append( deleteType ).append( '\'' ); sb.append( ", errorKey='" ).append( errorKey ).append( '\'' ); - sb.append( ", groupId='" ).append( groupId ).append( '\'' ); - sb.append( ", artifactId='" ).append( artifactId ).append( '\'' ); - sb.append( ", version='" ).append( version ).append( '\'' ); - sb.append( ", packaging='" ).append( packaging ).append( '\'' ); sb.append( ", classifier='" ).append( classifier ).append( '\'' ); sb.append( ", pomFile=" ).append( pomFile ); sb.append( '}' ); diff --git a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js index 44f486cd5..5ef5b34fd 100644 --- a/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js +++ b/archiva-modules/archiva-web/archiva-webapp-js/src/main/webapp/js/archiva/artifacts-management.js @@ -47,6 +47,7 @@ define("archiva.artifacts-management",["jquery","i18n","order!utils","order!jque return; } var url="restServices/archivaUiServices/fileUploadService/save/"+this.repositoryId()+"/"+this.groupId()+"/"+this.artifactId(); + url+="/"+this.version()+"/"+this.packaging(); if (this.generatePom()){ url+="?generatePom=true"; } @@ -89,21 +90,8 @@ define("archiva.artifacts-management",["jquery","i18n","order!utils","order!jque } }); $('#fileupload').fileupload({ - add: function (e, data) { - if(!mainContent.find("#fileupload" ).valid()){ - return; - } - data.formData = { - groupId: artifactUploadViewModel.groupId(), - artifactId: artifactUploadViewModel.artifactId(), - version: artifactUploadViewModel.version(), - packaging: artifactUploadViewModel.packaging() - }; - $.blueimpUI.fileupload.prototype.options.add.call(this, e, data); - }, submit: function (e, data) { var $this = $(this); - $this.fileupload('send', data); artifactUploadViewModel.artifactUploads.push(new ArtifactUpload(data.formData.classifier,data.formData.pomFile)); return false; -- 2.39.5