]> source.dussan.org Git - archiva.git/commitdiff
implements the method with metadata-store-file
authorOlivier Lamy <olamy@apache.org>
Tue, 26 Jun 2012 17:25:08 +0000 (17:25 +0000)
committerOlivier Lamy <olamy@apache.org>
Tue, 26 Jun 2012 17:25:08 +0000 (17:25 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1354120 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/plugins/metadata-store-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java

index 562b89643fbf73eda15450e5b3a02578a02af428..6d9c9bea81320c3a7cbf8b0d90a2a86ace136fb3 100644 (file)
@@ -600,8 +600,43 @@ public class FileMetadataRepository
     public void removeArtifact( ArtifactMetadata artifactMetadata, String baseVersion )
         throws MetadataRepositoryException
     {
-        // FIXME implement this
-        throw new UnsupportedOperationException();
+
+        File directory = new File( getDirectory( artifactMetadata.getRepositoryId() ),
+                                   artifactMetadata.getNamespace() + "/" + artifactMetadata.getProject() + "/"
+                                       + baseVersion );
+
+        Properties properties = readOrCreateProperties( directory, PROJECT_VERSION_METADATA_KEY );
+
+        String id = artifactMetadata.getId();
+
+        properties.remove( "artifact:updated:" + id );
+        properties.remove( "artifact:whenGathered:" + id );
+        properties.remove( "artifact:size:" + id );
+        properties.remove( "artifact:md5:" + id );
+        properties.remove( "artifact:sha1:" + id );
+        properties.remove( "artifact:version:" + id );
+        properties.remove( "artifact:facetIds:" + id );
+
+        String prefix = "artifact:facet:" + id + ":";
+        for ( Object key : new ArrayList<Object>( properties.keySet() ) )
+        {
+            String property = (String) key;
+            if ( property.startsWith( prefix ) )
+            {
+                properties.remove( property );
+            }
+        }
+
+        try
+        {
+            writeProperties( properties, directory, PROJECT_VERSION_METADATA_KEY );
+        }
+        catch ( IOException e )
+        {
+            // TODO
+            log.error( e.getMessage(), e );
+        }
+
     }
 
     public void removeArtifact( String repoId, String namespace, String project, String version, String id )
@@ -645,6 +680,7 @@ public class FileMetadataRepository
 
     /**
      * FIXME implements this !!!!
+     *
      * @param repositoryId
      * @param namespace
      * @param project
@@ -654,10 +690,10 @@ public class FileMetadataRepository
      * @throws MetadataRepositoryException
      */
     public void removeArtifact( String repositoryId, String namespace, String project, String projectVersion,
-                                 MetadataFacet metadataFacet )
+                                MetadataFacet metadataFacet )
         throws MetadataRepositoryException
     {
-        throw new UnsupportedOperationException("not implemented");
+        throw new UnsupportedOperationException( "not implemented" );
     }
 
     public void removeRepository( String repoId )