private static ProjectMetadata createProject( String ns ) { ProjectMetadata project = new ProjectMetadata(); project.setId( TEST_PROJECT ); project.setNamespace( ns ); return project; }
@Override public void updateProject( String repositoryId, ProjectMetadata project ) throws MetadataRepositoryException { updateProject( repositoryId, project.getNamespace(), project.getId() ); }
/** * Adds a custom property. Repository storage implementations may add custom properties * on the project level. * @param key * @param value */ public void addProperty(String key, String value) { Properties props = getProperties(); props.setProperty( key, value ); }
@Test public void testGetProjectOnly() throws Exception { assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ProjectMetadata project = new ProjectMetadata(); project.setId( TEST_PROJECT ); project.setNamespace( TEST_NAMESPACE ); repository.updateProject( TEST_REPO_ID, project ); project = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertEquals( TEST_PROJECT, project.getId() ); assertEquals( TEST_NAMESPACE, project.getNamespace() ); // test that namespace is also constructed Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 ); }
ProjectMetadata project = new ProjectMetadata(); project.setNamespace( artifact.getNamespace() ); project.setId( artifact.getProject() ); metadataRepository.updateArtifact( repoId, project.getNamespace(), project.getId(), projectVersion, artifact ); if ( createVersionMetadata ) metadataRepository.updateProjectVersion( repoId, project.getNamespace(), project.getId(), versionMetadata );
@Override public ProjectMetadata getProject( String repoId, String namespace, String projectId ) throws MetadataResolutionException { try { Path directory = getDirectory( repoId ).resolve( namespace + "/" + projectId ); Properties properties = readOrCreateProperties( directory, PROJECT_METADATA_KEY ); ProjectMetadata project = null; String id = properties.getProperty( "id" ); if ( id != null ) { project = new ProjectMetadata(); project.setNamespace( properties.getProperty( "namespace" ) ); project.setId( id ); } return project; } catch ( IOException e ) { throw new MetadataResolutionException( e.getMessage(), e ); } }
ProjectMetadata project = new ProjectMetadata(); project.setNamespace( artifact.getNamespace() ); project.setId( artifact.getProject() ); metadataRepository.updateArtifact( repoId, project.getNamespace(), project.getId(), projectVersion, artifact ); if ( createVersionMetadata ) metadataRepository.updateProjectVersion( repoId, project.getNamespace(), project.getId(), versionMetadata );
@Override public void updateProject( String repositoryId, ProjectMetadata project ) throws MetadataRepositoryException { updateProject( repositoryId, project.getNamespace(), project.getId() ); }
@Override public ProjectMetadata getProject( String repoId, String namespace, String projectId ) throws MetadataResolutionException { try { File directory = new File( getDirectory( repoId ), namespace + "/" + projectId ); Properties properties = readOrCreateProperties( directory, PROJECT_METADATA_KEY ); ProjectMetadata project = null; String id = properties.getProperty( "id" ); if ( id != null ) { project = new ProjectMetadata(); project.setNamespace( properties.getProperty( "namespace" ) ); project.setId( id ); } return project; } catch ( IOException e ) { throw new MetadataResolutionException( e.getMessage(), e ); } }
@Override public void updateProject( String repoId, ProjectMetadata project ) { updateProject( repoId, project.getNamespace(), project.getId() ); }
@Override public ProjectMetadata getProject( String repositoryId, String namespace, String projectId ) throws MetadataResolutionException { ProjectMetadata metadata = null; try { Node root = getJcrSession().getRootNode(); // basically just checking it exists String path = getProjectPath( repositoryId, namespace, projectId ); if ( root.hasNode( path ) ) { metadata = new ProjectMetadata(); metadata.setId( projectId ); metadata.setNamespace( namespace ); } } catch ( RepositoryException e ) { throw new MetadataResolutionException( e.getMessage(), e ); } return metadata; }
@Override public void updateProject( String repoId, ProjectMetadata project ) { updateProject( repoId, project.getNamespace(), project.getId() ); }
@Override public ProjectMetadata getProject( String repositoryId, String namespace, String projectId ) throws MetadataResolutionException { ProjectMetadata metadata = null; try { Node root = getJcrSession().getRootNode(); // basically just checking it exists String path = getProjectPath( repositoryId, namespace, projectId ); if ( root.hasNode( path ) ) { metadata = new ProjectMetadata(); metadata.setId( projectId ); metadata.setNamespace( namespace ); } } catch ( RepositoryException e ) { throw new MetadataResolutionException( e.getMessage(), e ); } return metadata; }
.addEqualsExpression( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) // .addEqualsExpression( PROJECT_ID.toString(), projectMetadata.getId() ) // .execute(); Namespace namespace = updateOrAddNamespace( repositoryId, projectMetadata.getNamespace() ); new Project.KeyBuilder().withProjectId( projectMetadata.getId() ).withNamespace( namespace ).build(); .addInsertion( key, cf, CassandraUtils.column( PROJECT_ID.toString(), projectMetadata.getId() ) ) // .addInsertion( key, cf, CassandraUtils.column( NAMESPACE_ID.toString(), projectMetadata.getNamespace() ) )// .execute();
@Test public void testGetProjectsWithOtherNamespacesPresent() throws Exception { ProjectMetadata projectMetadata = new ProjectMetadata(); projectMetadata.setId( TEST_PROJECT ); projectMetadata.setNamespace( "org.apache.maven" ); repository.updateProject( TEST_REPO_ID, projectMetadata ); repository.updateNamespace( TEST_REPO_ID, "org.apache.maven.shared" ); Collection<String> projects = repository.getProjects( TEST_REPO_ID, "org.apache.maven" ); assertThat( projects ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_PROJECT ); }
@Test public void testGetArtifactOnly() throws Exception { assertThat( new ArrayList<>( repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ) ).isNotNull().isEmpty(); assertThat( repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ).isNull(); assertThat( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ).isNull(); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ArtifactMetadata metadata = createArtifact(); repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, metadata ); Collection<ArtifactMetadata> artifacts = repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); //assertEquals( Collections.singletonList( metadata ), new ArrayList<ArtifactMetadata>( artifacts ) ); assertThat( artifacts ).containsExactly( metadata ); // test that namespace, project and project version is also constructed assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isNotEmpty().contains( TEST_NAMESPACE ).hasSize( 1 ); ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertEquals( TEST_PROJECT, projectMetadata.getId() ); assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() ); ProjectVersionMetadata projectVersionMetadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( TEST_PROJECT_VERSION, projectVersionMetadata.getId() ); }
@Override public ProjectMetadata getProject( final String repoId, final String namespace, final String id ) throws MetadataResolutionException { QueryResult<OrderedRows<String, String, String>> result = HFactory // .createRangeSlicesQuery( keyspace, ss, ss, ss ) // .setColumnFamily( cassandraArchivaManager.getProjectFamilyName() ) // .setColumnNames( PROJECT_ID.toString() ) // .addEqualsExpression( REPOSITORY_NAME.toString(), repoId ) // .addEqualsExpression( NAMESPACE_ID.toString(), namespace ) // .addEqualsExpression( PROJECT_ID.toString(), id ) // .execute(); int count = result.get().getCount(); if ( count < 1 ) { return null; } ProjectMetadata projectMetadata = new ProjectMetadata(); projectMetadata.setId( id ); projectMetadata.setNamespace( namespace ); logger.debug( "getProject repoId: {}, namespace: {}, projectId: {} -> {}", repoId, namespace, id, projectMetadata ); return projectMetadata; }
@Test public void testGetProjectVersionOnly() throws Exception { assertNull( repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ); assertNull( repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ) ); assertThat( repository.getRootNamespaces( TEST_REPO_ID ) ).isNotNull().isEmpty(); ProjectVersionMetadata metadata = new ProjectVersionMetadata(); metadata.setId( TEST_PROJECT_VERSION ); repository.updateProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, metadata ); metadata = repository.getProjectVersion( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ); assertEquals( TEST_PROJECT_VERSION, metadata.getId() ); // test that namespace and project is also constructed Collection<String> namespaces = repository.getRootNamespaces( TEST_REPO_ID ); assertThat( namespaces ).isNotNull().isNotEmpty().hasSize( 1 ).contains( TEST_NAMESPACE ); ProjectMetadata projectMetadata = repository.getProject( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT ); assertNotNull( projectMetadata ); assertEquals( TEST_PROJECT, projectMetadata.getId() ); assertEquals( TEST_NAMESPACE, projectMetadata.getNamespace() ); }
ProjectMetadata project1 = new ProjectMetadata(); project1.setNamespace( TEST_NAMESPACE ); project1.setId( "project1" ); repository.updateProject( TEST_REPO_ID, project1 ); ProjectMetadata project2 = new ProjectMetadata(); project2.setNamespace( TEST_NAMESPACE ); project2.setId( "project2" ); repository.updateProject( TEST_REPO_ID, project2 );
ProjectMetadata projectMetadata = new ProjectMetadata(); projectMetadata.setId( projectId ); projectMetadata.setNamespace( namespaceId ); updateProject( repositoryId, projectMetadata );