mirror of https://github.com/apache/archiva.git
create cassandra entity manager only on start
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1491787 13f79535-47bb-0310-9956-ffa450edef68
This commit is contained in:
parent
b12f9ebd18
commit
970e6faffa
|
@ -20,6 +20,13 @@ package org.apache.archiva.metadata.repository.cassandra;
|
||||||
*/
|
*/
|
||||||
|
|
||||||
import com.netflix.astyanax.Keyspace;
|
import com.netflix.astyanax.Keyspace;
|
||||||
|
import com.netflix.astyanax.entitystore.EntityManager;
|
||||||
|
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.ProjectVersionMetadataModel;
|
||||||
|
import org.apache.archiva.metadata.repository.cassandra.model.Repository;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author Olivier Lamy
|
* @author Olivier Lamy
|
||||||
|
@ -28,4 +35,17 @@ public interface CassandraEntityManagerFactory
|
||||||
{
|
{
|
||||||
Keyspace getKeyspace();
|
Keyspace getKeyspace();
|
||||||
|
|
||||||
|
EntityManager<Repository, String> getRepositoryEntityManager();
|
||||||
|
|
||||||
|
EntityManager<Namespace, String> getNamespaceEntityManager();
|
||||||
|
|
||||||
|
EntityManager<Project, String> getProjectEntityManager();
|
||||||
|
|
||||||
|
EntityManager<ArtifactMetadataModel, String> getArtifactMetadataModelEntityManager();
|
||||||
|
|
||||||
|
EntityManager<MetadataFacetModel, String> getMetadataFacetModelEntityManager();
|
||||||
|
|
||||||
|
EntityManager<ProjectVersionMetadataModel, String> getProjectVersionMetadataModelEntityManager();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -75,190 +75,46 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
private final Map<String, MetadataFacetFactory> metadataFacetFactories;
|
private final Map<String, MetadataFacetFactory> metadataFacetFactories;
|
||||||
|
|
||||||
private Keyspace keyspace;
|
private CassandraEntityManagerFactory cassandraEntityManagerFactory;
|
||||||
|
|
||||||
private EntityManager<Repository, String> repositoryEntityManager;
|
|
||||||
|
|
||||||
private EntityManager<Namespace, String> namespaceEntityManager;
|
|
||||||
|
|
||||||
private EntityManager<Project, String> projectEntityManager;
|
|
||||||
|
|
||||||
private EntityManager<ArtifactMetadataModel, String> artifactMetadataModelEntityManager;
|
|
||||||
|
|
||||||
private EntityManager<MetadataFacetModel, String> metadataFacetModelEntityManager;
|
|
||||||
|
|
||||||
private EntityManager<ProjectVersionMetadataModel, String> projectVersionMetadataModelEntityManager;
|
|
||||||
|
|
||||||
public CassandraMetadataRepository( Map<String, MetadataFacetFactory> metadataFacetFactories,
|
public CassandraMetadataRepository( Map<String, MetadataFacetFactory> metadataFacetFactories,
|
||||||
ArchivaConfiguration configuration, Keyspace keyspace )
|
ArchivaConfiguration configuration, CassandraEntityManagerFactory cassandraEntityManagerFactory )
|
||||||
{
|
{
|
||||||
this.metadataFacetFactories = metadataFacetFactories;
|
this.metadataFacetFactories = metadataFacetFactories;
|
||||||
this.configuration = configuration;
|
this.configuration = configuration;
|
||||||
|
this.cassandraEntityManagerFactory = cassandraEntityManagerFactory;
|
||||||
this.keyspace = keyspace;
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Properties properties = keyspace.getKeyspaceProperties();
|
|
||||||
logger.info( "keyspace properties: {}", properties );
|
|
||||||
}
|
|
||||||
catch ( ConnectionException e )
|
|
||||||
{
|
|
||||||
// FIXME better logging !
|
|
||||||
logger.warn( e.getMessage(), e );
|
|
||||||
}
|
|
||||||
|
|
||||||
try
|
|
||||||
{
|
|
||||||
repositoryEntityManager =
|
|
||||||
new DefaultEntityManager.Builder<Repository, String>().withEntityType( Repository.class ).withKeyspace(
|
|
||||||
keyspace ).build();
|
|
||||||
boolean exists = columnFamilyExists( "repository" );
|
|
||||||
// TODO very basic test we must test model change too
|
|
||||||
if ( !exists )
|
|
||||||
{
|
|
||||||
repositoryEntityManager.createStorage( null );
|
|
||||||
}
|
|
||||||
|
|
||||||
namespaceEntityManager =
|
|
||||||
new DefaultEntityManager.Builder<Namespace, String>().withEntityType( Namespace.class ).withKeyspace(
|
|
||||||
keyspace ).build();
|
|
||||||
|
|
||||||
exists = columnFamilyExists( "namespace" );
|
|
||||||
if ( !exists )
|
|
||||||
{
|
|
||||||
namespaceEntityManager.createStorage( null );
|
|
||||||
}
|
|
||||||
|
|
||||||
projectEntityManager =
|
|
||||||
new DefaultEntityManager.Builder<Project, String>().withEntityType( Project.class ).withKeyspace(
|
|
||||||
keyspace ).build();
|
|
||||||
|
|
||||||
exists = columnFamilyExists( "project" );
|
|
||||||
if ( !exists )
|
|
||||||
{
|
|
||||||
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 );
|
|
||||||
}
|
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager =
|
|
||||||
new DefaultEntityManager.Builder<ProjectVersionMetadataModel, String>().withEntityType(
|
|
||||||
ProjectVersionMetadataModel.class ).withKeyspace( keyspace ).build();
|
|
||||||
|
|
||||||
exists = columnFamilyExists( "projectversionmetadatamodel" );
|
|
||||||
if ( !exists )
|
|
||||||
{
|
|
||||||
projectVersionMetadataModelEntityManager.createStorage( null );
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
catch ( PersistenceException e )
|
|
||||||
{
|
|
||||||
// FIXME report exception
|
|
||||||
logger.error( e.getMessage(), e );
|
|
||||||
}
|
|
||||||
catch ( ConnectionException e )
|
|
||||||
{
|
|
||||||
// FIXME report exception
|
|
||||||
logger.error( e.getMessage(), e );
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private boolean columnFamilyExists( String columnFamilyName )
|
|
||||||
throws ConnectionException
|
|
||||||
{
|
|
||||||
try
|
|
||||||
{
|
|
||||||
Properties properties = keyspace.getColumnFamilyProperties( columnFamilyName );
|
|
||||||
logger.debug( "getColumnFamilyProperties for {}: {}", columnFamilyName, properties );
|
|
||||||
return true;
|
|
||||||
}
|
|
||||||
catch ( NotFoundException e )
|
|
||||||
{
|
|
||||||
return false;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
public EntityManager<Repository, String> getRepositoryEntityManager()
|
public EntityManager<Repository, String> getRepositoryEntityManager()
|
||||||
{
|
{
|
||||||
return repositoryEntityManager;
|
return this.cassandraEntityManagerFactory.getRepositoryEntityManager();
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityManager<Namespace, String> getNamespaceEntityManager()
|
public EntityManager<Namespace, String> getNamespaceEntityManager()
|
||||||
{
|
{
|
||||||
return namespaceEntityManager;
|
return this.cassandraEntityManagerFactory.getNamespaceEntityManager();
|
||||||
}
|
|
||||||
|
|
||||||
public void setRepositoryEntityManager( EntityManager<Repository, String> repositoryEntityManager )
|
|
||||||
{
|
|
||||||
this.repositoryEntityManager = repositoryEntityManager;
|
|
||||||
}
|
|
||||||
|
|
||||||
public void setNamespaceEntityManager( EntityManager<Namespace, String> namespaceEntityManager )
|
|
||||||
{
|
|
||||||
this.namespaceEntityManager = namespaceEntityManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityManager<Project, String> getProjectEntityManager()
|
public EntityManager<Project, String> getProjectEntityManager()
|
||||||
{
|
{
|
||||||
return projectEntityManager;
|
return this.cassandraEntityManagerFactory.getProjectEntityManager();
|
||||||
}
|
|
||||||
|
|
||||||
public void setProjectEntityManager( EntityManager<Project, String> projectEntityManager )
|
|
||||||
{
|
|
||||||
this.projectEntityManager = projectEntityManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityManager<ArtifactMetadataModel, String> getArtifactMetadataModelEntityManager()
|
public EntityManager<ArtifactMetadataModel, String> getArtifactMetadataModelEntityManager()
|
||||||
{
|
{
|
||||||
return artifactMetadataModelEntityManager;
|
return cassandraEntityManagerFactory.getArtifactMetadataModelEntityManager();
|
||||||
}
|
|
||||||
|
|
||||||
public void setArtifactMetadataModelEntityManager(
|
|
||||||
EntityManager<ArtifactMetadataModel, String> artifactMetadataModelEntityManager )
|
|
||||||
{
|
|
||||||
this.artifactMetadataModelEntityManager = artifactMetadataModelEntityManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityManager<MetadataFacetModel, String> getMetadataFacetModelEntityManager()
|
public EntityManager<MetadataFacetModel, String> getMetadataFacetModelEntityManager()
|
||||||
{
|
{
|
||||||
return metadataFacetModelEntityManager;
|
return this.cassandraEntityManagerFactory.getMetadataFacetModelEntityManager();
|
||||||
}
|
|
||||||
|
|
||||||
public void setMetadataFacetModelEntityManager(
|
|
||||||
EntityManager<MetadataFacetModel, String> metadataFacetModelEntityManager )
|
|
||||||
{
|
|
||||||
this.metadataFacetModelEntityManager = metadataFacetModelEntityManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public EntityManager<ProjectVersionMetadataModel, String> getProjectVersionMetadataModelEntityManager()
|
public EntityManager<ProjectVersionMetadataModel, String> getProjectVersionMetadataModelEntityManager()
|
||||||
{
|
{
|
||||||
return projectVersionMetadataModelEntityManager;
|
return this.cassandraEntityManagerFactory.getProjectVersionMetadataModelEntityManager();
|
||||||
}
|
|
||||||
|
|
||||||
public void setProjectVersionMetadataModelEntityManager(
|
|
||||||
EntityManager<ProjectVersionMetadataModel, String> projectVersionMetadataModelEntityManager )
|
|
||||||
{
|
|
||||||
this.projectVersionMetadataModelEntityManager = projectVersionMetadataModelEntityManager;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -274,24 +130,24 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Repository repository = this.repositoryEntityManager.get( repositoryId );
|
Repository repository = this.getRepositoryEntityManager().get( repositoryId );
|
||||||
|
|
||||||
if ( repository == null )
|
if ( repository == null )
|
||||||
{
|
{
|
||||||
repository = new Repository( repositoryId );
|
repository = new Repository( repositoryId );
|
||||||
|
|
||||||
Namespace namespace = new Namespace( namespaceId, repository );
|
Namespace namespace = new Namespace( namespaceId, repository );
|
||||||
this.repositoryEntityManager.put( repository );
|
this.getRepositoryEntityManager().put( repository );
|
||||||
|
|
||||||
this.namespaceEntityManager.put( namespace );
|
this.getNamespaceEntityManager().put( namespace );
|
||||||
}
|
}
|
||||||
// FIXME add a Namespace id builder
|
// FIXME add a Namespace id builder
|
||||||
Namespace namespace = namespaceEntityManager.get(
|
Namespace namespace = getNamespaceEntityManager().get(
|
||||||
new Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build() );
|
new Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build() );
|
||||||
if ( namespace == null )
|
if ( namespace == null )
|
||||||
{
|
{
|
||||||
namespace = new Namespace( namespaceId, repository );
|
namespace = new Namespace( namespaceId, repository );
|
||||||
namespaceEntityManager.put( namespace );
|
getNamespaceEntityManager().put( namespace );
|
||||||
}
|
}
|
||||||
return namespace;
|
return namespace;
|
||||||
}
|
}
|
||||||
|
@ -309,11 +165,11 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
Namespace namespace = namespaceEntityManager.get(
|
Namespace namespace = getNamespaceEntityManager().get(
|
||||||
new Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build() );
|
new Namespace.KeyBuilder().withNamespace( namespaceId ).withRepositoryId( repositoryId ).build() );
|
||||||
if ( namespace != null )
|
if ( namespace != null )
|
||||||
{
|
{
|
||||||
namespaceEntityManager.remove( namespace );
|
getNamespaceEntityManager().remove( namespace );
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
catch ( PersistenceException e )
|
catch ( PersistenceException e )
|
||||||
|
@ -332,7 +188,7 @@ public class CassandraMetadataRepository
|
||||||
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
||||||
|
|
||||||
// remove data related to the repository
|
// remove data related to the repository
|
||||||
this.artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
this.getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -348,11 +204,11 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.remove( artifactMetadataModels );
|
getArtifactMetadataModelEntityManager().remove( artifactMetadataModels );
|
||||||
|
|
||||||
final List<Namespace> namespaces = new ArrayList<Namespace>();
|
final List<Namespace> namespaces = new ArrayList<Namespace>();
|
||||||
|
|
||||||
namespaceEntityManager.visitAll( new Function<Namespace, Boolean>()
|
getNamespaceEntityManager().visitAll( new Function<Namespace, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( Namespace namespace )
|
public Boolean apply( Namespace namespace )
|
||||||
|
@ -368,10 +224,10 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
namespaceEntityManager.remove( namespaces );
|
getNamespaceEntityManager().remove( namespaces );
|
||||||
|
|
||||||
final List<Project> projects = new ArrayList<Project>();
|
final List<Project> projects = new ArrayList<Project>();
|
||||||
projectEntityManager.visitAll( new Function<Project, Boolean>()
|
getProjectEntityManager().visitAll( new Function<Project, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( Project project )
|
public Boolean apply( Project project )
|
||||||
|
@ -387,16 +243,16 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
projectEntityManager.remove( projects );
|
getProjectEntityManager().remove( projects );
|
||||||
|
|
||||||
// TODO cleanup or not
|
// TODO cleanup or not
|
||||||
//final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>( );
|
//final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>( );
|
||||||
//metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
//getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
|
|
||||||
final List<ProjectVersionMetadataModel> projectVersionMetadataModels =
|
final List<ProjectVersionMetadataModel> projectVersionMetadataModels =
|
||||||
new ArrayList<ProjectVersionMetadataModel>();
|
new ArrayList<ProjectVersionMetadataModel>();
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager.visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
|
getProjectVersionMetadataModelEntityManager().visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
|
public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
|
||||||
|
@ -413,12 +269,12 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager.remove( projectVersionMetadataModels );
|
getProjectVersionMetadataModelEntityManager().remove( projectVersionMetadataModels );
|
||||||
|
|
||||||
Repository repository = repositoryEntityManager.get( repositoryId );
|
Repository repository = getRepositoryEntityManager().get( repositoryId );
|
||||||
if ( repository != null )
|
if ( repository != null )
|
||||||
{
|
{
|
||||||
repositoryEntityManager.remove( repository );
|
getRepositoryEntityManager().remove( repository );
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -436,7 +292,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
logger.debug( "getRepositories" );
|
logger.debug( "getRepositories" );
|
||||||
|
|
||||||
List<Repository> repositories = repositoryEntityManager.getAll();
|
List<Repository> repositories = getRepositoryEntityManager().getAll();
|
||||||
if ( repositories == null )
|
if ( repositories == null )
|
||||||
{
|
{
|
||||||
return Collections.emptyList();
|
return Collections.emptyList();
|
||||||
|
@ -465,7 +321,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
final Set<String> namespaces = new HashSet<String>();
|
final Set<String> namespaces = new HashSet<String>();
|
||||||
|
|
||||||
namespaceEntityManager.visitAll( new Function<Namespace, Boolean>()
|
getNamespaceEntityManager().visitAll( new Function<Namespace, Boolean>()
|
||||||
{
|
{
|
||||||
// @Nullable add dependency ?
|
// @Nullable add dependency ?
|
||||||
@Override
|
@Override
|
||||||
|
@ -500,7 +356,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
final Set<String> namespaces = new HashSet<String>();
|
final Set<String> namespaces = new HashSet<String>();
|
||||||
|
|
||||||
namespaceEntityManager.visitAll( new Function<Namespace, Boolean>()
|
getNamespaceEntityManager().visitAll( new Function<Namespace, Boolean>()
|
||||||
{
|
{
|
||||||
// @Nullable add dependency ?
|
// @Nullable add dependency ?
|
||||||
@Override
|
@Override
|
||||||
|
@ -550,7 +406,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
//List<Repository> namespaces = typedQuery.setParameter( "id", repoId ).getResultList();
|
//List<Repository> namespaces = typedQuery.setParameter( "id", repoId ).getResultList();
|
||||||
|
|
||||||
Repository repository = repositoryEntityManager.get( repoId );
|
Repository repository = getRepositoryEntityManager().get( repoId );
|
||||||
|
|
||||||
if ( repository == null )
|
if ( repository == null )
|
||||||
{
|
{
|
||||||
|
@ -560,11 +416,11 @@ public class CassandraMetadataRepository
|
||||||
// FIXME find correct cql query
|
// FIXME find correct cql query
|
||||||
//String query = "select * from namespace where repository.id = '" + repoId + "';";
|
//String query = "select * from namespace where repository.id = '" + repoId + "';";
|
||||||
|
|
||||||
//List<Namespace> namespaces = namespaceEntityManager.find( query );
|
//List<Namespace> namespaces = getNamespaceEntityManager().find( query );
|
||||||
|
|
||||||
final Set<Namespace> namespaces = new HashSet<Namespace>();
|
final Set<Namespace> namespaces = new HashSet<Namespace>();
|
||||||
|
|
||||||
namespaceEntityManager.visitAll( new Function<Namespace, Boolean>()
|
getNamespaceEntityManager().visitAll( new Function<Namespace, Boolean>()
|
||||||
{
|
{
|
||||||
// @Nullable add dependency ?
|
// @Nullable add dependency ?
|
||||||
@Override
|
@Override
|
||||||
|
@ -611,7 +467,7 @@ public class CassandraMetadataRepository
|
||||||
String projectKey = new Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace(
|
String projectKey = new Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace(
|
||||||
new Namespace( projectMetadata.getNamespace(), new Repository( repositoryId ) ) ).build();
|
new Namespace( projectMetadata.getNamespace(), new Repository( repositoryId ) ) ).build();
|
||||||
|
|
||||||
Project project = projectEntityManager.get( projectKey );
|
Project project = getProjectEntityManager().get( projectKey );
|
||||||
if ( project != null )
|
if ( project != null )
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
|
@ -619,7 +475,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
String namespaceKey = new Namespace.KeyBuilder().withRepositoryId( repositoryId ).withNamespace(
|
String namespaceKey = new Namespace.KeyBuilder().withRepositoryId( repositoryId ).withNamespace(
|
||||||
projectMetadata.getNamespace() ).build();
|
projectMetadata.getNamespace() ).build();
|
||||||
Namespace namespace = namespaceEntityManager.get( namespaceKey );
|
Namespace namespace = getNamespaceEntityManager().get( namespaceKey );
|
||||||
if ( namespace == null )
|
if ( namespace == null )
|
||||||
{
|
{
|
||||||
namespace = updateOrAddNamespace( repositoryId, projectMetadata.getNamespace() );
|
namespace = updateOrAddNamespace( repositoryId, projectMetadata.getNamespace() );
|
||||||
|
@ -629,7 +485,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
projectEntityManager.put( project );
|
getProjectEntityManager().put( project );
|
||||||
}
|
}
|
||||||
catch ( PersistenceException e )
|
catch ( PersistenceException e )
|
||||||
{
|
{
|
||||||
|
@ -646,7 +502,7 @@ public class CassandraMetadataRepository
|
||||||
// cleanup ArtifactMetadataModel
|
// cleanup ArtifactMetadataModel
|
||||||
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -664,14 +520,14 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.remove( artifactMetadataModels );
|
getArtifactMetadataModelEntityManager().remove( artifactMetadataModels );
|
||||||
|
|
||||||
Namespace namespace = new Namespace( namespaceId, new Repository( repositoryId ) );
|
Namespace namespace = new Namespace( namespaceId, new Repository( repositoryId ) );
|
||||||
|
|
||||||
final List<ProjectVersionMetadataModel> projectVersionMetadataModels =
|
final List<ProjectVersionMetadataModel> projectVersionMetadataModels =
|
||||||
new ArrayList<ProjectVersionMetadataModel>();
|
new ArrayList<ProjectVersionMetadataModel>();
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager.visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
|
getProjectVersionMetadataModelEntityManager().visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
|
public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
|
||||||
|
@ -692,12 +548,12 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
if ( !projectVersionMetadataModels.isEmpty() )
|
if ( !projectVersionMetadataModels.isEmpty() )
|
||||||
{
|
{
|
||||||
projectVersionMetadataModelEntityManager.remove( projectVersionMetadataModels );
|
getProjectVersionMetadataModelEntityManager().remove( projectVersionMetadataModels );
|
||||||
}
|
}
|
||||||
|
|
||||||
String key = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
|
String key = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
|
||||||
|
|
||||||
Project project = projectEntityManager.get( key );
|
Project project = getProjectEntityManager().get( key );
|
||||||
if ( project == null )
|
if ( project == null )
|
||||||
{
|
{
|
||||||
logger.debug( "removeProject notfound" );
|
logger.debug( "removeProject notfound" );
|
||||||
|
@ -705,7 +561,7 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
logger.debug( "removeProject {}", project );
|
logger.debug( "removeProject {}", project );
|
||||||
|
|
||||||
projectEntityManager.remove( project );
|
getProjectEntityManager().remove( project );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -713,7 +569,7 @@ public class CassandraMetadataRepository
|
||||||
throws MetadataResolutionException
|
throws MetadataResolutionException
|
||||||
{
|
{
|
||||||
final Set<String> versions = new HashSet<String>();
|
final Set<String> versions = new HashSet<String>();
|
||||||
projectVersionMetadataModelEntityManager.visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
|
getProjectVersionMetadataModelEntityManager().visitAll( new Function<ProjectVersionMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
|
public Boolean apply( ProjectVersionMetadataModel projectVersionMetadataModel )
|
||||||
|
@ -732,7 +588,7 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
// FIXME use cql query
|
// FIXME use cql query
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -761,7 +617,7 @@ public class CassandraMetadataRepository
|
||||||
String namespaceKey =
|
String namespaceKey =
|
||||||
new Namespace.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespaceId ).build();
|
new Namespace.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespaceId ).build();
|
||||||
// create the namespace if not exists
|
// create the namespace if not exists
|
||||||
Namespace namespace = namespaceEntityManager.get( namespaceKey );
|
Namespace namespace = getNamespaceEntityManager().get( namespaceKey );
|
||||||
if ( namespace == null )
|
if ( namespace == null )
|
||||||
{
|
{
|
||||||
namespace = updateOrAddNamespace( repositoryId, namespaceId );
|
namespace = updateOrAddNamespace( repositoryId, namespaceId );
|
||||||
|
@ -770,13 +626,13 @@ public class CassandraMetadataRepository
|
||||||
// create the project if not exist
|
// create the project if not exist
|
||||||
String projectKey = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
|
String projectKey = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
|
||||||
|
|
||||||
Project project = projectEntityManager.get( projectKey );
|
Project project = getProjectEntityManager().get( projectKey );
|
||||||
if ( project == null )
|
if ( project == null )
|
||||||
{
|
{
|
||||||
project = new Project( projectKey, projectId, namespace );
|
project = new Project( projectKey, projectId, namespace );
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
projectEntityManager.put( project );
|
getProjectEntityManager().put( project );
|
||||||
}
|
}
|
||||||
catch ( PersistenceException e )
|
catch ( PersistenceException e )
|
||||||
{
|
{
|
||||||
|
@ -787,7 +643,7 @@ public class CassandraMetadataRepository
|
||||||
String key = new ArtifactMetadataModel.KeyBuilder().withNamespace( namespace ).withProject( projectId ).withId(
|
String key = new ArtifactMetadataModel.KeyBuilder().withNamespace( namespace ).withProject( projectId ).withId(
|
||||||
artifactMeta.getId() ).withProjectVersion( projectVersion ).build();
|
artifactMeta.getId() ).withProjectVersion( projectVersion ).build();
|
||||||
|
|
||||||
ArtifactMetadataModel artifactMetadataModel = artifactMetadataModelEntityManager.get( key );
|
ArtifactMetadataModel artifactMetadataModel = getArtifactMetadataModelEntityManager().get( key );
|
||||||
if ( artifactMetadataModel == null )
|
if ( artifactMetadataModel == null )
|
||||||
{
|
{
|
||||||
artifactMetadataModel = new ArtifactMetadataModel( key, artifactMeta.getId(), repositoryId, namespaceId,
|
artifactMetadataModel = new ArtifactMetadataModel( key, artifactMeta.getId(), repositoryId, namespaceId,
|
||||||
|
@ -810,7 +666,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
artifactMetadataModelEntityManager.put( artifactMetadataModel );
|
getArtifactMetadataModelEntityManager().put( artifactMetadataModel );
|
||||||
}
|
}
|
||||||
catch ( PersistenceException e )
|
catch ( PersistenceException e )
|
||||||
{
|
{
|
||||||
|
@ -820,7 +676,7 @@ public class CassandraMetadataRepository
|
||||||
key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repositoryId ).withNamespace(
|
key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repositoryId ).withNamespace(
|
||||||
namespace ).withProjectId( projectId ).withId( projectVersion ).build();
|
namespace ).withProjectId( projectId ).withId( projectVersion ).build();
|
||||||
|
|
||||||
ProjectVersionMetadataModel projectVersionMetadataModel = projectVersionMetadataModelEntityManager.get( key );
|
ProjectVersionMetadataModel projectVersionMetadataModel = getProjectVersionMetadataModelEntityManager().get( key );
|
||||||
|
|
||||||
if ( projectVersionMetadataModel == null )
|
if ( projectVersionMetadataModel == null )
|
||||||
{
|
{
|
||||||
|
@ -830,7 +686,7 @@ public class CassandraMetadataRepository
|
||||||
projectVersionMetadataModel.setId( projectVersion );
|
projectVersionMetadataModel.setId( projectVersion );
|
||||||
projectVersionMetadataModel.setNamespace( namespace );
|
projectVersionMetadataModel.setNamespace( namespace );
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager.put( projectVersionMetadataModel );
|
getProjectVersionMetadataModelEntityManager().put( projectVersionMetadataModel );
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -846,7 +702,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
final Set<String> versions = new HashSet<String>();
|
final Set<String> versions = new HashSet<String>();
|
||||||
// FIXME use cql query
|
// FIXME use cql query
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -889,7 +745,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
||||||
|
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -906,7 +762,7 @@ public class CassandraMetadataRepository
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
|
|
||||||
metadataFacetModelEntityManager.remove( metadataFacetModels );
|
getMetadataFacetModelEntityManager().remove( metadataFacetModels );
|
||||||
|
|
||||||
Map<String, String> properties = metadataFacet.toProperties();
|
Map<String, String> properties = metadataFacet.toProperties();
|
||||||
|
|
||||||
|
@ -923,7 +779,7 @@ public class CassandraMetadataRepository
|
||||||
metadataFacetModelsToAdd.add( metadataFacetModel );
|
metadataFacetModelsToAdd.add( metadataFacetModel );
|
||||||
}
|
}
|
||||||
|
|
||||||
metadataFacetModelEntityManager.put( metadataFacetModelsToAdd );
|
getMetadataFacetModelEntityManager().put( metadataFacetModelsToAdd );
|
||||||
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -935,7 +791,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
String namespaceKey =
|
String namespaceKey =
|
||||||
new Namespace.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespaceId ).build();
|
new Namespace.KeyBuilder().withRepositoryId( repositoryId ).withNamespace( namespaceId ).build();
|
||||||
Namespace namespace = namespaceEntityManager.get( namespaceKey );
|
Namespace namespace = getNamespaceEntityManager().get( namespaceKey );
|
||||||
if ( namespace == null )
|
if ( namespace == null )
|
||||||
{
|
{
|
||||||
namespace = updateOrAddNamespace( repositoryId, namespaceId );
|
namespace = updateOrAddNamespace( repositoryId, namespaceId );
|
||||||
|
@ -943,18 +799,18 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
String key = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
|
String key = new Project.KeyBuilder().withNamespace( namespace ).withProjectId( projectId ).build();
|
||||||
|
|
||||||
Project project = projectEntityManager.get( key );
|
Project project = getProjectEntityManager().get( key );
|
||||||
if ( project == null )
|
if ( project == null )
|
||||||
{
|
{
|
||||||
project = new Project( key, projectId, namespace );
|
project = new Project( key, projectId, namespace );
|
||||||
projectEntityManager.put( project );
|
getProjectEntityManager().put( project );
|
||||||
}
|
}
|
||||||
|
|
||||||
// we don't test of repository and namespace really exist !
|
// we don't test of repository and namespace really exist !
|
||||||
key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repositoryId ).withNamespace(
|
key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repositoryId ).withNamespace(
|
||||||
namespaceId ).withProjectId( projectId ).withId( versionMetadata.getId() ).build();
|
namespaceId ).withProjectId( projectId ).withId( versionMetadata.getId() ).build();
|
||||||
|
|
||||||
ProjectVersionMetadataModel projectVersionMetadataModel = projectVersionMetadataModelEntityManager.get( key );
|
ProjectVersionMetadataModel projectVersionMetadataModel = getProjectVersionMetadataModelEntityManager().get( key );
|
||||||
|
|
||||||
if ( projectVersionMetadataModel == null )
|
if ( projectVersionMetadataModel == null )
|
||||||
{
|
{
|
||||||
|
@ -976,7 +832,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
projectVersionMetadataModelEntityManager.put( projectVersionMetadataModel );
|
getProjectVersionMetadataModelEntityManager().put( projectVersionMetadataModel );
|
||||||
|
|
||||||
ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
|
ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
|
||||||
artifactMetadataModel.setArtifactMetadataModelId(
|
artifactMetadataModel.setArtifactMetadataModelId(
|
||||||
|
@ -1009,7 +865,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
// FIXME use cql query !!
|
// FIXME use cql query !!
|
||||||
final List<String> facets = new ArrayList<String>();
|
final List<String> facets = new ArrayList<String>();
|
||||||
this.metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
this.getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1044,7 +900,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
// FIXME use cql query !!
|
// FIXME use cql query !!
|
||||||
final List<MetadataFacetModel> facets = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> facets = new ArrayList<MetadataFacetModel>();
|
||||||
this.metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
this.getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1097,7 +953,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
|
String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
|
||||||
metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).build();
|
metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).build();
|
||||||
MetadataFacetModel metadataFacetModel = metadataFacetModelEntityManager.get( key );
|
MetadataFacetModel metadataFacetModel = getMetadataFacetModelEntityManager().get( key );
|
||||||
if ( metadataFacetModel == null )
|
if ( metadataFacetModel == null )
|
||||||
{
|
{
|
||||||
metadataFacetModel = new MetadataFacetModel();
|
metadataFacetModel = new MetadataFacetModel();
|
||||||
|
@ -1112,7 +968,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
metadataFacetModelEntityManager.put( metadataFacetModel );
|
getMetadataFacetModelEntityManager().put( metadataFacetModel );
|
||||||
}
|
}
|
||||||
catch ( PersistenceException e )
|
catch ( PersistenceException e )
|
||||||
{
|
{
|
||||||
|
@ -1127,7 +983,7 @@ public class CassandraMetadataRepository
|
||||||
String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
|
String key = new MetadataFacetModel.KeyBuilder().withRepositoryId( repositoryId ).withFacetId(
|
||||||
metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).withKey( entry.getKey() ).build();
|
metadataFacet.getFacetId() ).withName( metadataFacet.getName() ).withKey( entry.getKey() ).build();
|
||||||
|
|
||||||
MetadataFacetModel metadataFacetModel = metadataFacetModelEntityManager.get( key );
|
MetadataFacetModel metadataFacetModel = getMetadataFacetModelEntityManager().get( key );
|
||||||
if ( metadataFacetModel == null )
|
if ( metadataFacetModel == null )
|
||||||
{
|
{
|
||||||
metadataFacetModel = new MetadataFacetModel();
|
metadataFacetModel = new MetadataFacetModel();
|
||||||
|
@ -1143,7 +999,7 @@ public class CassandraMetadataRepository
|
||||||
metadataFacetModel.setValue( entry.getValue() );
|
metadataFacetModel.setValue( entry.getValue() );
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
metadataFacetModelEntityManager.put( metadataFacetModel );
|
getMetadataFacetModelEntityManager().put( metadataFacetModel );
|
||||||
}
|
}
|
||||||
catch ( PersistenceException e )
|
catch ( PersistenceException e )
|
||||||
{
|
{
|
||||||
|
@ -1162,7 +1018,7 @@ public class CassandraMetadataRepository
|
||||||
final List<MetadataFacetModel> toRemove = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> toRemove = new ArrayList<MetadataFacetModel>();
|
||||||
|
|
||||||
// FIXME cql query
|
// FIXME cql query
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1181,7 +1037,7 @@ public class CassandraMetadataRepository
|
||||||
} );
|
} );
|
||||||
logger.debug( "removeMetadataFacets repositoryId: '{}', facetId: '{}', toRemove: {}", repositoryId, facetId,
|
logger.debug( "removeMetadataFacets repositoryId: '{}', facetId: '{}', toRemove: {}", repositoryId, facetId,
|
||||||
toRemove );
|
toRemove );
|
||||||
metadataFacetModelEntityManager.remove( toRemove );
|
getMetadataFacetModelEntityManager().remove( toRemove );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1192,7 +1048,7 @@ public class CassandraMetadataRepository
|
||||||
final List<MetadataFacetModel> toRemove = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> toRemove = new ArrayList<MetadataFacetModel>();
|
||||||
|
|
||||||
// FIXME cql query
|
// FIXME cql query
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1212,7 +1068,7 @@ public class CassandraMetadataRepository
|
||||||
} );
|
} );
|
||||||
logger.debug( "removeMetadataFacets repositoryId: '{}', facetId: '{}', toRemove: {}", repositoryId, facetId,
|
logger.debug( "removeMetadataFacets repositoryId: '{}', facetId: '{}', toRemove: {}", repositoryId, facetId,
|
||||||
toRemove );
|
toRemove );
|
||||||
metadataFacetModelEntityManager.remove( toRemove );
|
getMetadataFacetModelEntityManager().remove( toRemove );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1224,7 +1080,7 @@ public class CassandraMetadataRepository
|
||||||
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
||||||
|
|
||||||
// FIXME cql query
|
// FIXME cql query
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1269,7 +1125,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
||||||
|
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1329,11 +1185,11 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
if ( logger.isDebugEnabled() )
|
if ( logger.isDebugEnabled() )
|
||||||
{
|
{
|
||||||
logger.debug( "all ArtifactMetadataModel: {}", artifactMetadataModelEntityManager.getAll() );
|
logger.debug( "all ArtifactMetadataModel: {}", getArtifactMetadataModelEntityManager().getAll() );
|
||||||
}
|
}
|
||||||
|
|
||||||
// FIXME cql query
|
// FIXME cql query
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1384,7 +1240,7 @@ public class CassandraMetadataRepository
|
||||||
ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
|
ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
|
||||||
artifactMetadataModel.setArtifactMetadataModelId( key );
|
artifactMetadataModel.setArtifactMetadataModelId( key );
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.remove( artifactMetadataModel );
|
getArtifactMetadataModelEntityManager().remove( artifactMetadataModel );
|
||||||
|
|
||||||
key =
|
key =
|
||||||
new ProjectVersionMetadataModel.KeyBuilder().withId( version ).withRepository( repositoryId ).withNamespace(
|
new ProjectVersionMetadataModel.KeyBuilder().withId( version ).withRepository( repositoryId ).withNamespace(
|
||||||
|
@ -1393,7 +1249,7 @@ public class CassandraMetadataRepository
|
||||||
ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel();
|
ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel();
|
||||||
projectVersionMetadataModel.setRowId( key );
|
projectVersionMetadataModel.setRowId( key );
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager.remove( projectVersionMetadataModel );
|
getProjectVersionMetadataModelEntityManager().remove( projectVersionMetadataModel );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1411,7 +1267,7 @@ public class CassandraMetadataRepository
|
||||||
ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
|
ArtifactMetadataModel artifactMetadataModel = new ArtifactMetadataModel();
|
||||||
artifactMetadataModel.setArtifactMetadataModelId( key );
|
artifactMetadataModel.setArtifactMetadataModelId( key );
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.remove( artifactMetadataModel );
|
getArtifactMetadataModelEntityManager().remove( artifactMetadataModel );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1420,7 +1276,7 @@ public class CassandraMetadataRepository
|
||||||
throws MetadataRepositoryException
|
throws MetadataRepositoryException
|
||||||
{
|
{
|
||||||
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1438,9 +1294,9 @@ public class CassandraMetadataRepository
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
artifactMetadataModelEntityManager.remove( artifactMetadataModels );
|
getArtifactMetadataModelEntityManager().remove( artifactMetadataModels );
|
||||||
/*
|
/*
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1466,7 +1322,7 @@ public class CassandraMetadataRepository
|
||||||
return Boolean.TRUE;
|
return Boolean.TRUE;
|
||||||
}
|
}
|
||||||
} );
|
} );
|
||||||
metadataFacetModelEntityManager.remove( metadataFacetModels );
|
getMetadataFacetModelEntityManager().remove( metadataFacetModels );
|
||||||
*/
|
*/
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1477,7 +1333,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
||||||
// FIXME use cql query !
|
// FIXME use cql query !
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1515,7 +1371,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
final BooleanHolder booleanHolder = new BooleanHolder();
|
final BooleanHolder booleanHolder = new BooleanHolder();
|
||||||
|
|
||||||
projectEntityManager.visitAll( new Function<Project, Boolean>()
|
getProjectEntityManager().visitAll( new Function<Project, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( Project project )
|
public Boolean apply( Project project )
|
||||||
|
@ -1556,7 +1412,7 @@ public class CassandraMetadataRepository
|
||||||
String key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repoId ).withNamespace(
|
String key = new ProjectVersionMetadataModel.KeyBuilder().withRepository( repoId ).withNamespace(
|
||||||
namespace ).withProjectId( projectId ).withId( projectVersion ).build();
|
namespace ).withProjectId( projectId ).withId( projectVersion ).build();
|
||||||
|
|
||||||
ProjectVersionMetadataModel projectVersionMetadataModel = projectVersionMetadataModelEntityManager.get( key );
|
ProjectVersionMetadataModel projectVersionMetadataModel = getProjectVersionMetadataModelEntityManager().get( key );
|
||||||
|
|
||||||
if ( projectVersionMetadataModel == null )
|
if ( projectVersionMetadataModel == null )
|
||||||
{
|
{
|
||||||
|
@ -1582,7 +1438,7 @@ public class CassandraMetadataRepository
|
||||||
// facets
|
// facets
|
||||||
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
||||||
// FIXME use cql query
|
// FIXME use cql query
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
@ -1649,7 +1505,7 @@ public class CassandraMetadataRepository
|
||||||
final Set<String> projects = new HashSet<String>();
|
final Set<String> projects = new HashSet<String>();
|
||||||
|
|
||||||
// FIXME use cql query
|
// FIXME use cql query
|
||||||
projectEntityManager.visitAll( new Function<Project, Boolean>()
|
getProjectEntityManager().visitAll( new Function<Project, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( Project project )
|
public Boolean apply( Project project )
|
||||||
|
@ -1667,7 +1523,7 @@ public class CassandraMetadataRepository
|
||||||
} );
|
} );
|
||||||
/*
|
/*
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1698,7 +1554,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
// FIXME use cql query
|
// FIXME use cql query
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1723,7 +1579,7 @@ public class CassandraMetadataRepository
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
artifactMetadataModelEntityManager.remove( artifactMetadataModels );
|
getArtifactMetadataModelEntityManager().remove( artifactMetadataModels );
|
||||||
|
|
||||||
String key = new ProjectVersionMetadataModel.KeyBuilder().withProjectId( projectId ).withId(
|
String key = new ProjectVersionMetadataModel.KeyBuilder().withProjectId( projectId ).withId(
|
||||||
projectVersion ).withRepository( repoId ).withNamespace( namespace ).build();
|
projectVersion ).withRepository( repoId ).withNamespace( namespace ).build();
|
||||||
|
@ -1731,7 +1587,7 @@ public class CassandraMetadataRepository
|
||||||
ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel();
|
ProjectVersionMetadataModel projectVersionMetadataModel = new ProjectVersionMetadataModel();
|
||||||
projectVersionMetadataModel.setRowId( key );
|
projectVersionMetadataModel.setRowId( key );
|
||||||
|
|
||||||
projectVersionMetadataModelEntityManager.remove( projectVersionMetadataModel );
|
getProjectVersionMetadataModelEntityManager().remove( projectVersionMetadataModel );
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
@ -1741,7 +1597,7 @@ public class CassandraMetadataRepository
|
||||||
{
|
{
|
||||||
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
final List<ArtifactMetadataModel> artifactMetadataModels = new ArrayList<ArtifactMetadataModel>();
|
||||||
// FIXME use cql query !
|
// FIXME use cql query !
|
||||||
artifactMetadataModelEntityManager.visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
getArtifactMetadataModelEntityManager().visitAll( new Function<ArtifactMetadataModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
public Boolean apply( ArtifactMetadataModel artifactMetadataModel )
|
||||||
|
@ -1772,7 +1628,7 @@ public class CassandraMetadataRepository
|
||||||
|
|
||||||
// retrieve facets
|
// retrieve facets
|
||||||
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
final List<MetadataFacetModel> metadataFacetModels = new ArrayList<MetadataFacetModel>();
|
||||||
metadataFacetModelEntityManager.visitAll( new Function<MetadataFacetModel, Boolean>()
|
getMetadataFacetModelEntityManager().visitAll( new Function<MetadataFacetModel, Boolean>()
|
||||||
{
|
{
|
||||||
@Override
|
@Override
|
||||||
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
public Boolean apply( MetadataFacetModel metadataFacetModel )
|
||||||
|
|
|
@ -37,7 +37,7 @@ import java.util.Map;
|
||||||
/**
|
/**
|
||||||
* @author Olivier Lamy
|
* @author Olivier Lamy
|
||||||
*/
|
*/
|
||||||
@Service( "repositorySessionFactory#cassandra" )
|
@Service("repositorySessionFactory#cassandra")
|
||||||
public class CassandraRepositorySessionFactory
|
public class CassandraRepositorySessionFactory
|
||||||
implements RepositorySessionFactory
|
implements RepositorySessionFactory
|
||||||
{
|
{
|
||||||
|
@ -45,7 +45,7 @@ public class CassandraRepositorySessionFactory
|
||||||
private Map<String, MetadataFacetFactory> metadataFacetFactories;
|
private Map<String, MetadataFacetFactory> metadataFacetFactories;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
@Named( value = "archivaConfiguration#default" )
|
@Named(value = "archivaConfiguration#default")
|
||||||
private ArchivaConfiguration configuration;
|
private ArchivaConfiguration configuration;
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
|
@ -79,8 +79,7 @@ public class CassandraRepositorySessionFactory
|
||||||
public RepositorySession createSession()
|
public RepositorySession createSession()
|
||||||
{
|
{
|
||||||
CassandraMetadataRepository metadataRepository =
|
CassandraMetadataRepository metadataRepository =
|
||||||
new CassandraMetadataRepository( metadataFacetFactories, configuration,
|
new CassandraMetadataRepository( metadataFacetFactories, configuration, cassandraEntityManagerFactory );
|
||||||
cassandraEntityManagerFactory.getKeyspace() );
|
|
||||||
return new RepositorySession( metadataRepository, metadataResolver );
|
return new RepositorySession( metadataRepository, metadataResolver );
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -24,17 +24,30 @@ import com.netflix.astyanax.AstyanaxContext;
|
||||||
import com.netflix.astyanax.Keyspace;
|
import com.netflix.astyanax.Keyspace;
|
||||||
import com.netflix.astyanax.connectionpool.NodeDiscoveryType;
|
import com.netflix.astyanax.connectionpool.NodeDiscoveryType;
|
||||||
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
|
import com.netflix.astyanax.connectionpool.exceptions.ConnectionException;
|
||||||
|
import com.netflix.astyanax.connectionpool.exceptions.NotFoundException;
|
||||||
import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl;
|
import com.netflix.astyanax.connectionpool.impl.ConnectionPoolConfigurationImpl;
|
||||||
import com.netflix.astyanax.connectionpool.impl.ConnectionPoolType;
|
import com.netflix.astyanax.connectionpool.impl.ConnectionPoolType;
|
||||||
import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor;
|
import com.netflix.astyanax.connectionpool.impl.CountingConnectionPoolMonitor;
|
||||||
import com.netflix.astyanax.ddl.KeyspaceDefinition;
|
import com.netflix.astyanax.ddl.KeyspaceDefinition;
|
||||||
|
import com.netflix.astyanax.entitystore.DefaultEntityManager;
|
||||||
|
import com.netflix.astyanax.entitystore.EntityManager;
|
||||||
import com.netflix.astyanax.impl.AstyanaxConfigurationImpl;
|
import com.netflix.astyanax.impl.AstyanaxConfigurationImpl;
|
||||||
import com.netflix.astyanax.thrift.ThriftFamilyFactory;
|
import com.netflix.astyanax.thrift.ThriftFamilyFactory;
|
||||||
|
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.ProjectVersionMetadataModel;
|
||||||
|
import org.apache.archiva.metadata.repository.cassandra.model.Repository;
|
||||||
|
import org.slf4j.Logger;
|
||||||
|
import org.slf4j.LoggerFactory;
|
||||||
import org.springframework.context.ApplicationContext;
|
import org.springframework.context.ApplicationContext;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
import javax.annotation.PostConstruct;
|
import javax.annotation.PostConstruct;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
|
import javax.persistence.PersistenceException;
|
||||||
|
import java.util.Properties;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* FIXME make all configuration not hardcoded :-)
|
* FIXME make all configuration not hardcoded :-)
|
||||||
|
@ -46,6 +59,8 @@ public class DefaultCassandraEntityManagerFactory
|
||||||
implements CassandraEntityManagerFactory
|
implements CassandraEntityManagerFactory
|
||||||
{
|
{
|
||||||
|
|
||||||
|
private Logger logger = LoggerFactory.getLogger( getClass() );
|
||||||
|
|
||||||
@Inject
|
@Inject
|
||||||
private ApplicationContext applicationContext;
|
private ApplicationContext applicationContext;
|
||||||
|
|
||||||
|
@ -53,9 +68,21 @@ public class DefaultCassandraEntityManagerFactory
|
||||||
|
|
||||||
private static final String KEYSPACE_NAME = "ArchivaKeySpace";
|
private static final String KEYSPACE_NAME = "ArchivaKeySpace";
|
||||||
|
|
||||||
|
private AstyanaxContext<Keyspace> keyspaceContext;
|
||||||
|
|
||||||
private Keyspace keyspace;
|
private Keyspace keyspace;
|
||||||
|
|
||||||
private AstyanaxContext<Keyspace> keyspaceContext;
|
private EntityManager<Repository, String> repositoryEntityManager;
|
||||||
|
|
||||||
|
private EntityManager<Namespace, String> namespaceEntityManager;
|
||||||
|
|
||||||
|
private EntityManager<Project, String> projectEntityManager;
|
||||||
|
|
||||||
|
private EntityManager<ArtifactMetadataModel, String> artifactMetadataModelEntityManager;
|
||||||
|
|
||||||
|
private EntityManager<MetadataFacetModel, String> metadataFacetModelEntityManager;
|
||||||
|
|
||||||
|
private EntityManager<ProjectVersionMetadataModel, String> projectVersionMetadataModelEntityManager;
|
||||||
|
|
||||||
|
|
||||||
@PostConstruct
|
@PostConstruct
|
||||||
|
@ -104,6 +131,106 @@ public class DefaultCassandraEntityManagerFactory
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Properties properties = keyspace.getKeyspaceProperties();
|
||||||
|
logger.info( "keyspace properties: {}", properties );
|
||||||
|
}
|
||||||
|
catch ( ConnectionException e )
|
||||||
|
{
|
||||||
|
// FIXME better logging !
|
||||||
|
logger.warn( e.getMessage(), e );
|
||||||
|
}
|
||||||
|
|
||||||
|
try
|
||||||
|
{
|
||||||
|
repositoryEntityManager =
|
||||||
|
new DefaultEntityManager.Builder<Repository, String>().withEntityType( Repository.class ).withKeyspace(
|
||||||
|
keyspace ).build();
|
||||||
|
boolean exists = columnFamilyExists( "repository" );
|
||||||
|
// TODO very basic test we must test model change too
|
||||||
|
if ( !exists )
|
||||||
|
{
|
||||||
|
repositoryEntityManager.createStorage( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
namespaceEntityManager =
|
||||||
|
new DefaultEntityManager.Builder<Namespace, String>().withEntityType( Namespace.class ).withKeyspace(
|
||||||
|
keyspace ).build();
|
||||||
|
|
||||||
|
exists = columnFamilyExists( "namespace" );
|
||||||
|
if ( !exists )
|
||||||
|
{
|
||||||
|
namespaceEntityManager.createStorage( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
projectEntityManager =
|
||||||
|
new DefaultEntityManager.Builder<Project, String>().withEntityType( Project.class ).withKeyspace(
|
||||||
|
keyspace ).build();
|
||||||
|
|
||||||
|
exists = columnFamilyExists( "project" );
|
||||||
|
if ( !exists )
|
||||||
|
{
|
||||||
|
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 );
|
||||||
|
}
|
||||||
|
|
||||||
|
projectVersionMetadataModelEntityManager =
|
||||||
|
new DefaultEntityManager.Builder<ProjectVersionMetadataModel, String>().withEntityType(
|
||||||
|
ProjectVersionMetadataModel.class ).withKeyspace( keyspace ).build();
|
||||||
|
|
||||||
|
exists = columnFamilyExists( "projectversionmetadatamodel" );
|
||||||
|
if ( !exists )
|
||||||
|
{
|
||||||
|
projectVersionMetadataModelEntityManager.createStorage( null );
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
catch ( PersistenceException e )
|
||||||
|
{
|
||||||
|
// FIXME report exception
|
||||||
|
logger.error( e.getMessage(), e );
|
||||||
|
}
|
||||||
|
catch ( ConnectionException e )
|
||||||
|
{
|
||||||
|
// FIXME report exception
|
||||||
|
logger.error( e.getMessage(), e );
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private boolean columnFamilyExists( String columnFamilyName )
|
||||||
|
throws ConnectionException
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Properties properties = keyspace.getColumnFamilyProperties( columnFamilyName );
|
||||||
|
logger.debug( "getColumnFamilyProperties for {}: {}", columnFamilyName, properties );
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
catch ( NotFoundException e )
|
||||||
|
{
|
||||||
|
return false;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -112,4 +239,67 @@ public class DefaultCassandraEntityManagerFactory
|
||||||
{
|
{
|
||||||
return keyspace;
|
return keyspace;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public EntityManager<Repository, String> getRepositoryEntityManager()
|
||||||
|
{
|
||||||
|
return repositoryEntityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setRepositoryEntityManager( EntityManager<Repository, String> repositoryEntityManager )
|
||||||
|
{
|
||||||
|
this.repositoryEntityManager = repositoryEntityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityManager<Namespace, String> getNamespaceEntityManager()
|
||||||
|
{
|
||||||
|
return namespaceEntityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setNamespaceEntityManager( EntityManager<Namespace, String> namespaceEntityManager )
|
||||||
|
{
|
||||||
|
this.namespaceEntityManager = namespaceEntityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityManager<Project, String> getProjectEntityManager()
|
||||||
|
{
|
||||||
|
return projectEntityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProjectEntityManager( EntityManager<Project, String> projectEntityManager )
|
||||||
|
{
|
||||||
|
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;
|
||||||
|
}
|
||||||
|
|
||||||
|
public EntityManager<ProjectVersionMetadataModel, String> getProjectVersionMetadataModelEntityManager()
|
||||||
|
{
|
||||||
|
return projectVersionMetadataModelEntityManager;
|
||||||
|
}
|
||||||
|
|
||||||
|
public void setProjectVersionMetadataModelEntityManager(
|
||||||
|
EntityManager<ProjectVersionMetadataModel, String> projectVersionMetadataModelEntityManager )
|
||||||
|
{
|
||||||
|
this.projectVersionMetadataModelEntityManager = projectVersionMetadataModelEntityManager;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -67,7 +67,7 @@ public class CassandraMetadataRepositoryTest
|
||||||
|
|
||||||
Map<String, MetadataFacetFactory> factories = createTestMetadataFacetFactories();
|
Map<String, MetadataFacetFactory> factories = createTestMetadataFacetFactories();
|
||||||
|
|
||||||
this.cmr = new CassandraMetadataRepository( factories, null, cassandraEntityManagerFactory.getKeyspace() );
|
this.cmr = new CassandraMetadataRepository( factories, null, cassandraEntityManagerFactory );
|
||||||
this.repository = this.cmr;
|
this.repository = this.cmr;
|
||||||
|
|
||||||
clearReposAndNamespace();
|
clearReposAndNamespace();
|
||||||
|
|
|
@ -58,7 +58,7 @@ public class RepositoriesNamespaceTest
|
||||||
throws Exception
|
throws Exception
|
||||||
{
|
{
|
||||||
|
|
||||||
cmr = new CassandraMetadataRepository( null, null, cassandraEntityManagerFactory.getKeyspace() );
|
cmr = new CassandraMetadataRepository( null, null, cassandraEntityManagerFactory );
|
||||||
clearReposAndNamespace();
|
clearReposAndNamespace();
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue