diff options
3 files changed, 0 insertions, 488 deletions
diff --git a/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java b/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java deleted file mode 100644 index be19a1a01..000000000 --- a/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java +++ /dev/null @@ -1,126 +0,0 @@ -package org.apache.maven.archiva.cli; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.repository.project.ProjectModelReader; -import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; -import org.apache.maven.archiva.xml.XMLException; - -/** - * ProjectReaderConsumer - * - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="read-poms" - * instantiation-strategy="per-lookup" - */ -public class ProjectReaderConsumer - extends AbstractProgressConsumer - implements KnownRepositoryContentConsumer -{ - /** - * @plexus.configuration default-value="read-poms" - */ - private String id; - - /** - * @plexus.configuration default-value="Read POMs and report anomolies." - */ - private String description; - - private ProjectModelReader reader; - - private ManagedRepositoryConfiguration repo; - - private List<String> includes; - - public ProjectReaderConsumer() - { - reader = new ProjectModel400Reader(); - - includes = new ArrayList<String>(); - includes.add( "**/*.pom" ); - } - - public String getDescription() - { - return description; - } - - public String getId() - { - return id; - } - - public boolean isPermanent() - { - return false; - } - - public List<String> getExcludes() - { - return null; - } - - public List<String> getIncludes() - { - return includes; - } - - @Override - public void beginScan( ManagedRepositoryConfiguration repository, Date whenGathered ) - throws ConsumerException - { - super.beginScan( repository, whenGathered ); - this.repo = repository; - } - - @Override - public void processFile( String path ) - throws ConsumerException - { - super.processFile( path ); - - File pomFile = new File( repo.getLocation(), path ); - try - { - ArchivaProjectModel model = reader.read( pomFile ); - if ( model == null ) - { - System.err.println( "Got null model on " + pomFile ); - } - } - catch ( XMLException e ) - { - System.err.println( "Unable to process: " + pomFile ); - e.printStackTrace( System.out ); - } - } -} diff --git a/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java b/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java deleted file mode 100644 index 2929abedf..000000000 --- a/archiva-modules/archiva-reporting/archiva-artifact-reports/src/main/java/org/apache/maven/archiva/reporting/artifact/LocationArtifactsConsumer.java +++ /dev/null @@ -1,361 +0,0 @@ -package org.apache.maven.archiva.reporting.artifact; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Enumeration; -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.jar.JarEntry; -import java.util.jar.JarFile; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.FileTypes; -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.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.updater.ArchivaArtifactConsumer; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.RepositoryProblem; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; -import org.codehaus.plexus.registry.Registry; -import org.codehaus.plexus.registry.RegistryListener; -import org.codehaus.plexus.util.SelectorUtils; -import org.slf4j.Logger; -import org.slf4j.LoggerFactory; - -/** - * Validate the location of the artifact based on the values indicated - * in its pom (both the pom packaged with the artifact & the pom in the - * file system). - * - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.database.updater.ArchivaArtifactConsumer" - * role-hint="validate-artifacts-location" - */ -public class LocationArtifactsConsumer - extends AbstractMonitoredConsumer - implements ArchivaArtifactConsumer, RegistryListener, Initializable -{ - private Logger log = LoggerFactory.getLogger( LocationArtifactsConsumer.class ); - - /** - * @plexus.configuration default-value="duplicate-artifacts" - */ - private String id; - - /** - * @plexus.configuration default-value="Check for Duplicate Artifacts via SHA1 Checksums" - */ - private String description; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - private Map<String, ManagedRepositoryConfiguration> repositoryMap = - new HashMap<String, ManagedRepositoryConfiguration>(); - - // TODO: why is this not used? If it should be, what about excludes? - private List<String> includes = new ArrayList<String>(); - - public String getId() - { - return id; - } - - public String getDescription() - { - return description; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan() - { - /* do nothing */ - } - - public void completeScan() - { - /* do nothing */ - } - - public List<String> getIncludedTypes() - { - return null; - } - - /** - * Check whether the artifact is in its proper location. The location of the artifact - * is validated first against the groupId, artifactId and versionId in the specified model - * object (pom in the file system). Then unpack the artifact (jar file) and get the model (pom) - * included in the package. If a model exists inside the package, then check if the artifact's - * location is valid based on the location specified in the pom. Check if the both the location - * specified in the file system pom and in the pom included in the package is the same. - */ - public void processArchivaArtifact( ArchivaArtifact artifact ) - throws ConsumerException - { - ManagedRepositoryConfiguration repository = findRepository( artifact ); - - File artifactFile = new File( repository.getLocation(), toPath( artifact ) ); - ArchivaProjectModel fsModel = readFilesystemModel( artifactFile ); - ArchivaProjectModel embeddedModel = readEmbeddedModel( artifact, artifactFile ); - - validateAppropriateModel( "Filesystem", artifact, fsModel ); - validateAppropriateModel( "Embedded", artifact, embeddedModel ); - } - - private void validateAppropriateModel( String location, ArchivaArtifact artifact, ArchivaProjectModel model ) - throws ConsumerException - { - if ( model != null ) - { - if ( !StringUtils.equals( model.getGroupId(), artifact.getGroupId() ) ) - { - addProblem( artifact, "The groupId of the " + location + - " project model doesn't match with the artifact, expected <" + artifact.getGroupId() + - ">, but was actually <" + model.getGroupId() + ">" ); - } - - if ( !StringUtils.equals( model.getArtifactId(), artifact.getArtifactId() ) ) - { - addProblem( artifact, "The artifactId of the " + location + - " project model doesn't match with the artifact, expected <" + artifact.getArtifactId() + - ">, but was actually <" + model.getArtifactId() + ">" ); - } - - if ( !StringUtils.equals( model.getVersion(), artifact.getVersion() ) ) - { - addProblem( artifact, "The version of the " + location + - " project model doesn't match with the artifact, expected <" + artifact.getVersion() + - ">, but was actually <" + model.getVersion() + ">" ); - } - } - } - - private ArchivaProjectModel readEmbeddedModel( ArchivaArtifact artifact, File artifactFile ) - throws ConsumerException - { - try - { - JarFile jar = new JarFile( artifactFile ); - - // Get the entry and its input stream. - JarEntry expectedEntry = jar.getJarEntry( - "META-INF/maven/" + artifact.getGroupId() + "/" + artifact.getArtifactId() + "/pom.xml" ); - - if ( expectedEntry != null ) - { - // TODO: read and resolve model here. - return null; - } - - /* Expected Entry not found, look for alternate that might - * indicate that the artifact is, indeed located in the wrong place. - */ - - List<JarEntry> actualPomXmls = findJarEntryPattern( jar, "META-INF/maven/**/pom.xml" ); - if ( actualPomXmls.isEmpty() ) - { - // No check needed. - - } - - // TODO: test for invalid actual pom.xml - // TODO: test - } - catch ( IOException e ) - { - // Not able to read from the file. - String emsg = "Unable to read file contents: " + e.getMessage(); - addProblem( artifact, emsg ); - } - - return null; - } - - private List<JarEntry> findJarEntryPattern( JarFile jar, String pattern ) - { - List<JarEntry> hits = new ArrayList<JarEntry>(); - - Enumeration<JarEntry> entries = jar.entries(); - while ( entries.hasMoreElements() ) - { - JarEntry entry = entries.nextElement(); - if ( SelectorUtils.match( pattern, entry.getName() ) ) - { - hits.add( entry ); - } - } - - return hits; - } - - private void addProblem( ArchivaArtifact artifact, String msg ) - throws ConsumerException - { - RepositoryProblem problem = new RepositoryProblem(); - problem.setRepositoryId( artifact.getModel().getRepositoryId() ); - problem.setPath( toPath( artifact ) ); - problem.setGroupId( artifact.getGroupId() ); - problem.setArtifactId( artifact.getArtifactId() ); - problem.setVersion( artifact.getVersion() ); - problem.setType( LocationArtifactsReport.PROBLEM_TYPE_BAD_ARTIFACT_LOCATION ); - problem.setOrigin( getId() ); - problem.setMessage( msg ); - - try - { - dao.getRepositoryProblemDAO().saveRepositoryProblem( problem ); - } - catch ( ArchivaDatabaseException e ) - { - String emsg = "Unable to save problem with artifact location to DB: " + e.getMessage(); - log.warn( emsg, e ); - throw new ConsumerException( emsg, e ); - } - } - - private ArchivaProjectModel readFilesystemModel( File artifactFile ) - { -// File pomFile = createPomFileReference( artifactFile ); - - // TODO: read and resolve model here. - - return null; - } - -// private File createPomFileReference( File artifactFile ) -// { -// String pomFilename = artifactFile.getAbsolutePath(); -// -// int pos = pomFilename.lastIndexOf( '.' ); -// if ( pos <= 0 ) -// { -// // Invalid filename. -// return null; -// } -// -// pomFilename = pomFilename.substring( 0, pos ) + ".pom"; -// return new File( pomFilename ); -// } - - private ManagedRepositoryConfiguration findRepository( ArchivaArtifact artifact ) - { - return (ManagedRepositoryConfiguration) this.repositoryMap.get( artifact.getModel().getRepositoryId() ); - } - - private String toPath( ArchivaArtifact artifact ) - { - try - { - String repoId = artifact.getModel().getRepositoryId(); - ManagedRepositoryContent repo = repositoryFactory.getManagedRepositoryContent( repoId ); - return repo.toPath( artifact ); - } - catch ( RepositoryException e ) - { - log.warn( "Unable to calculate path for artifact: " + artifact ); - return ""; - } - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isManagedRepositories( propertyName ) ) - { - initRepositoryMap(); - } - - if ( ConfigurationNames.isRepositoryScanning( propertyName ) ) - { - initIncludes(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - private void initIncludes() - { - includes.clear(); - - includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) ); - } - - private void initRepositoryMap() - { - synchronized ( this.repositoryMap ) - { - this.repositoryMap.clear(); - - Map<String, ManagedRepositoryConfiguration> map = - configuration.getConfiguration().getManagedRepositoriesAsMap(); - - for ( Map.Entry<String, ManagedRepositoryConfiguration> entry : map.entrySet() ) - { - this.repositoryMap.put( entry.getKey(), entry.getValue() ); - } - } - } - - public void initialize() - throws InitializationException - { - initRepositoryMap(); - initIncludes(); - configuration.addChangeListener( this ); - } -} diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java index 1ba94877c..34b18b483 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/SearchServiceImplTest.java @@ -44,7 +44,6 @@ import org.apache.maven.archiva.database.ArtifactDAO; import org.apache.maven.archiva.database.constraints.ArtifactsByChecksumConstraint; import org.apache.maven.archiva.database.constraints.UniqueVersionConstraint; import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaProjectModel; import org.codehaus.plexus.spring.PlexusInSpringTestCase; import org.easymock.MockControl; import org.easymock.classextension.MockClassControl; |