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/21 15:27:36 UTC
svn commit: r1484799 - in
/archiva/sandbox/trunk/metadata-store-cassandra/src:
main/java/org/apache/archiva/metadata/repository/cassandra/
main/java/org/apache/archiva/metadata/repository/cassandra/model/
test/java/org/apache/archiva/metadata/repositor...
Author: olamy
Date: Tue May 21 13:27:35 2013
New Revision: 1484799
URL: http://svn.apache.org/r1484799
Log:
implement metadata facet wit cassandra
Added:
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java (with props)
archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java (with props)
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/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.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=1484799&r1=1484798&r2=1484799&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 Tue May 21 13:27:35 2013
@@ -35,6 +35,8 @@ import org.apache.archiva.metadata.model
import org.apache.archiva.metadata.repository.MetadataRepository;
import org.apache.archiva.metadata.repository.MetadataRepositoryException;
import org.apache.archiva.metadata.repository.MetadataResolutionException;
+import org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel;
+import org.apache.archiva.metadata.repository.cassandra.model.MetadataFacetModel;
import org.apache.archiva.metadata.repository.cassandra.model.Namespace;
import org.apache.archiva.metadata.repository.cassandra.model.Project;
import org.apache.archiva.metadata.repository.cassandra.model.Repository;
@@ -47,6 +49,7 @@ import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
import java.util.Date;
+import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
import java.util.Map;
@@ -74,6 +77,10 @@ public class CassandraMetadataRepository
private EntityManager<Project, String> projectEntityManager;
+ private EntityManager<ArtifactMetadataModel, String> artifactMetadataModelEntityManager;
+
+ private EntityManager<MetadataFacetModel, String> metadataFacetModelEntityManager;
+
public CassandraMetadataRepository( Map<String, MetadataFacetFactory> metadataFacetFactories,
ArchivaConfiguration configuration, Keyspace keyspace )
{
@@ -124,6 +131,27 @@ public class CassandraMetadataRepository
{
projectEntityManager.createStorage( null );
}
+
+ artifactMetadataModelEntityManager =
+ new DefaultEntityManager.Builder<ArtifactMetadataModel, String>().withEntityType(
+ ArtifactMetadataModel.class ).withKeyspace( keyspace ).build();
+
+ exists = columnFamilyExists( "artifactmetadatamodel" );
+ if ( !exists )
+ {
+ artifactMetadataModelEntityManager.createStorage( null );
+ }
+
+ metadataFacetModelEntityManager =
+ new DefaultEntityManager.Builder<MetadataFacetModel, String>().withEntityType(
+ MetadataFacetModel.class ).withKeyspace( keyspace ).build();
+
+ exists = columnFamilyExists( "metadatafacetmodel" );
+ if ( !exists )
+ {
+ metadataFacetModelEntityManager.createStorage( null );
+ }
+
}
catch ( PersistenceException e )
{
@@ -182,6 +210,28 @@ public class CassandraMetadataRepository
this.projectEntityManager = projectEntityManager;
}
+ public EntityManager<ArtifactMetadataModel, String> getArtifactMetadataModelEntityManager()
+ {
+ return artifactMetadataModelEntityManager;
+ }
+
+ public void setArtifactMetadataModelEntityManager(
+ EntityManager<ArtifactMetadataModel, String> artifactMetadataModelEntityManager )
+ {
+ this.artifactMetadataModelEntityManager = artifactMetadataModelEntityManager;
+ }
+
+ public EntityManager<MetadataFacetModel, String> getMetadataFacetModelEntityManager()
+ {
+ return metadataFacetModelEntityManager;
+ }
+
+ public void setMetadataFacetModelEntityManager(
+ EntityManager<MetadataFacetModel, String> metadataFacetModelEntityManager )
+ {
+ this.metadataFacetModelEntityManager = metadataFacetModelEntityManager;
+ }
+
@Override
public void updateNamespace( String repositoryId, String namespaceId )
throws MetadataRepositoryException
@@ -463,11 +513,74 @@ public class CassandraMetadataRepository
}
@Override
- public void updateArtifact( String repositoryId, String namespace, String projectId, String projectVersion,
+ public void updateArtifact( String repositoryId, String namespaceId, String projectId, String projectVersion,
ArtifactMetadata artifactMeta )
throws MetadataRepositoryException
{
- //To change body of implemented methods use File | Settings | File Templates.
+ // TODO verif repository namespace exists ?
+ String key =
+ new ArtifactMetadataModel.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespaceId ).withId(
+ projectId ).withProjectVersion( projectVersion ).build();
+
+ ArtifactMetadataModel artifactMetadataModel = artifactMetadataModelEntityManager.get( key );
+ if ( artifactMetadataModel == null )
+ {
+ artifactMetadataModel =
+ new ArtifactMetadataModel( key, projectId, repositoryId, namespaceId, artifactMeta.getProject(),
+ projectVersion, artifactMeta.getVersion(),
+ artifactMeta.getFileLastModified(), artifactMeta.getSize(),
+ artifactMeta.getMd5(), artifactMeta.getSha1(),
+ artifactMeta.getWhenGathered() );
+ artifactMetadataModelEntityManager.put( artifactMetadataModel );
+
+ }
+
+ // now facets
+ // iterate over available facets to update/add/remove from the artifactMetadata
+ for ( final String facetId : metadataFacetFactories.keySet() )
+ {
+ MetadataFacet metadataFacet = artifactMeta.getFacet( facetId );
+ if ( metadataFacet == null )
+ {
+ continue;
+ }
+ // clean first
+
+ final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
+
+ metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( MetadataFacetModel metadataFacetModel )
+ {
+ if ( StringUtils.equals( metadataFacetModel.getFacetId(), facetId ) )
+ {
+ metadataFacetModels.add( metadataFacetModel );
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ metadataFacetModelEntityManager.remove( metadataFacetModels );
+
+ Map<String, String> properties = metadataFacet.toProperties();
+
+ final List<MetadataFacetModel> metadataFacetModelsToAdd =
+ new ArrayList<MetadataFacetModel>( properties.size() );
+
+ for ( Map.Entry<String, String> entry : properties.entrySet() )
+ {
+ key = new MetadataFacetModel.KeyBuilder().withKey( entry.getKey() ).withArtifactMetadataModel(
+ artifactMetadataModel ).withFacetId( facetId ).build();
+ MetadataFacetModel metadataFacetModel =
+ new MetadataFacetModel( key, artifactMetadataModel, facetId, entry.getKey(), entry.getValue(),
+ metadataFacet.getName() );
+ }
+
+ metadataFacetModelEntityManager.put( metadataFacetModels );
+
+ }
+
}
@Override
@@ -475,28 +588,88 @@ public class CassandraMetadataRepository
ProjectVersionMetadata versionMetadata )
throws MetadataRepositoryException
{
- //To change body of implemented methods use File | Settings | File Templates.
+ foo
+ }
+
+ private static class BooleanHolder
+ {
+ private boolean value;
}
@Override
- public List<String> getMetadataFacets( String repositoryId, String facetId )
+ public List<String> getMetadataFacets( final String repositoryId, final String facetId )
throws MetadataRepositoryException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ // FIXME use cql query !!
+ final List<String> facets = new ArrayList<String>();
+ this.metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( MetadataFacetModel metadataFacetModel )
+ {
+ if ( metadataFacetModel != null )
+ {
+ if ( StringUtils.equals( metadataFacetModel.getArtifactMetadataModel().getRepositoryId(),
+ repositoryId ) && StringUtils.equals( metadataFacetModel.getFacetId(),
+ facetId ) )
+ {
+ facets.add( metadataFacetModel.getName() );
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ return facets;
+
}
@Override
public boolean hasMetadataFacet( String repositoryId, String facetId )
throws MetadataRepositoryException
{
- return false; //To change body of implemented methods use File | Settings | File Templates.
+ return !getMetadataFacets( repositoryId, facetId ).isEmpty();
}
@Override
- public MetadataFacet getMetadataFacet( String repositoryId, String facetId, String name )
+ public MetadataFacet getMetadataFacet( final String repositoryId, final String facetId, final String name )
throws MetadataRepositoryException
{
- return null; //To change body of implemented methods use File | Settings | File Templates.
+ // FIXME use cql query !!
+ final List<MetadataFacetModel> facets = new ArrayList<MetadataFacetModel>();
+ this.metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
+ {
+ @Override
+ public Boolean apply( MetadataFacetModel metadataFacetModel )
+ {
+ if ( metadataFacetModel != null )
+ {
+ if ( StringUtils.equals( metadataFacetModel.getArtifactMetadataModel().getRepositoryId(),
+ repositoryId ) && StringUtils.equals( metadataFacetModel.getFacetId(),
+ facetId ) && StringUtils.equals(
+ metadataFacetModel.getName(), name ) )
+ {
+ facets.add( metadataFacetModel );
+ }
+ }
+ return Boolean.TRUE;
+ }
+ } );
+
+ if ( facets.isEmpty() )
+ {
+ return null;
+ }
+
+ MetadataFacetFactory metadataFacetFactory = metadataFacetFactories.get( facetId );
+ MetadataFacet metadataFacet = metadataFacetFactory.createMetadataFacet( repositoryId, name );
+ Map<String, String> map = new HashMap<String, String>( facets.size() );
+ for ( MetadataFacetModel metadataFacetModel : facets )
+ {
+ map.put( metadataFacetModel.getKey(), metadataFacetModel.getValue() );
+ }
+ metadataFacet.fromProperties( map );
+ return metadataFacet;
}
@Override
Added: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java?rev=1484799&view=auto
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java (added)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java Tue May 21 13:27:35 2013
@@ -0,0 +1,302 @@
+package org.apache.archiva.metadata.repository.cassandra.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * Cassandra storage model for {@link org.apache.archiva.metadata.model.ArtifactMetadata}
+ *
+ * @author Olivier Lamy
+ */
+@Entity
+public class ArtifactMetadataModel
+ implements Serializable
+{
+
+ // repositoryId + namespaceId + id + projectVersion
+ @Id
+ private String artifactMetadataModelId;
+
+ @Column( name = "id" )
+ private String id;
+
+ @Column( name = "repositoryId" )
+ private String repositoryId;
+
+ @Column( name = "namespace" )
+ private String namespace;
+
+ @Column( name = "project" )
+ private String project;
+
+ @Column( name = "projectVersion" )
+ private String projectVersion;
+
+ @Column( name = "version" )
+ private String version;
+
+ @Column( name = "fileLastModified" )
+ private Date fileLastModified;
+
+ @Column( name = "size" )
+ private long size;
+
+ @Column( name = "md5" )
+ private String md5;
+
+ @Column( name = "sha1" )
+ private String sha1;
+
+ @Column( name = "whenGathered" )
+ private Date whenGathered;
+
+ public ArtifactMetadataModel()
+ {
+ // no op
+ }
+
+ public ArtifactMetadataModel( String artifactMetadataModelId, String id, String repositoryId, String namespace,
+ String project, String projectVersion, String version, Date fileLastModified,
+ long size, String md5, String sha1, Date whenGathered )
+ {
+ this.artifactMetadataModelId = artifactMetadataModelId;
+ this.id = id;
+ this.repositoryId = repositoryId;
+ this.namespace = namespace;
+ this.project = project;
+ this.projectVersion = projectVersion;
+ this.version = version;
+ this.fileLastModified = fileLastModified;
+ this.size = size;
+ this.md5 = md5;
+ this.sha1 = sha1;
+ this.whenGathered = whenGathered;
+ }
+
+ public String getArtifactMetadataModelId()
+ {
+ return artifactMetadataModelId;
+ }
+
+ public void setArtifactMetadataModelId( String artifactMetadataModelId )
+ {
+ this.artifactMetadataModelId = artifactMetadataModelId;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public String getRepositoryId()
+ {
+ return repositoryId;
+ }
+
+ public void setRepositoryId( String repositoryId )
+ {
+ this.repositoryId = repositoryId;
+ }
+
+ public String getNamespace()
+ {
+ return namespace;
+ }
+
+ public void setNamespace( String namespace )
+ {
+ this.namespace = namespace;
+ }
+
+ public String getProject()
+ {
+ return project;
+ }
+
+ public void setProject( String project )
+ {
+ this.project = project;
+ }
+
+ public String getProjectVersion()
+ {
+ return projectVersion;
+ }
+
+ public void setProjectVersion( String projectVersion )
+ {
+ this.projectVersion = projectVersion;
+ }
+
+ public String getVersion()
+ {
+ return version;
+ }
+
+ public void setVersion( String version )
+ {
+ this.version = version;
+ }
+
+ public Date getFileLastModified()
+ {
+ return fileLastModified;
+ }
+
+ public void setFileLastModified( Date fileLastModified )
+ {
+ this.fileLastModified = fileLastModified;
+ }
+
+ public long getSize()
+ {
+ return size;
+ }
+
+ public void setSize( long size )
+ {
+ this.size = size;
+ }
+
+ public String getMd5()
+ {
+ return md5;
+ }
+
+ public void setMd5( String md5 )
+ {
+ this.md5 = md5;
+ }
+
+ public String getSha1()
+ {
+ return sha1;
+ }
+
+ public void setSha1( String sha1 )
+ {
+ this.sha1 = sha1;
+ }
+
+ public Date getWhenGathered()
+ {
+ return whenGathered;
+ }
+
+ public void setWhenGathered( Date whenGathered )
+ {
+ this.whenGathered = whenGathered;
+ }
+
+ @Override
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ ArtifactMetadataModel that = (ArtifactMetadataModel) o;
+
+ if ( !artifactMetadataModelId.equals( that.artifactMetadataModelId ) )
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return artifactMetadataModelId.hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder( "ArtifactMetadataModel{" );
+ sb.append( "artifactMetadataModelId='" ).append( artifactMetadataModelId ).append( '\'' );
+ sb.append( ", id='" ).append( id ).append( '\'' );
+ sb.append( ", repositoryId='" ).append( repositoryId ).append( '\'' );
+ sb.append( ", namespace='" ).append( namespace ).append( '\'' );
+ sb.append( ", project='" ).append( project ).append( '\'' );
+ sb.append( ", projectVersion='" ).append( projectVersion ).append( '\'' );
+ sb.append( ", version='" ).append( version ).append( '\'' );
+ sb.append( ", fileLastModified=" ).append( fileLastModified );
+ sb.append( ", size=" ).append( size );
+ sb.append( ", md5='" ).append( md5 ).append( '\'' );
+ sb.append( ", sha1='" ).append( sha1 ).append( '\'' );
+ sb.append( ", whenGathered=" ).append( whenGathered );
+ sb.append( '}' );
+ return sb.toString();
+ }
+
+ public static class KeyBuilder
+ {
+
+ private String id;
+
+ private String namespaceId;
+
+ private String repositoryId;
+
+ private String projectVersion;
+
+ public KeyBuilder()
+ {
+
+ }
+
+ public KeyBuilder withId( String id )
+ {
+ this.id = id;
+ return this;
+ }
+
+
+ public KeyBuilder withNamespace( Namespace namespace )
+ {
+ this.namespaceId = namespace.getId();
+ this.repositoryId = namespace.getRepository().getId();
+ return this;
+ }
+
+ public KeyBuilder withNamespace( String namespaceId )
+ {
+ this.namespaceId = namespaceId;
+ return this;
+ }
+
+ public KeyBuilder withProjectVersion( String projectVersion )
+ {
+ this.projectVersion = projectVersion;
+ return this;
+ }
+
+ public KeyBuilder withRepositoryId( String repositoryId )
+ {
+ this.repositoryId = repositoryId;
+ return this;
+ }
+
+ public String build()
+ {
+ // FIXME add some controls
+ return this.repositoryId + "-" + this.namespaceId + "-" + this.id + "-" + this.projectVersion;
+ }
+ }
+
+}
Propchange: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ArtifactMetadataModel.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Added: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java?rev=1484799&view=auto
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java (added)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java Tue May 21 13:27:35 2013
@@ -0,0 +1,198 @@
+package org.apache.archiva.metadata.repository.cassandra.model;
+
+import javax.persistence.Column;
+import javax.persistence.Entity;
+import javax.persistence.Id;
+
+/**
+ * Cassandra storage model for {@link org.apache.archiva.metadata.model.MetadataFacet}
+ *
+ * @author Olivier Lamy
+ */
+@Entity
+public class MetadataFacetModel
+{
+ // id is repositoryId + namespaceId + projectId + facetId + name + mapKey
+ @Id
+ @Column( name = "id" )
+ private String id;
+
+ @Column( name = "artifactMetadataModel" )
+ private ArtifactMetadataModel artifactMetadataModel;
+
+ @Column( name = "facetId" )
+ private String facetId;
+
+ @Column( name = "name" )
+ private String name;
+
+ @Column( name = "key" )
+ private String key;
+
+ @Column( name = "value" )
+ private String value;
+
+ public MetadataFacetModel()
+ {
+ // no op
+ }
+
+ public MetadataFacetModel( String id, ArtifactMetadataModel artifactMetadataModel, String facetId, String key,
+ String value, String name )
+ {
+ this.id = id;
+ this.artifactMetadataModel = artifactMetadataModel;
+ this.key = key;
+ this.value = value;
+ this.name = name;
+ this.facetId = facetId;
+ }
+
+ public String getFacetId()
+ {
+ return facetId;
+ }
+
+ public void setFacetId( String facetId )
+ {
+ this.facetId = facetId;
+ }
+
+ public String getId()
+ {
+ return id;
+ }
+
+ public void setId( String id )
+ {
+ this.id = id;
+ }
+
+ public ArtifactMetadataModel getArtifactMetadataModel()
+ {
+ return artifactMetadataModel;
+ }
+
+ public void setArtifactMetadataModel( ArtifactMetadataModel artifactMetadataModel )
+ {
+ this.artifactMetadataModel = artifactMetadataModel;
+ }
+
+ public String getName()
+ {
+ return name;
+ }
+
+ public void setName( String name )
+ {
+ this.name = name;
+ }
+
+ public String getKey()
+ {
+ return key;
+ }
+
+ public void setKey( String key )
+ {
+ this.key = key;
+ }
+
+ public String getValue()
+ {
+ return value;
+ }
+
+ public void setValue( String value )
+ {
+ this.value = value;
+ }
+
+ @Override
+ public boolean equals( Object o )
+ {
+ if ( this == o )
+ {
+ return true;
+ }
+ if ( o == null || getClass() != o.getClass() )
+ {
+ return false;
+ }
+
+ MetadataFacetModel that = (MetadataFacetModel) o;
+
+ if ( !id.equals( that.id ) )
+ {
+ return false;
+ }
+
+ return true;
+ }
+
+ @Override
+ public int hashCode()
+ {
+ return id.hashCode();
+ }
+
+ @Override
+ public String toString()
+ {
+ final StringBuilder sb = new StringBuilder( "MetadataFacetModel{" );
+ sb.append( "id='" ).append( id ).append( '\'' );
+ sb.append( ", artifactMetadataModel=" ).append( artifactMetadataModel );
+ sb.append( ", key='" ).append( key ).append( '\'' );
+ sb.append( ", value='" ).append( value ).append( '\'' );
+ sb.append( '}' );
+ return sb.toString();
+ }
+
+ public static class KeyBuilder
+ {
+
+ private ArtifactMetadataModel artifactMetadataModel;
+
+ private String key;
+
+ private String name;
+
+ private String facetId;
+
+ public KeyBuilder()
+ {
+
+ }
+
+ public KeyBuilder withArtifactMetadataModel( ArtifactMetadataModel artifactMetadataModel )
+ {
+ this.artifactMetadataModel = artifactMetadataModel;
+ return this;
+ }
+
+ public KeyBuilder withKey( String key )
+ {
+ this.key = key;
+ return this;
+ }
+
+ public KeyBuilder withName( String name )
+ {
+ this.name = name;
+ return this;
+ }
+
+ public KeyBuilder withFacetId( String facetId )
+ {
+ this.facetId = facetId;
+ return this;
+ }
+
+ public String build()
+ {
+ // FIXME add some controls
+ return this.artifactMetadataModel.getArtifactMetadataModelId() + "-" + this.facetId + "-" + this.name + "-"
+ + this.key;
+ }
+ }
+}
Propchange: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/MetadataFacetModel.java
------------------------------------------------------------------------------
svn:keywords = Author Date Id Revision
Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java?rev=1484799&r1=1484798&r2=1484799&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/test/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepositoryTest.java Tue May 21 13:27:35 2013
@@ -19,7 +19,10 @@ package org.apache.archiva.metadata.repo
* under the License.
*/
+import org.apache.archiva.metadata.model.MetadataFacetFactory;
import org.apache.archiva.metadata.repository.AbstractMetadataRepositoryTest;
+import org.apache.archiva.metadata.repository.cassandra.model.ArtifactMetadataModel;
+import org.apache.archiva.metadata.repository.cassandra.model.MetadataFacetModel;
import org.apache.archiva.metadata.repository.cassandra.model.Namespace;
import org.apache.archiva.metadata.repository.cassandra.model.Project;
import org.apache.archiva.metadata.repository.cassandra.model.Repository;
@@ -33,6 +36,7 @@ import javax.inject.Inject;
import javax.inject.Named;
import java.io.File;
import java.util.List;
+import java.util.Map;
/**
* @author Olivier Lamy
@@ -60,8 +64,12 @@ public class CassandraMetadataRepository
FileUtils.deleteDirectory( directory );
}
- this.cmr = new CassandraMetadataRepository( null, null, cassandraEntityManagerFactory.getKeyspace() );
+ Map<String, MetadataFacetFactory> factories = createTestMetadataFacetFactories();
+
+ this.cmr = new CassandraMetadataRepository( factories, null, cassandraEntityManagerFactory.getKeyspace() );
this.repository = this.cmr;
+
+ clearReposAndNamespace();
}
@@ -69,7 +77,7 @@ public class CassandraMetadataRepository
public void shutdown()
throws Exception
{
- //cassandraEntityManagerFactory.getKeyspace().dr .dropKeyspace();
+ clearReposAndNamespace();
}
protected void clearReposAndNamespace()
@@ -87,6 +95,12 @@ public class CassandraMetadataRepository
cmr.getRepositoryEntityManager().remove( repositories );
+ List<ArtifactMetadataModel> artifactMetadataModels = cmr.getArtifactMetadataModelEntityManager().getAll();
+ cmr.getArtifactMetadataModelEntityManager().remove( artifactMetadataModels );
+
+ List<MetadataFacetModel> metadataFacetModels = cmr.getMetadataFacetModelEntityManager().getAll();
+ cmr.getMetadataFacetModelEntityManager().remove( metadataFacetModels );
+
}
}