diff options
author | Brett Porter <brett@apache.org> | 2010-03-10 16:15:21 +0000 |
---|---|---|
committer | Brett Porter <brett@apache.org> | 2010-03-10 16:15:21 +0000 |
commit | d6c33feff12568218e694f0bf9a421fa19cb1914 (patch) | |
tree | 39f539d898f3d4de0b7fc0e789823298d47740c1 /archiva-modules/archiva-base | |
parent | 17348a45ce949d306c4ebf32b7005d920813fded (diff) | |
download | archiva-d6c33feff12568218e694f0bf9a421fa19cb1914.tar.gz archiva-d6c33feff12568218e694f0bf9a421fa19cb1914.zip |
[MRM-1282] remove use of repository layer in favour of storage API
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@921423 13f79535-47bb-0310-9956-ffa450edef68
Diffstat (limited to 'archiva-modules/archiva-base')
2 files changed, 33 insertions, 47 deletions
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml index 1b87b3f0b..c71f87b0e 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/pom.xml @@ -18,7 +18,8 @@ ~ under the License. --> -<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> +<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> <modelVersion>4.0.0</modelVersion> <parent> <artifactId>archiva-consumers</artifactId> @@ -34,6 +35,14 @@ </dependency> <dependency> <groupId>org.apache.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + </dependency> + <dependency> + <groupId>org.apache.archiva</groupId> + <artifactId>archiva-common</artifactId> + </dependency> + <dependency> + <groupId>org.apache.archiva</groupId> <artifactId>metadata-model</artifactId> </dependency> <dependency> @@ -41,8 +50,16 @@ <artifactId>metadata-repository-api</artifactId> </dependency> <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-repository-layer</artifactId> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.registry</groupId> + <artifactId>plexus-registry-api</artifactId> </dependency> </dependencies> </project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java index 590135a27..762f79d55 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-metadata-consumer/src/main/java/org/apache/archiva/consumers/metadata/ArchivaMetadataCreationConsumer.java @@ -24,7 +24,6 @@ import org.apache.archiva.metadata.model.ProjectMetadata; import org.apache.archiva.metadata.model.ProjectVersionMetadata; import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.metadata.repository.MetadataResolutionException; -import org.apache.archiva.metadata.repository.filter.IncludesFilter; import org.apache.archiva.metadata.repository.storage.StorageMetadataResolver; import org.apache.maven.archiva.common.utils.VersionUtil; import org.apache.maven.archiva.configuration.ArchivaConfiguration; @@ -34,9 +33,6 @@ import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; import org.apache.maven.archiva.consumers.ConsumerException; import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.layout.LayoutException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; import org.codehaus.plexus.registry.Registry; @@ -44,9 +40,7 @@ import org.codehaus.plexus.registry.RegistryListener; import org.slf4j.Logger; import org.slf4j.LoggerFactory; -import java.io.File; import java.util.ArrayList; -import java.util.Arrays; import java.util.Date; import java.util.List; @@ -83,11 +77,6 @@ public class ArchivaMetadataCreationConsumer private Date whenGathered; - /** - * @plexus.requirement - */ - private ManagedRepositoryContent repository; - private List<String> includes = new ArrayList<String>(); /** @@ -96,9 +85,7 @@ public class ArchivaMetadataCreationConsumer private MetadataRepository metadataRepository; /** - * FIXME: this needs to be configurable based on storage type, and availability of proxy module - * ... could be a different type since we need methods to modify the storage metadata, which would also allow more - * appropriate methods to pass in the already determined repository configuration, for example, instead of the ID + * FIXME: this needs to be configurable based on storage type * * @plexus.requirement role-hint="maven2" */ @@ -106,6 +93,8 @@ public class ArchivaMetadataCreationConsumer private static final Logger log = LoggerFactory.getLogger( ArchivaMetadataCreationConsumer.class ); + private String repoId; + public String getId() { return this.id; @@ -134,7 +123,7 @@ public class ArchivaMetadataCreationConsumer public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered ) throws ConsumerException { - this.repository.setRepository( repo ); + repoId = repo.getId(); this.whenGathered = whenGathered; } @@ -144,30 +133,20 @@ public class ArchivaMetadataCreationConsumer // note that we do minimal processing including checksums and POM information for performance of // the initial scan. Any request for this information will be intercepted and populated on-demand // or picked up by subsequent scans - ArtifactReference artifact; - try - { - artifact = repository.toArtifactReference( path ); - } - catch ( LayoutException e ) - { - throw new ConsumerException( e.getMessage(), e ); - } - File file = new File( repository.getRepoRoot(), path ); + ArtifactMetadata artifact = storageResolver.getArtifactForPath( repoId, path ); ProjectMetadata project = new ProjectMetadata(); - project.setNamespace( artifact.getGroupId() ); - project.setId( artifact.getArtifactId() ); + project.setNamespace( artifact.getNamespace() ); + project.setId( artifact.getProject() ); String projectVersion = VersionUtil.getBaseVersion( artifact.getVersion() ); // TODO: maybe not too efficient since it may have already been read and stored for this artifact ProjectVersionMetadata versionMetadata = null; try { - versionMetadata = - storageResolver.getProjectVersion( repository.getId(), artifact.getGroupId(), artifact.getArtifactId(), - projectVersion ); + versionMetadata = storageResolver.getProjectVersion( repoId, artifact.getNamespace(), artifact.getProject(), + projectVersion ); } catch ( MetadataResolutionException e ) { @@ -184,25 +163,15 @@ public class ArchivaMetadataCreationConsumer createVersionMetadata = true; } - // A bit weird to reconstruct the file we already have, but don't want to expose getArtifactFromFile in the - // storage API - IncludesFilter<String> filter = new IncludesFilter<String>( Arrays.asList( file.getName() ) ); - ArtifactMetadata artifactMeta = storageResolver.getArtifacts( repository.getId(), artifact.getGroupId(), - artifact.getArtifactId(), projectVersion, - filter ).iterator().next(); - artifactMeta.setVersion( artifact.getVersion() ); - artifactMeta.setWhenGathered( whenGathered ); - // TODO: transaction // read the metadata and update it if it is newer or doesn't exist - metadataRepository.updateArtifact( repository.getId(), project.getNamespace(), project.getId(), projectVersion, - artifactMeta ); + artifact.setWhenGathered( whenGathered ); + metadataRepository.updateArtifact( repoId, project.getNamespace(), project.getId(), projectVersion, artifact ); if ( createVersionMetadata ) { - metadataRepository.updateProjectVersion( repository.getId(), project.getNamespace(), project.getId(), - versionMetadata ); + metadataRepository.updateProjectVersion( repoId, project.getNamespace(), project.getId(), versionMetadata ); } - metadataRepository.updateProject( repository.getId(), project ); + metadataRepository.updateProject( repoId, project ); } public void completeScan() |