You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by ol...@apache.org on 2013/05/22 15:10:19 UTC

svn commit: r1485198 - in /archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra: CassandraMetadataRepository.java model/ProjectVersionMetadataModel.java

Author: olamy
Date: Wed May 22 13:10:19 2013
New Revision: 1485198

URL: http://svn.apache.org/r1485198
Log:
implement more methods

Modified:
    archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/CassandraMetadataRepository.java
    archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java

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

Modified: archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java
URL: http://svn.apache.org/viewvc/archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java?rev=1485198&r1=1485197&r2=1485198&view=diff
==============================================================================
--- archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java (original)
+++ archiva/sandbox/trunk/metadata-store-cassandra/src/main/java/org/apache/archiva/metadata/repository/cassandra/model/ProjectVersionMetadataModel.java Wed May 22 13:10:19 2013
@@ -259,7 +259,9 @@ public class ProjectVersionMetadataModel
         public String build()
         {
             // FIXME add some controls
-            return this.repositoryId + "-" + this.namespace + "-" + this.projectId + "-" + this.id;
+            return this.repositoryId + "-" + this.namespace + "-" + this.projectId + ( this.id == null
+                ? ""
+                : "-" + this.id );
         }
     }
 }