]> source.dussan.org Git - archiva.git/commitdiff
[MRM-1282] fix some problems with the metadata repository
authorBrett Porter <brett@apache.org>
Wed, 25 Nov 2009 15:18:54 +0000 (15:18 +0000)
committerBrett Porter <brett@apache.org>
Wed, 25 Nov 2009 15:18:54 +0000 (15:18 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@884134 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/metadata/metadata-model/src/main/java/org/apache/archiva/metadata/model/ProjectVersionMetadata.java
archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/DefaultMetadataResolver.java
archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java

index c2add5b4ffc13469ccd162230ee67bb73c115f39..08f4b5a9c17a95fc9c80e2c165bbbe3bc1c50cbb 100644 (file)
@@ -156,6 +156,6 @@ public class ProjectVersionMetadata
 
     public ProjectVersionFacet getFacet( String facetId )
     {
-        return this.facets.get( facetId );
+        return this.facets != null ? this.facets.get( facetId ) : null;
     }
 }
index e058ca22d884f07d1ec1a904e8cb0d8a2dd606c0..7a2c5f268e62db6c2a2ba3430545356aa05e45da 100644 (file)
@@ -37,7 +37,8 @@ public class DefaultMetadataResolver
 
     /**
      * FIXME: this needs to be configurable based on storage type, and availability of proxy module
-     *        ... could be a different type since we need methods to modify the storage metadata
+     * ... could be a different type since we need methods to modify the storage metadata
+     *
      * @plexus.requirement role-hint="maven2"
      */
     private MetadataResolver storageResolver;
@@ -48,21 +49,27 @@ public class DefaultMetadataResolver
         return metadataRepository.getProject( repoId, namespace, projectId );
     }
 
-    public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId, String projectVersion )
+    public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId,
+                                                     String projectVersion )
         throws MetadataResolverException
     {
-        ProjectVersionMetadata metadata = metadataRepository.getProjectVersion( repoId, namespace, projectId, projectVersion );
+        ProjectVersionMetadata metadata =
+            metadataRepository.getProjectVersion( repoId, namespace, projectId, projectVersion );
         // TODO: do we want to detect changes as well by comparing timestamps? isProjectVersionNewerThan(updated)
         //       in such cases we might also remove/update stale metadata, including adjusting plugin-based facets
         if ( metadata == null )
         {
             metadata = storageResolver.getProjectVersion( repoId, namespace, projectId, projectVersion );
-            metadataRepository.updateProjectVersion( repoId, namespace, projectId, metadata );
+            if ( metadata != null )
+            {
+                metadataRepository.updateProjectVersion( repoId, namespace, projectId, metadata );
+            }
         }
         return metadata;
     }
 
-    public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId, String projectVersion )
+    public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId,
+                                                   String projectVersion )
     {
         // TODO: intercept
         return metadataRepository.getArtifactVersions( repoId, namespace, projectId, projectVersion );
index 0e4eb70c69b4334223a3f9ae38f52724e0a997a7..2fa1f01a31b3b6b8b4eb4ed7dbef0209933d4689 100644 (file)
@@ -134,9 +134,9 @@ public class FileMetadataRepository
         return properties;
     }
 
-    public ProjectMetadata getProject( String repoId, String groupId, String projectId )
+    public ProjectMetadata getProject( String repoId, String namespace, String projectId )
     {
-        File directory = new File( this.directory, repoId + "/" + projectId );
+        File directory = new File( this.directory, repoId + "/" + namespace + "/" + projectId );
 
         Properties properties = readProperties( directory );
 
@@ -146,22 +146,26 @@ public class FileMetadataRepository
         return project;
     }
 
-    public ProjectVersionMetadata getProjectVersion( String repoId, String groupId, String projectId,
+    public ProjectVersionMetadata getProjectVersion( String repoId, String namespace, String projectId,
                                                      String projectVersion )
     {
-        File directory = new File( this.directory, repoId + "/" + projectId + "/" + projectVersion );
+        File directory = new File( this.directory, repoId + "/" + namespace + "/" + projectId + "/" + projectVersion );
 
         Properties properties = readProperties( directory );
-
-        ProjectVersionMetadata versionMetadata = new ProjectVersionMetadata();
-        versionMetadata.setId( properties.getProperty( "id" ) );
+        String id = properties.getProperty( "id" );
+        ProjectVersionMetadata versionMetadata = null;
+        if ( id != null )
+        {
+            versionMetadata = new ProjectVersionMetadata();
+            versionMetadata.setId( id );
+        }
         return versionMetadata;
     }
 
     public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId,
                                                    String projectVersion )
     {
-        File directory = new File( this.directory, repoId + "/" + projectId + "/" + projectVersion );
+        File directory = new File( this.directory, repoId + "/" + namespace + "/" + projectId + "/" + projectVersion );
 
         Properties properties = readProperties( directory );