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 2013/05/22 15:10:19 UTC
svn commit: r1485198 - in
/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra:
CassandraMetadataRepository.java model/ProjectVersionMetadataModel.java
Author: olamy
Date: Wed May 22 13:10:19 2013
New Revision: 1485198
URL: http://svn.apache.org/r1485198
Log:
implement more methods
Modified:
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java?rev=1485198&r1=1485197&r2=1485198&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java Wed May 22 13:10:19 2013
@@ -544,6 +544,7 @@ public class CassandraMetadataRepository
throws MetadataRepositoryException
{
// TODO verif repository namespace exists ?
+
String key =
new ArtifactMetadataModel.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespaceId ).withId(
projectId ).withProjectVersion( projectVersion ).build();
@@ -663,7 +664,7 @@ public class CassandraMetadataRepository
private static class BooleanHolder
{
- private boolean value;
+ private boolean value = false;
}
@Override
@@ -877,6 +878,8 @@ public class CassandraMetadataRepository
artifactMetadatas.add( artifactMetadata );
}
+ // FIXME facets ?
+
logger.debug( "getArtifactsByDateRange repositoryId: {}, startTime: {}, endTime: {}, artifactMetadatas: {}",
repositoryId, startTime, endTime, artifactMetadatas );
@@ -983,37 +986,142 @@ public class CassandraMetadataRepository
public void removeArtifact( String repositoryId, String namespace, String project, String version, String id )
throws MetadataRepositoryException
{
- //To change body of implemented methods use File | Settings | File Templates.
+ logger.debug( "removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'",
+ repositoryId, namespace, project, version, id );
+ String key =
+ new ArtifactMetadataModel.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespace ).withId(
+ id ).withProjectVersion( version ).build();
+
+ ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
+ artifactMetadataModel.setArtifactMetadataModelId( key );
+
+ artifactMetadataModelEntityManager.remove( artifactMetadataModel );
}
@Override
public void removeArtifact( ArtifactMetadata artifactMetadata, String baseVersion )
throws MetadataRepositoryException
{
- //To change body of implemented methods use File | Settings | File Templates.
+ logger.debug( "removeArtifact repositoryId: '{}', namespace: '{}', project: '{}', version: '{}', id: '{}'",
+ artifactMetadata.getRepositoryId(), artifactMetadata.getNamespace(),
+ artifactMetadata.getProject(), baseVersion, artifactMetadata.getId() );
+ String key =
+ new ArtifactMetadataModel.KeyBuilder().withRepositoryId( artifactMetadata.getRepositoryId() ).withNamespace(
+ artifactMetadata.getNamespace() ).withId( artifactMetadata.getId() ).withProjectVersion(
+ baseVersion ).build();
+
+ ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
+ artifactMetadataModel.setArtifactMetadataModelId( key );
+
+ artifactMetadataModelEntityManager.remove( artifactMetadataModel );
}
@Override
- public void removeArtifact( String repositoryId, String namespace, String project, String version,
- MetadataFacet metadataFacet )
+ public void removeArtifact( final String repositoryId, final String namespace, final String project,
+ final String version, final MetadataFacet metadataFacet )
throws MetadataRepositoryException
{
- //To change body of implemented methods use File | Settings | File Templates.
+ final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
+ metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( MetadataFacetModel metadataFacetModel )
+ {
+ if ( metadataFacetModel != null )
+ {
+ ArtifactMetadataModel artifactMetadataModel = metadataFacetModel.getArtifactMetadataModel();
+ if ( artifactMetadataModel != null )
+ {
+ if ( StringUtils.equals( repositoryId, artifactMetadataModel.getRepositoryId() )
+ && StringUtils.equals( namespace, artifactMetadataModel.getNamespace() )
+ && StringUtils.equals( project, artifactMetadataModel.getProject() ) && StringUtils.equals(
+ version, artifactMetadataModel.getVersion() ) )
+ {
+ if ( StringUtils.equals( metadataFacetModel.getFacetId(), metadataFacet.getFacetId() )
+ && StringUtils.equals( metadataFacetModel.getName(), metadataFacet.getName() ) )
+ {
+ metadataFacetModels.add( metadataFacetModel );
+ }
+ }
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+ metadataFacetModelEntityManager.remove( metadataFacetModels );
}
@Override
- public List<ArtifactMetadata> getArtifacts( String repositoryId )
+ public List<ArtifactMetadata> getArtifacts( final String repositoryId )
throws MetadataRepositoryException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
+ // FIXME use cql query !
+ artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
+ {
+ if ( artifactMetadataModel != null )
+ {
+ if ( StringUtils.equals( repositoryId, artifactMetadataModel.getRepositoryId() ) )
+ {
+ artifactMetadataModels.add( artifactMetadataModel );
+ }
+ }
+
+ return Boolean.TRUE;
+ }
+ } );
+
+ List<ArtifactMetadata> artifactMetadatas = new ArrayList<ArtifactMetadata>( artifactMetadataModels.size() );
+
+ for ( ArtifactMetadataModel model : artifactMetadataModels )
+ {
+ ArtifactMetadata artifactMetadata = new BeanReplicator().replicateBean( model, ArtifactMetadata.class );
+ populateFacets( artifactMetadata );
+ artifactMetadatas.add( artifactMetadata );
+ }
+
+ return artifactMetadatas;
}
@Override
- public ProjectMetadata getProject( String repoId, String namespace, String projectId )
+ public ProjectMetadata getProject( final String repoId, final String namespace, final String projectId )
throws MetadataResolutionException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ //basically just checking it exists
+ // FIXME use cql query
+
+ final BooleanHolder booleanHolder = new BooleanHolder();
+
+ projectEntityManager.visitAll( new Function<Project, Boolean>()
+ {
+ @Override
+ public Boolean apply( Project project )
+ {
+ if ( project != null )
+ {
+ if ( StringUtils.equals( repoId, project.getNamespace().getRepository().getName() )
+ && StringUtils.equals( namespace, project.getNamespace().getName() ) && StringUtils.equals(
+ projectId, project.getId() ) )
+ {
+ booleanHolder.value = true;
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ ProjectMetadata projectMetadata = new ProjectMetadata();
+ projectMetadata.setId( projectId );
+ projectMetadata.setNamespace( namespace );
+
+ logger.debug( "getProject repoId: {}, namespace: {}, projectId: {} -> {}", repoId, namespace, projectId,
+ projectMetadata );
+
+ return projectMetadata;
}
@Override
@@ -1021,15 +1129,54 @@ public class CassandraMetadataRepository
String projectVersion )
throws MetadataResolutionException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ String key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repoId ).withNamespace(
+ namespace ).withProjectId( projectId ).withId( projectVersion ).build();
+
+ ProjectVersionMetadataModel projectVersionMetadataModel = projectVersionMetadataModelEntityManager.get( key );
+
+ ProjectVersionMetadata projectVersionMetadata =
+ new BeanReplicator().replicateBean( projectVersionMetadataModel, ProjectVersionMetadata.class );
+
+ logger.debug( "getProjectVersion repoId: '{}', namespace: '{}', projectId: '{}', projectVersion: {} -> {}",
+ repoId, namespace, projectId, projectVersion, projectVersionMetadata );
+
+ projectVersionMetadata.setCiManagement( projectVersionMetadataModel.getCiManagement() );
+ projectVersionMetadata.setIssueManagement( projectVersionMetadataModel.getIssueManagement() );
+ projectVersionMetadata.setOrganization( projectVersionMetadataModel.getOrganization() );
+ projectVersionMetadata.setScm( projectVersionMetadataModel.getScm() );
+
+ // FIXME complete collections !!
+
+ return projectVersionMetadata;
}
@Override
- public Collection<String> getArtifactVersions( String repoId, String namespace, String projectId,
- String projectVersion )
+ public Collection<String> getArtifactVersions( final String repoId, final String namespace, final String projectId,
+ final String projectVersion )
throws MetadataResolutionException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ final List<String> versions = new ArrayList<String>();
+ // FIXME use cql query
+ artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
+ {
+ if ( artifactMetadataModel != null )
+ {
+ if ( StringUtils.equals( repoId, artifactMetadataModel.getRepositoryId() ) && StringUtils.equals(
+ namespace, artifactMetadataModel.getNamespace() ) && StringUtils.equals( projectId,
+ artifactMetadataModel.getId() )
+ && StringUtils.equals( projectVersion, artifactMetadataModel.getProjectVersion() ) )
+ {
+ versions.add( artifactMetadataModel.getVersion() );
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ return versions;
}
@Override
@@ -1037,14 +1184,35 @@ public class CassandraMetadataRepository
String projectVersion )
throws MetadataResolutionException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ // FIXME implement this
+ return Collections.emptyList();
}
@Override
- public Collection<String> getProjects( String repoId, String namespace )
+ public Collection<String> getProjects( final String repoId, final String namespace )
throws MetadataResolutionException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ final Set<String> projects = new HashSet<String>();
+
+ // FIXME use cql query
+ artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
+ {
+ if ( artifactMetadataModel != null )
+ {
+ if ( StringUtils.equals( repoId, artifactMetadataModel.getRepositoryId() ) && StringUtils.equals(
+ namespace, artifactMetadataModel.getNamespace() ) )
+ {
+ projects.add( artifactMetadataModel.getProject() );
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ return projects;
}
@Override
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java?rev=1485198&r1=1485197&r2=1485198&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java Wed May 22 13:10:19 2013
@@ -259,7 +259,9 @@ public class ProjectVersionMetadataModel
public String build()
{
// FIXME add some controls
- return this.repositoryId + "-" + this.namespace + "-" + this.projectId + "-" + this.id;
+ return this.repositoryId + "-" + this.namespace + "-" + this.projectId + ( this.id == null
+ ? ""
+ : "-" + this.id );
}
}
}