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 );
}
}
}