[MRM-1282] fix some problems with the metadata repository

git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@884134 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
Brett Porter 2009-11-25 15:18:54 +00:00
parent b6cf0bf5fa
commit 91cb91a8a2
3 changed files with 25 additions and 14 deletions

View File

@ -156,6 +156,6 @@ public void addFacet( ProjectVersionFacet mavenProjectFacet )
public ProjectVersionFacet getFacet( String facetId )
{
return this.facets.get( facetId );
return this.facets != null ? this.facets.get( facetId ) : null;
}
}

View 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 ProjectMetadata getProject( String repoId, String namespace, String proje
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 );

View File

@ -134,9 +134,9 @@ private Properties readProperties( File directory )
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 ProjectMetadata getProject( String repoId, String groupId, String project
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 );