diff options
author | Joakim Erdfelt <joakime@apache.org> | 2007-04-05 20:11:19 +0000 |
---|---|---|
committer | Joakim Erdfelt <joakime@apache.org> | 2007-04-05 20:11:19 +0000 |
commit | 379bbb72250011dd8586a9368c6aed7d8ce1c5fc (patch) | |
tree | 02d7b2c8cacb0c8b6ee751f5a3bc6925fdd91412 | |
parent | 7e5d667be32272e83b828c3c89ae927265065bbf (diff) | |
download | archiva-379bbb72250011dd8586a9368c6aed7d8ce1c5fc.tar.gz archiva-379bbb72250011dd8586a9368c6aed7d8ce1c5fc.zip |
Updating with changes surrounding model, and database schema, change
git-svn-id: https://svn.apache.org/repos/asf/maven/archiva/branches/archiva-jpox-database-refactor@525951 13f79535-47bb-0310-9956-ffa450edef68
67 files changed, 6701 insertions, 1237 deletions
diff --git a/archiva-base/archiva-common/pom.xml b/archiva-base/archiva-common/pom.xml index 17a20abd5..c5f3ff269 100644 --- a/archiva-base/archiva-common/pom.xml +++ b/archiva-base/archiva-common/pom.xml @@ -36,25 +36,15 @@ joakime@apache.org --> <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-api</artifactId> - </dependency> - <!-- - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-artifact-manager</artifactId> - </dependency> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-project</artifactId> - </dependency> - --> - <dependency> <groupId>commons-lang</groupId> <artifactId>commons-lang</artifactId> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-container-default</artifactId> </dependency> </dependencies> diff --git a/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java b/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java index ab8c6718c..613e89012 100644 --- a/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java +++ b/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java @@ -19,8 +19,9 @@ package org.apache.maven.archiva.common.utils; * under the License. */ +import org.apache.commons.lang.StringUtils; + import junit.framework.TestCase; -import org.codehaus.plexus.util.StringUtils; import java.io.File; diff --git a/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml b/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml index 15df257bd..32ab1336e 100644 --- a/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml +++ b/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml @@ -31,6 +31,10 @@ <dependencies> <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + </dependency> + <dependency> <groupId>org.apache.maven.archiva</groupId> <artifactId>archiva-database</artifactId> </dependency> diff --git a/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java b/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java index 0ad7448bb..69fee0c85 100644 --- a/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java +++ b/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java @@ -28,9 +28,10 @@ import org.apache.maven.archiva.database.ArchivaDAO; import org.apache.maven.archiva.database.ArchivaDatabaseException; import org.apache.maven.archiva.model.ArchivaArtifact; import org.apache.maven.archiva.model.ArchivaRepository; -import org.apache.maven.archiva.model.RepositoryContent; import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout; import org.apache.maven.archiva.repository.layout.LayoutException; +import org.codehaus.plexus.digest.Digester; +import org.codehaus.plexus.digest.DigesterException; import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; import org.codehaus.plexus.registry.Registry; @@ -38,6 +39,7 @@ import org.codehaus.plexus.registry.RegistryListener; import java.io.File; import java.util.ArrayList; +import java.util.Date; import java.util.List; import java.util.Map; @@ -50,13 +52,16 @@ import java.util.Map; * @plexus.component role-hint="update-db-artifact" * instantiation-strategy="per-lookup" */ -public class ArtifactUpdateDatabaseConsumer extends AbstractMonitoredConsumer +public class ArtifactUpdateDatabaseConsumer + extends AbstractMonitoredConsumer implements RepositoryContentConsumer, RegistryListener, Initializable { private static final String TYPE_NOT_ARTIFACT = "file-not-artifact"; private static final String DB_ERROR = "db-error"; - + + private static final String CHECKSUM_CALCULATION = null; + /** * @plexus.configuration default-value="update-db-artifact" */ @@ -66,7 +71,7 @@ public class ArtifactUpdateDatabaseConsumer extends AbstractMonitoredConsumer * @plexus.configuration default-value="Update the Artifact in the Database" */ private String description; - + /** * @plexus.requirement role-hint="jdo" */ @@ -82,6 +87,16 @@ public class ArtifactUpdateDatabaseConsumer extends AbstractMonitoredConsumer */ private Map bidirectionalLayoutMap; + /** + * @plexus.requirement role-hint="sha1" + */ + private Digester digestSha1; + + /** + * @plexus.requirement role-hint="md5"; + */ + private Digester digestMd5; + private ArchivaRepository repository; private File repositoryDir; @@ -117,7 +132,8 @@ public class ArtifactUpdateDatabaseConsumer extends AbstractMonitoredConsumer return this.includes; } - public void beginScan( ArchivaRepository repository ) throws ConsumerException + public void beginScan( ArchivaRepository repository ) + throws ConsumerException { if ( !repository.isManaged() ) { @@ -131,31 +147,53 @@ public class ArtifactUpdateDatabaseConsumer extends AbstractMonitoredConsumer if ( !bidirectionalLayoutMap.containsKey( layoutName ) ) { throw new ConsumerException( "Unable to process repository with layout [" + layoutName - + "] as there is no coresponding " + BidirectionalRepositoryLayout.class.getName() - + " implementation available." ); + + "] as there is no coresponding " + BidirectionalRepositoryLayout.class.getName() + + " implementation available." ); } this.layout = (BidirectionalRepositoryLayout) bidirectionalLayoutMap.get( layoutName ); } - public void processFile( String path ) throws ConsumerException + public void processFile( String path ) + throws ConsumerException { try { ArchivaArtifact artifact = layout.toArtifact( path ); - - RepositoryContent repoContent = artifact.getModel().getContentKey(); - repoContent.setRepositoryId( this.repository.getId() ); - + + artifact.getModel().setRepositoryId( this.repository.getId() ); + // Calculate the hashcodes. - - + File artifactFile = new File( this.repositoryDir, path ); + try + { + artifact.getModel().setChecksumMD5( digestMd5.calc( artifactFile ) ); + } + catch ( DigesterException e ) + { + triggerConsumerWarning( CHECKSUM_CALCULATION, "Unable to calculate the MD5 checksum: " + e.getMessage() ); + } + + try + { + artifact.getModel().setChecksumSHA1( digestSha1.calc( artifactFile ) ); + } + catch ( DigesterException e ) + { + triggerConsumerWarning( CHECKSUM_CALCULATION, "Unable to calculate the SHA1 checksum: " + + e.getMessage() ); + } + + artifact.getModel().setLastModified( new Date( artifactFile.lastModified() ) ); + artifact.getModel().setSize( artifactFile.length() ); + artifact.getModel().setOrigin( "FileSystem" ); + dao.saveArtifact( artifact.getModel() ); } catch ( LayoutException e ) { triggerConsumerError( TYPE_NOT_ARTIFACT, "Path " + path + " cannot be converted to artifact: " - + e.getMessage() ); + + e.getMessage() ); } catch ( ArchivaDatabaseException e ) { @@ -192,7 +230,8 @@ public class ArtifactUpdateDatabaseConsumer extends AbstractMonitoredConsumer } } - public void initialize() throws InitializationException + public void initialize() + throws InitializationException { propertyNameTriggers = new ArrayList(); propertyNameTriggers.add( "repositoryScanning" ); diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java index e3920f45c..34ce2e8fc 100644 --- a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java @@ -71,7 +71,10 @@ public class ArchivaArtifact model.setGroupId( groupId ); model.setArtifactId( artifactId ); model.setVersion( version ); - model.setRepositoryId( repository.getId() ); + if ( repository != null ) + { + model.setRepositoryId( repository.getId() ); + } model.setClassifier( StringUtils.defaultString( classifier ) ); model.setType( type ); diff --git a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java index 8b50de846..cdad4f850 100644 --- a/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java +++ b/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java @@ -45,7 +45,7 @@ public class ArchivaModelCloner cloned.setGroupId( model.getGroupId() ); cloned.setArtifactId( model.getArtifactId() ); cloned.setVersion( model.getVersion() ); - + cloned.setParentProject( clone( model.getParentProject() ) ); cloned.setName( model.getName() ); @@ -75,15 +75,15 @@ public class ArchivaModelCloner { return null; } - + ArtifactReference cloned = new ArtifactReference(); - + cloned.setGroupId( artifactReference.getGroupId() ); cloned.setArtifactId( artifactReference.getArtifactId() ); cloned.setVersion( artifactReference.getVersion() ); cloned.setClassifier( artifactReference.getClassifier() ); cloned.setType( artifactReference.getType() ); - + return cloned; } @@ -102,6 +102,30 @@ public class ArchivaModelCloner return cloned; } + public static Dependency clone( Dependency dependency ) + { + if ( dependency == null ) + { + return null; + } + + Dependency cloned = new Dependency(); + + cloned.setGroupId( dependency.getGroupId() ); + cloned.setArtifactId( dependency.getArtifactId() ); + cloned.setVersion( dependency.getVersion() ); + + cloned.setClassifier( dependency.getClassifier() ); + cloned.setType( dependency.getType() ); + cloned.setScope( dependency.getScope() ); + cloned.setOptional( dependency.isOptional() ); + cloned.setSystemPath( dependency.getSystemPath() ); + cloned.setUrl( dependency.getUrl() ); + cloned.setExclusions( cloneExclusions( dependency.getExclusions() ) ); + + return cloned; + } + public static IssueManagement clone( IssueManagement issueManagement ) { if ( issueManagement == null ) @@ -175,13 +199,13 @@ public class ArchivaModelCloner { return null; } - + VersionedReference cloned = new VersionedReference(); - + cloned.setGroupId( versionedReference.getGroupId() ); cloned.setArtifactId( versionedReference.getArtifactId() ); cloned.setVersion( versionedReference.getVersion() ); - + return cloned; } @@ -217,21 +241,13 @@ public class ArchivaModelCloner while ( it.hasNext() ) { Dependency dep = (Dependency) it.next(); - Dependency cloned = new Dependency(); - - cloned.setGroupId( dep.getGroupId() ); - cloned.setArtifactId( dep.getArtifactId() ); - cloned.setVersion( dep.getVersion() ); - - cloned.setClassifier( dep.getClassifier() ); - cloned.setType( dep.getType() ); - cloned.setScope( dep.getScope() ); - cloned.setOptional( dep.isOptional() ); - cloned.setSystemPath( dep.getSystemPath() ); - cloned.setUrl( dep.getUrl() ); - cloned.setExclusions( cloneExclusions( dep.getExclusions() ) ); - ret.add( cloned ); + Dependency cloned = clone( dep ); + + if ( cloned != null ) + { + ret.add( cloned ); + } } return ret; diff --git a/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java b/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java new file mode 100644 index 000000000..263cd3253 --- /dev/null +++ b/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java @@ -0,0 +1,60 @@ +package org.apache.maven.archiva.model; + +/* + * 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 org.codehaus.plexus.PlexusTestCase; + +/** + * ArchivaModelClonerTest + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class ArchivaModelClonerTest + extends PlexusTestCase +{ + public void testCloneProjectModelWithParent() + { + ArchivaProjectModel actualModel = new ArchivaProjectModel(); + actualModel.setGroupId( null ); + actualModel.setArtifactId( "archiva-common" ); + actualModel.setVersion( null ); + actualModel.setParentProject( new VersionedReference() ); + actualModel.getParentProject().setGroupId( "org.apache.maven.archiva" ); + actualModel.getParentProject().setArtifactId( "archiva-parent" ); + actualModel.getParentProject().setVersion( "1.0" ); + + ArchivaProjectModel clonedModel = ArchivaModelCloner.clone( actualModel ); + + // Should not be the same object (in memory) + assertNotSame( clonedModel, actualModel ); + + // Should be equal in value. + assertEquals( clonedModel, actualModel ); + + // Test specific fields. + assertNull( "Group Id", clonedModel.getGroupId() ); + assertNull( "Version", clonedModel.getVersion() ); + assertNotNull( "Parent Reference", clonedModel.getParentProject() ); + assertEquals( "Parent Group Id", "org.apache.maven.archiva", clonedModel.getParentProject().getGroupId() ); + assertEquals( "Parent Artifact Id", "archiva-parent", clonedModel.getParentProject().getArtifactId() ); + assertEquals( "Parent Version", "1.0", clonedModel.getParentProject().getVersion() ); + } +} diff --git a/archiva-base/archiva-repository-layer/pom.xml b/archiva-base/archiva-repository-layer/pom.xml index 6ec87f431..33b2aaee9 100644 --- a/archiva-base/archiva-repository-layer/pom.xml +++ b/archiva-base/archiva-repository-layer/pom.xml @@ -45,6 +45,11 @@ </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-expression-evaluator</artifactId> + <version>1.0-alpha-1</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> <artifactId>plexus-utils</artifactId> </dependency> <dependency> diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java index 659a7de67..795c3a2c1 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java @@ -20,7 +20,6 @@ package org.apache.maven.archiva.repository.metadata; */ import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; -import org.apache.maven.archiva.model.RepositoryContent; import org.apache.maven.archiva.xml.XMLException; import org.apache.maven.archiva.xml.XMLReader; @@ -49,13 +48,9 @@ public class RepositoryMetadataReader XMLReader xml = new XMLReader( "metadata", metadataFile ); ArchivaRepositoryMetadata metadata = new ArchivaRepositoryMetadata(); - - RepositoryContent contentKey = new RepositoryContent(); - contentKey.setGroupId( xml.getElementText( "//metadata/groupId" ) ); - contentKey.setArtifactId( xml.getElementText( "//metadata/artifactId" ) ); - metadata.setContentKey( contentKey ); - + metadata.setGroupId( xml.getElementText( "//metadata/groupId" ) ); + metadata.setArtifactId( xml.getElementText( "//metadata/artifactId" ) ); metadata.setLastModified( new Date( metadataFile.lastModified() ) ); metadata.setSize( metadataFile.length() ); metadata.setWhenIndexed( new Date() ); diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java new file mode 100644 index 000000000..e00943360 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java @@ -0,0 +1,39 @@ +package org.apache.maven.archiva.repository.project; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; + +/** + * Generic Filtering interface for {@link ArchivaProjectModel} objects. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public interface ProjectModelFilter +{ + /** + * Filter a model and return the results of the filtering. + * + * @param model the model to filter. + * @return a new model representing the filtered state of the model. + */ + public ArchivaProjectModel filter( final ArchivaProjectModel model ); +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java new file mode 100644 index 000000000..ba32cf407 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java @@ -0,0 +1,661 @@ +package org.apache.maven.archiva.repository.project; + +/* + * 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 org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.model.ArchivaModelCloner; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; +import org.apache.maven.archiva.model.CiManagement; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.Exclusion; +import org.apache.maven.archiva.model.Individual; +import org.apache.maven.archiva.model.IssueManagement; +import org.apache.maven.archiva.model.License; +import org.apache.maven.archiva.model.Organization; +import org.apache.maven.archiva.model.ProjectRepository; +import org.apache.maven.archiva.model.Scm; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.Properties; +import java.util.Map.Entry; + +/** + * ProjectModelMerge + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class ProjectModelMerge +{ + /** + * Merge the contents of a project with it's parent project. + * + * @param mainProject the main project. + * @param parentProject the parent project to merge. + * @throws ProjectModelException if there was a problem merging the model. + */ + public static ArchivaProjectModel merge( ArchivaProjectModel mainProject, ArchivaProjectModel parentProject ) + throws ProjectModelException + { + System.out.println( "## Merging: " + mainProject + " with " + parentProject ); + if ( mainProject == null ) + { + throw new ProjectModelException( "Cannot copy a null main project." ); + } + + if ( parentProject == null ) + { + throw new ProjectModelException( "Cannot copy to a null parent project." ); + } + + ArchivaProjectModel merged = new ArchivaProjectModel(); + + // Unmerged. + merged.setArtifactId( mainProject.getArtifactId() ); + merged.setPackaging( StringUtils.defaultIfEmpty( mainProject.getPackaging(), "jar" ) ); + + // Merged + merged.setGroupId( merge( mainProject.getGroupId(), parentProject.getGroupId() ) ); + merged.setVersion( merge( mainProject.getVersion(), parentProject.getVersion() ) ); + merged.setName( merge( mainProject.getName(), parentProject.getName() ) ); + merged.setUrl( merge( mainProject.getUrl(), parentProject.getUrl() ) ); + merged.setDescription( merge( mainProject.getDescription(), parentProject.getDescription() ) ); + + merged.setOrigin( "merged" ); + + merged.setCiManagement( merge( mainProject.getCiManagement(), parentProject.getCiManagement() ) ); + merged.setIndividuals( mergeIndividuals( mainProject.getIndividuals(), parentProject.getIndividuals() ) ); + merged.setIssueManagement( merge( mainProject.getIssueManagement(), parentProject.getIssueManagement() ) ); + merged.setLicenses( mergeLicenses( mainProject.getLicenses(), parentProject.getLicenses() ) ); + merged.setOrganization( merge( mainProject.getOrganization(), parentProject.getOrganization() ) ); + merged.setScm( merge( mainProject.getScm(), parentProject.getScm() ) ); + merged.setRepositories( mergeRepositories( mainProject.getRepositories(), parentProject.getRepositories() ) ); + merged.setDependencies( mergeDependencies( mainProject.getDependencies(), parentProject.getDependencies() ) ); + merged.setDependencyManagement( mergeDependencyManagement( mainProject.getDependencyManagement(), parentProject + .getDependencyManagement() ) ); + merged.setPlugins( mergePlugins( mainProject.getPlugins(), parentProject.getPlugins() ) ); + merged.setReports( mergeReports( mainProject.getReports(), parentProject.getReports() ) ); + merged.setProperties( merge( mainProject.getProperties(), parentProject.getProperties() ) ); + + return merged; + } + + private static Map createArtifactReferenceMap( List artifactReferences ) + { + Map ret = new HashMap(); + + Iterator it = artifactReferences.iterator(); + while ( it.hasNext() ) + { + ArtifactReference artifactReference = (ArtifactReference) it.next(); + String key = toVersionlessArtifactKey( artifactReference ); + ret.put( key, artifactReference ); + } + + return ret; + } + + private static Map createDependencyMap( List dependencies ) + { + Map ret = new HashMap(); + + Iterator it = dependencies.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + String key = toVersionlessDependencyKey( dep ); + ret.put( key, dep ); + } + + return ret; + } + + private static Map createExclusionMap( List exclusions ) + { + Map ret = new HashMap(); + + Iterator it = exclusions.iterator(); + while ( it.hasNext() ) + { + Exclusion exclusion = (Exclusion) it.next(); + String key = exclusion.getGroupId() + ":" + exclusion.getArtifactId(); + ret.put( key, exclusion ); + } + + return ret; + } + + private static Map createLicensesMap( List licenses ) + { + Map ret = new HashMap(); + + Iterator it = licenses.iterator(); + while ( it.hasNext() ) + { + License license = (License) it.next(); + // TODO: Change to 'id' when LicenseTypeMapper is created. + String key = license.getName(); + ret.put( key, license ); + } + + return ret; + } + + private static Map createRepositoriesMap( List repositories ) + { + Map ret = new HashMap(); + + Iterator it = repositories.iterator(); + while ( it.hasNext() ) + { + ProjectRepository repo = (ProjectRepository) it.next(); + // Should this really be using repo.id ? + String key = repo.getUrl(); + ret.put( key, repo ); + } + + return ret; + } + + private static boolean empty( String val ) + { + if ( val == null ) + { + return true; + } + + return ( val.trim().length() <= 0 ); + } + + private static ArtifactReference merge( ArtifactReference mainArtifactReference, + ArtifactReference parentArtifactReference ) + { + if ( parentArtifactReference == null ) + { + return mainArtifactReference; + } + + if ( mainArtifactReference == null ) + { + return ArchivaModelCloner.clone( parentArtifactReference ); + } + + ArtifactReference merged = new ArtifactReference(); + + // Unmerged. + merged.setGroupId( mainArtifactReference.getGroupId() ); + merged.setArtifactId( mainArtifactReference.getArtifactId() ); + + // Merged. + merged.setVersion( merge( mainArtifactReference.getVersion(), parentArtifactReference.getVersion() ) ); + merged.setClassifier( merge( mainArtifactReference.getClassifier(), parentArtifactReference.getClassifier() ) ); + merged.setType( merge( mainArtifactReference.getType(), parentArtifactReference.getType() ) ); + + return merged; + } + + private static CiManagement merge( CiManagement mainCim, CiManagement parentCim ) + { + if ( parentCim == null ) + { + return mainCim; + } + + if ( mainCim == null ) + { + return ArchivaModelCloner.clone( parentCim ); + } + + CiManagement merged = new CiManagement(); + + merged.setSystem( merge( mainCim.getSystem(), parentCim.getSystem() ) ); + merged.setUrl( merge( mainCim.getUrl(), parentCim.getUrl() ) ); + + return merged; + } + + private static Dependency merge( Dependency mainDep, Dependency parentDep ) + { + if ( parentDep == null ) + { + return mainDep; + } + + if ( mainDep == null ) + { + return ArchivaModelCloner.clone( parentDep ); + } + + Dependency merged = new Dependency(); + + // Unmerged. + merged.setGroupId( mainDep.getGroupId() ); + merged.setArtifactId( mainDep.getArtifactId() ); + + // Merged. + merged.setVersion( merge( mainDep.getVersion(), parentDep.getVersion() ) ); + merged.setClassifier( merge( mainDep.getClassifier(), parentDep.getClassifier() ) ); + merged.setType( merge( mainDep.getType(), parentDep.getType() ) ); + merged.setScope( merge( mainDep.getScope(), parentDep.getScope() ) ); + if ( parentDep.isOptional() ) + { + merged.setOptional( true ); + } + + merged.setSystemPath( merge( mainDep.getSystemPath(), parentDep.getSystemPath() ) ); + merged.setUrl( merge( mainDep.getUrl(), parentDep.getUrl() ) ); + merged.setExclusions( mergeExclusions( mainDep.getExclusions(), parentDep.getExclusions() ) ); + + return merged; + } + + private static IssueManagement merge( IssueManagement mainIssueManagement, IssueManagement parentIssueManagement ) + { + if ( parentIssueManagement == null ) + { + return mainIssueManagement; + } + + if ( mainIssueManagement == null ) + { + return ArchivaModelCloner.clone( parentIssueManagement ); + } + + IssueManagement merged = new IssueManagement(); + + merged.setSystem( merge( mainIssueManagement.getSystem(), parentIssueManagement.getSystem() ) ); + merged.setUrl( merge( mainIssueManagement.getUrl(), parentIssueManagement.getUrl() ) ); + + return merged; + } + + private static Organization merge( Organization mainOrganization, Organization parentOrganization ) + { + if ( parentOrganization == null ) + { + return mainOrganization; + } + + if ( mainOrganization == null ) + { + return ArchivaModelCloner.clone( parentOrganization ); + } + + Organization merged = new Organization(); + + merged.setFavicon( merge( mainOrganization.getFavicon(), parentOrganization.getFavicon() ) ); + merged.setName( merge( mainOrganization.getName(), parentOrganization.getName() ) ); + merged.setUrl( merge( mainOrganization.getUrl(), parentOrganization.getUrl() ) ); + + return merged; + } + + private static Properties merge( Properties mainProperties, Properties parentProperties ) + { + if ( parentProperties == null ) + { + return mainProperties; + } + + if ( mainProperties == null ) + { + return ArchivaModelCloner.clone( parentProperties ); + } + + Properties merged = new Properties(); + + Enumeration keys = parentProperties.propertyNames(); + while ( keys.hasMoreElements() ) + { + String key = (String) keys.nextElement(); + merged.put( key, merge( mainProperties.getProperty( key ), parentProperties.getProperty( key ) ) ); + } + + return merged; + } + + private static Scm merge( Scm mainScm, Scm parentScm ) + { + if ( parentScm == null ) + { + return mainScm; + } + + if ( mainScm == null ) + { + return ArchivaModelCloner.clone( parentScm ); + } + + Scm merged = new Scm(); + + merged.setConnection( merge( mainScm.getConnection(), parentScm.getConnection() ) ); + merged.setDeveloperConnection( merge( mainScm.getDeveloperConnection(), parentScm.getDeveloperConnection() ) ); + merged.setUrl( merge( mainScm.getUrl(), parentScm.getUrl() ) ); + + return merged; + } + + private static String merge( String main, String parent ) + { + if ( empty( main ) && !empty( parent ) ) + { + return parent; + } + + return main; + } + + private static List mergeArtifactReferences( List mainArtifactReferences, List parentArtifactReferences ) + { + if ( parentArtifactReferences == null ) + { + return mainArtifactReferences; + } + + if ( mainArtifactReferences == null ) + { + return ArchivaModelCloner.cloneLicenses( parentArtifactReferences ); + } + + List merged = new ArrayList(); + + Map mainArtifactReferenceMap = createArtifactReferenceMap( mainArtifactReferences ); + Map parentArtifactReferenceMap = createArtifactReferenceMap( parentArtifactReferences ); + + Iterator it = mainArtifactReferenceMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + String key = (String) entry.getKey(); + ArtifactReference mainArtifactReference = (ArtifactReference) entry.getValue(); + ArtifactReference parentArtifactReference = (ArtifactReference) parentArtifactReferenceMap.get( key ); + + if ( parentArtifactReference == null ) + { + merged.add( mainArtifactReference ); + } + else + { + // Not merging. Local wins. + merged.add( merge( mainArtifactReference, parentArtifactReference ) ); + } + } + + return merged; + } + + private static List mergeDependencies( List mainDependencies, List parentDependencies ) + { + if ( parentDependencies == null ) + { + return mainDependencies; + } + + if ( mainDependencies == null ) + { + return ArchivaModelCloner.cloneDependencies( parentDependencies ); + } + + List merged = ArchivaModelCloner.cloneDependencies( mainDependencies ); + + Map mainDepMap = createDependencyMap( mainDependencies ); + Map parentDepMap = createDependencyMap( parentDependencies ); + + Iterator it = parentDepMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + String key = (String) entry.getKey(); + Dependency parentDep = (Dependency) entry.getValue(); + Dependency mainDep = (Dependency) mainDepMap.get( key ); + + if ( parentDep == null ) + { + merged.add( mainDep ); + } + else + { + merged.add( merge( mainDep, parentDep ) ); + } + } + + return merged; + } + + private static List mergeDependencyManagement( List mainDepMgmt, List parentDepMgmt ) + { + if ( parentDepMgmt == null ) + { + return mainDepMgmt; + } + + if ( mainDepMgmt == null ) + { + return ArchivaModelCloner.cloneDependencies( parentDepMgmt ); + } + + List merged = ArchivaModelCloner.cloneDependencies( mainDepMgmt ); + + Map mainDepMap = createDependencyMap( mainDepMgmt ); + Map parentDepMap = createDependencyMap( parentDepMgmt ); + + Iterator it = parentDepMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + String key = (String) entry.getKey(); + Dependency parentDep = (Dependency) entry.getValue(); + Dependency mainDep = (Dependency) mainDepMap.get( key ); + + if ( parentDep == null ) + { + merged.add( mainDep ); + } + else + { + merged.add( merge( mainDep, parentDep ) ); + } + } + + return merged; + } + + public static List mergeExclusions( List mainExclusions, List parentExclusions ) + { + if ( parentExclusions == null ) + { + return mainExclusions; + } + + if ( mainExclusions == null ) + { + return ArchivaModelCloner.cloneExclusions( parentExclusions ); + } + + List merged = new ArrayList(); + + Map mainExclusionMap = createExclusionMap( mainExclusions ); + Map parentExclusionMap = createExclusionMap( parentExclusions ); + + Iterator it = mainExclusionMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + String key = (String) entry.getKey(); + Exclusion mainExclusion = (Exclusion) entry.getValue(); + Exclusion parentExclusion = (Exclusion) parentExclusionMap.get( key ); + + if ( parentExclusion == null ) + { + merged.add( mainExclusion ); + } + else + { + merged.add( parentExclusion ); + } + } + + return merged; + } + + private static List mergeIndividuals( List mainIndividuals, List parentIndividuals ) + { + if ( parentIndividuals == null ) + { + return mainIndividuals; + } + + if ( mainIndividuals == null ) + { + return ArchivaModelCloner.cloneIndividuals( parentIndividuals ); + } + + List merged = ArchivaModelCloner.cloneIndividuals( mainIndividuals ); + + Iterator it = parentIndividuals.iterator(); + while ( it.hasNext() ) + { + Individual parentIndividual = (Individual) it.next(); + + if ( !mainIndividuals.contains( parentIndividual ) ) + { + merged.add( parentIndividual ); + } + } + + return merged; + } + + private static List mergeLicenses( List mainLicenses, List parentLicenses ) + { + if ( parentLicenses == null ) + { + return mainLicenses; + } + + if ( mainLicenses == null ) + { + return ArchivaModelCloner.cloneLicenses( parentLicenses ); + } + + List merged = new ArrayList(); + + Map mainLicensesMap = createLicensesMap( mainLicenses ); + Map parentLicensesMap = createLicensesMap( parentLicenses ); + + Iterator it = mainLicensesMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + String key = (String) entry.getKey(); + License mainLicense = (License) entry.getValue(); + License parentLicense = (License) parentLicensesMap.get( key ); + + if ( parentLicense == null ) + { + merged.add( mainLicense ); + } + else + { + // Not merging. Local wins. + merged.add( parentLicense ); + } + } + + return merged; + } + + private static List mergePlugins( List mainPlugins, List parentPlugins ) + { + return mergeArtifactReferences( mainPlugins, parentPlugins ); + } + + private static List mergeReports( List mainReports, List parentReports ) + { + return mergeArtifactReferences( mainReports, parentReports ); + } + + private static List mergeRepositories( List mainRepositories, List parentRepositories ) + { + if ( parentRepositories == null ) + { + return mainRepositories; + } + + if ( mainRepositories == null ) + { + return ArchivaModelCloner.cloneLicenses( parentRepositories ); + } + + List merged = new ArrayList(); + + Map mainRepositoriesMap = createRepositoriesMap( mainRepositories ); + Map parentRepositoriesMap = createRepositoriesMap( parentRepositories ); + + Iterator it = mainRepositoriesMap.entrySet().iterator(); + while ( it.hasNext() ) + { + Map.Entry entry = (Entry) it.next(); + String key = (String) entry.getKey(); + ProjectRepository mainProjectRepository = (ProjectRepository) entry.getValue(); + ProjectRepository parentProjectRepository = (ProjectRepository) parentRepositoriesMap.get( key ); + + if ( parentProjectRepository == null ) + { + merged.add( mainProjectRepository ); + } + else + { + // Not merging. Local wins. + merged.add( parentProjectRepository ); + } + } + + return merged; + } + + private static String toVersionlessArtifactKey( ArtifactReference artifactReference ) + { + StringBuffer key = new StringBuffer(); + + key.append( artifactReference.getGroupId() ).append( ":" ).append( artifactReference.getArtifactId() ); + key.append( StringUtils.defaultString( artifactReference.getClassifier() ) ).append( ":" ); + key.append( artifactReference.getType() ); + + return key.toString(); + } + + private static String toVersionlessDependencyKey( Dependency dep ) + { + StringBuffer key = new StringBuffer(); + + key.append( dep.getGroupId() ).append( ":" ).append( dep.getArtifactId() ); + key.append( StringUtils.defaultString( dep.getClassifier() ) ).append( ":" ); + key.append( dep.getType() ); + + return key.toString(); + } +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java new file mode 100644 index 000000000..316f144f2 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java @@ -0,0 +1,40 @@ +package org.apache.maven.archiva.repository.project; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; + +/** + * ProjectModelMonitor + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public interface ProjectModelMonitor +{ + /** + * Report a problem encountered with a model. + * + * @param model the model that caused the problem. + * @param type the type of problem. + * @param problem the problem description. + */ + public void modelProblem( ArchivaProjectModel model, String type, String problem ); +}
\ No newline at end of file diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java new file mode 100644 index 000000000..de2fc43a8 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java @@ -0,0 +1,42 @@ +package org.apache.maven.archiva.repository.project; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.VersionedReference; + +/** + * Interface for ProjectModel resolution. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public interface ProjectModelResolver +{ + /** + * Get the ProjectModel given a specific {@link RepositoryContent} key. + * + * @param reference the reference to the other project. + * @return the ArchivaProjectModel representing the provided {@link RepositoryContent} key. + * @throws ProjectModelException if the project model cannot be resolved. + */ + public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) + throws ProjectModelException; +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java new file mode 100644 index 000000000..549c049a0 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java @@ -0,0 +1,269 @@ +package org.apache.maven.archiva.repository.project.filters; + +/* + * 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 org.apache.commons.lang.StringUtils; +import org.apache.maven.archiva.model.ArchivaModelCloner; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelMerge; +import org.apache.maven.archiva.repository.project.ProjectModelResolver; + +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Iterator; +import java.util.List; +import java.util.Map; + +/** + * Builder for the Effective Project Model. + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class EffectiveProjectModelBuilder +{ + private List projectModelResolvers; + + public EffectiveProjectModelBuilder() + { + projectModelResolvers = new ArrayList(); + } + + public void addProjectModelResolver( ProjectModelResolver resolver ) + { + if ( resolver == null ) + { + return; + } + + this.projectModelResolvers.add( resolver ); + } + + /** + * Take the provided {@link ArchivaProjectModel} and build the effective {@link ArchivaProjectModel}. + * + * Steps: + * 1) Expand any expressions / properties. + * 2) Walk the parent project references and merge. + * 3) Apply dependency management settings. + * + * @param project the project to create the effective {@link ArchivaProjectModel} from. + * @return a the effective {@link ArchivaProjectModel}. + * @throws ProjectModelException if there was a problem building the effective pom. + */ + public ArchivaProjectModel buildEffectiveProjectModel( ArchivaProjectModel project ) + throws ProjectModelException + { + if ( project == null ) + { + return null; + } + + if ( this.projectModelResolvers.isEmpty() ) + { + throw new IllegalStateException( "Unable to build effective pom with no project model resolvers defined." ); + } + + // Clone submitted project (so that we don't mess with it) + ArchivaProjectModel effectiveProject = ArchivaModelCloner.clone( project ); + + // Setup Expression Evaluation pieces. + ProjectModelExpressionExpander.evaluateExpressions( effectiveProject ); + + debug( "Starting build of effective with: " + effectiveProject ); + + // Merge in all the parent poms. + effectiveProject = mergeParent( effectiveProject ); + + // Resolve dependency versions from dependency management. + applyDependencyManagement( effectiveProject ); + + // Return what we got. + return effectiveProject; + } + + public void removeResolver( ProjectModelResolver resolver ) + { + this.projectModelResolvers.remove( resolver ); + } + + private void applyDependencyManagement( ArchivaProjectModel pom ) + { + if ( ( pom.getDependencyManagement() == null ) || ( pom.getDependencies() == null ) ) + { + // Nothing to do. All done! + return; + } + + if ( pom.getDependencyManagement().isEmpty() || pom.getDependencies().isEmpty() ) + { + // Nothing to do. All done! + return; + } + + Map managedDependencies = createDependencyMap( pom.getDependencyManagement() ); + Iterator it = pom.getDependencies().iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + String key = toVersionlessDependencyKey( dep ); + + // Do we need to do anything? + if ( managedDependencies.containsKey( key ) ) + { + Dependency mgmtDep = (Dependency) managedDependencies.get( key ); + + dep.setVersion( mgmtDep.getVersion() ); + dep.setScope( mgmtDep.getScope() ); + dep.setExclusions( ProjectModelMerge.mergeExclusions( dep.getExclusions(), mgmtDep.getExclusions() ) ); + } + } + } + + private void debug( String msg ) + { + System.out.println( "## " + msg ); + } + + private ArchivaProjectModel findProject( VersionedReference projectRef ) + { + debug( "Trying to find project: " + projectRef ); + Iterator it = this.projectModelResolvers.iterator(); + + while ( it.hasNext() ) + { + ProjectModelResolver resolver = (ProjectModelResolver) it.next(); + + try + { + debug( "Trying to find in " + resolver.getClass().getName() ); + ArchivaProjectModel model = resolver.resolveProjectModel( projectRef ); + + if ( model != null ) + { + debug( "Found it!: " + model ); + return model; + } + debug( "Not found." ); + } + catch ( ProjectModelException e ) + { + // TODO: trigger notifier of problem? + e.printStackTrace(); + } + } + + // TODO: Document that project was not found. (Use monitor?) + + return null; + } + + private ArchivaProjectModel mergeParent( ArchivaProjectModel pom ) + throws ProjectModelException + { + ArchivaProjectModel mixedProject; + + debug( "Parent: " + pom.getParentProject() ); + + if ( pom.getParentProject() != null ) + { + // Use parent reference. + VersionedReference parentRef = pom.getParentProject(); + + debug( "Has parent: " + parentRef ); + + // Find parent using resolvers. + ArchivaProjectModel parentProject = findProject( parentRef ); + + if ( parentProject != null ) + { + ProjectModelExpressionExpander.evaluateExpressions( parentProject ); + parentProject = mergeParent( parentProject ); + mixedProject = ProjectModelMerge.merge( pom, parentProject ); + } + else + { + // Shortcircuit due to missing parent pom. + // TODO: Document this via monitor. + mixedProject = mixinSuperPom( pom ); + } + } + else + { + debug( "No parent found" ); + + /* Mix in the super-pom. + * + * Super POM from maven/components contains many things. + * However, for purposes of archiva, only the <repositories> + * and <pluginRepositories> sections are of any value. + */ + + mixedProject = mixinSuperPom( pom ); + } + + return mixedProject; + } + + /** + * Super POM from maven/components contains many things. + * However, for purposes of archiva, only the <repositories> + * and <pluginRepositories> sections are of any value. + * + * @param pom + * @return + */ + private ArchivaProjectModel mixinSuperPom( ArchivaProjectModel pom ) + { + // TODO: add super pom repositories. + debug( "Mix in Super POM: " + pom ); + + return pom; + } + + private static Map createDependencyMap( List dependencies ) + { + Map ret = new HashMap(); + + Iterator it = dependencies.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + String key = toVersionlessDependencyKey( dep ); + ret.put( key, dep ); + } + + return ret; + } + + private static String toVersionlessDependencyKey( Dependency dep ) + { + StringBuffer key = new StringBuffer(); + + key.append( dep.getGroupId() ).append( ":" ).append( dep.getArtifactId() ); + key.append( StringUtils.defaultString( dep.getClassifier() ) ).append( ":" ); + key.append( dep.getType() ); + + return key.toString(); + } +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java new file mode 100644 index 000000000..764c7302e --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java @@ -0,0 +1,92 @@ +package org.apache.maven.archiva.repository.project.filters; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.codehaus.plexus.evaluator.DefaultExpressionEvaluator; +import org.codehaus.plexus.evaluator.EvaluatorException; +import org.codehaus.plexus.evaluator.ExpressionEvaluator; +import org.codehaus.plexus.evaluator.sources.PropertiesExpressionSource; +import org.codehaus.plexus.evaluator.sources.SystemPropertyExpressionSource; + +import java.util.Iterator; +import java.util.List; + +/** + * ProjectModelExpressionExpander + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + * @plexus.component role="org.apache.maven.archiva.repository.project.ProjectModelExpressionExpander" + */ +public class ProjectModelExpressionExpander +{ + /** + * Find and Evaluate the Expressions present in the model. + * + * @param model the model to correct. + */ + public static void evaluateExpressions( ArchivaProjectModel model ) + throws ProjectModelException + { + ExpressionEvaluator evaluator = new DefaultExpressionEvaluator(); + + if ( model.getProperties() != null ) + { + PropertiesExpressionSource propsSource = new PropertiesExpressionSource(); + propsSource.setProperties( model.getProperties() ); + evaluator.addExpressionSource( propsSource ); + } + + evaluator.addExpressionSource( new SystemPropertyExpressionSource() ); + + try + { + model.setVersion( evaluator.expand( model.getVersion() ) ); + model.setGroupId( evaluator.expand( model.getGroupId() ) ); + + evaluateExpressionsInDependencyList( evaluator, model.getDependencies() ); + evaluateExpressionsInDependencyList( evaluator, model.getDependencyManagement() ); + } + catch ( EvaluatorException e ) + { + throw new ProjectModelException( "Unable to evaluate expression in model: " + e.getMessage(), e ); + } + } + + private static void evaluateExpressionsInDependencyList( ExpressionEvaluator evaluator, List dependencies ) + throws EvaluatorException + { + if ( dependencies == null ) + { + return; + } + + Iterator it = dependencies.iterator(); + while ( it.hasNext() ) + { + Dependency dependency = (Dependency) it.next(); + dependency.setGroupId( evaluator.expand( dependency.getGroupId() ) ); + dependency.setVersion( evaluator.expand( dependency.getVersion() ) ); + } + } +} diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel300Reader.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java index 1cb9d86e8..b3ad6bbd6 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel300Reader.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java @@ -1,4 +1,4 @@ -package org.apache.maven.archiva.repository.project; +package org.apache.maven.archiva.repository.project.readers; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -20,6 +20,8 @@ package org.apache.maven.archiva.repository.project; */ import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelReader; import java.io.File; diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel400Reader.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java index 0e64d11fb..77c28c84f 100644 --- a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel400Reader.java +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java @@ -1,4 +1,4 @@ -package org.apache.maven.archiva.repository.project; +package org.apache.maven.archiva.repository.project.readers; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -21,6 +21,7 @@ package org.apache.maven.archiva.repository.project; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArtifactReference; import org.apache.maven.archiva.model.CiManagement; import org.apache.maven.archiva.model.Dependency; import org.apache.maven.archiva.model.DependencyScope; @@ -30,8 +31,10 @@ import org.apache.maven.archiva.model.IssueManagement; import org.apache.maven.archiva.model.License; import org.apache.maven.archiva.model.Organization; import org.apache.maven.archiva.model.ProjectRepository; -import org.apache.maven.archiva.model.RepositoryContent; import org.apache.maven.archiva.model.Scm; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelReader; import org.apache.maven.archiva.xml.XMLException; import org.apache.maven.archiva.xml.XMLReader; import org.dom4j.Element; @@ -40,17 +43,20 @@ import java.io.File; import java.util.ArrayList; import java.util.Iterator; import java.util.List; +import java.util.Properties; /** - * ProjectModel400Reader + * ProjectModel400Reader - read in modelVersion 4.0.0 pom files into archiva-model structures. * * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> * @version $Id$ */ -public class ProjectModel400Reader implements ProjectModelReader +public class ProjectModel400Reader + implements ProjectModelReader { - public ArchivaProjectModel read( File pomFile ) throws ProjectModelException + public ArchivaProjectModel read( File pomFile ) + throws ProjectModelException { try { @@ -58,18 +64,26 @@ public class ProjectModel400Reader implements ProjectModelReader ArchivaProjectModel model = new ArchivaProjectModel(); - RepositoryContent contentKey = new RepositoryContent(); - contentKey.setGroupId( xml.getElementText( "//project/groupId" ) ); - contentKey.setArtifactId( xml.getElementText( "//project/artifactId" ) ); - contentKey.setVersion( xml.getElementText( "//project/version" ) ); - model.setContentKey( contentKey ); + if ( !"http://maven.apache.org/POM/4.0.0".equals( xml.getDefaultNamespaceURI() ) ) + { + // TODO: Output to monitor the problem with the Namespace. + System.out.println( "No namespace defined: " + pomFile ); + } + + xml.removeNamespaces(); + + Element project = xml.getElement( "//project" ); - model.setName( xml.getElementText( "//project/name" ) ); - model.setDescription( xml.getElementText( "//project/description" ) ); - model.setUrl( xml.getElementText( "//project/url" ) ); - model.setPackaging( StringUtils.defaultIfEmpty( xml.getElementText( "//project/packaging" ), "jar" ) ); + model.setGroupId( project.elementTextTrim( "groupId" ) ); + model.setArtifactId( project.elementTextTrim( "artifactId" ) ); + model.setVersion( project.elementTextTrim( "version" ) ); + model.setName( project.elementTextTrim( "name" ) ); + model.setDescription( project.elementTextTrim( "description" ) ); + model.setUrl( project.elementTextTrim( "url" ) ); - model.setParentContentKey( getParentContentKey( xml ) ); + model.setPackaging( StringUtils.defaultIfEmpty( project.elementTextTrim( "packaging" ), "jar" ) ); + + model.setParentProject( getParentProject( xml ) ); model.setCiManagement( getCiManagement( xml ) ); model.setIndividuals( getIndividuals( xml ) ); @@ -80,8 +94,10 @@ public class ProjectModel400Reader implements ProjectModelReader model.setRepositories( getRepositories( xml ) ); model.setDependencies( getDependencies( xml ) ); + model.setDependencyManagement( getDependencyManagement( xml ) ); model.setPlugins( getPlugins( xml ) ); model.setReports( getReports( xml ) ); + model.setProperties( getProperties( xml.getElement( "//project/properties" ) ) ); return model; } @@ -91,7 +107,21 @@ public class ProjectModel400Reader implements ProjectModelReader } } - private CiManagement getCiManagement( XMLReader xml ) throws XMLException + private ArtifactReference getArtifactReference( Element elemPlugin ) + { + ArtifactReference reference = new ArtifactReference(); + + reference.setGroupId( elemPlugin.elementTextTrim( "groupId" ) ); + reference.setArtifactId( elemPlugin.elementTextTrim( "artifactId" ) ); + reference.setVersion( elemPlugin.elementTextTrim( "version" ) ); + reference.setClassifier( elemPlugin.elementTextTrim( "classifier" ) ); + reference.setType( elemPlugin.elementTextTrim( "type" ) ); + + return reference; + } + + private CiManagement getCiManagement( XMLReader xml ) + throws XMLException { Element elemCiMgmt = xml.getElement( "//project/ciManagement" ); if ( elemCiMgmt != null ) @@ -105,22 +135,45 @@ public class ProjectModel400Reader implements ProjectModelReader return null; } - private List getDependencies( XMLReader xml ) throws XMLException + private List getDependencies( XMLReader xml ) + throws XMLException + { + return getDependencyList( xml, new String[] { "dependencies" } ); + } + + private List getDependencyList( XMLReader xml, String parts[] ) + throws XMLException { - List dependencies = new ArrayList(); + List dependencyList = new ArrayList(); + + Element project = xml.getElement( "//project" ); - Iterator it = xml.getElementList( "//project/dependencies/dependency" ).iterator(); + Element depsParent = project; + + for ( int i = 0; i < parts.length; i++ ) + { + String part = parts[i]; + depsParent = depsParent.element( part ); + if ( depsParent == null ) + { + return dependencyList; + } + } + + Iterator it = depsParent.elementIterator( "dependency" ); while ( it.hasNext() ) { Element elemDependency = (Element) it.next(); Dependency dependency = new Dependency(); - dependency.setContentKey( getContentKey( elemDependency ) ); + dependency.setGroupId( elemDependency.elementTextTrim( "groupId" ) ); + dependency.setArtifactId( elemDependency.elementTextTrim( "artifactId" ) ); + dependency.setVersion( elemDependency.elementTextTrim( "version" ) ); dependency.setClassifier( elemDependency.elementTextTrim( "classifier" ) ); dependency.setType( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "type" ), "jar" ) ); dependency.setScope( StringUtils.defaultIfEmpty( elemDependency.elementTextTrim( "scope" ), "compile" ) ); - // Not for v4.0.0 -> dependency.setUrl( elemDependency.elementTextTrim( "url" ) ); + // Not for v4.0.0 -> dependency.setUrl( elemDependency.elementTextTrim("url") ); dependency.setOptional( toBoolean( elemDependency.elementTextTrim( "optional" ), false ) ); if ( DependencyScope.isSystemScoped( dependency ) ) { @@ -129,10 +182,26 @@ public class ProjectModel400Reader implements ProjectModelReader dependency.setExclusions( getExclusions( elemDependency ) ); - dependencies.add( dependency ); + if ( dependencyList.contains( dependency ) ) + { + // TODO: throw into monitor as issue. + System.err.println( "Duplicate non-unique dependency detected [" + StringUtils.join(parts, ":") + "]: " + + toDependencyKey( dependency ) ); + } + + dependencyList.add( dependency ); + System.out.println( "Added (list.size:" + dependencyList.size() + ") dependency: " + + toDependencyKey( dependency ) ); } - return dependencies; + System.out.println( "## Returning dependency list: size=" + dependencyList.size() ); + return dependencyList; + } + + private List getDependencyManagement( XMLReader xml ) + throws XMLException + { + return getDependencyList( xml, new String[] { "dependencyManagement", "dependencies" } ); } private List getExclusions( Element elemDependency ) @@ -159,7 +228,8 @@ public class ProjectModel400Reader implements ProjectModelReader return exclusions; } - private List getIndividuals( XMLReader xml ) throws XMLException + private List getIndividuals( XMLReader xml ) + throws XMLException { List individuals = new ArrayList(); @@ -169,7 +239,8 @@ public class ProjectModel400Reader implements ProjectModelReader return individuals; } - private List getIndividuals( XMLReader xml, boolean isCommitor, String xpathExpr ) throws XMLException + private List getIndividuals( XMLReader xml, boolean isCommitor, String xpathExpr ) + throws XMLException { List ret = new ArrayList(); @@ -203,16 +274,7 @@ public class ProjectModel400Reader implements ProjectModelReader } // Properties - Element elemProperties = elemPerson.element( "properties" ); - if ( elemProperties != null ) - { - Iterator itProps = elemProperties.elements().iterator(); - while ( itProps.hasNext() ) - { - Element elemProp = (Element) itProps.next(); - individual.addProperty( elemProp.getName(), elemProp.getText() ); - } - } + individual.setProperties( getProperties( elemPerson.element( "properties" ) ) ); ret.add( individual ); } @@ -220,7 +282,8 @@ public class ProjectModel400Reader implements ProjectModelReader return ret; } - private IssueManagement getIssueManagement( XMLReader xml ) throws XMLException + private IssueManagement getIssueManagement( XMLReader xml ) + throws XMLException { Element elemIssueMgmt = xml.getElement( "//project/issueManagement" ); if ( elemIssueMgmt != null ) @@ -236,7 +299,8 @@ public class ProjectModel400Reader implements ProjectModelReader return null; } - private List getLicenses( XMLReader xml ) throws XMLException + private List getLicenses( XMLReader xml ) + throws XMLException { List licenses = new ArrayList(); @@ -251,7 +315,7 @@ public class ProjectModel400Reader implements ProjectModelReader License license = new License(); // TODO: Create LicenseIdentity class to managed license ids. - // license.setId( elemLicense.elementTextTrim( "id" ) ); + // license.setId( elemLicense.elementTextTrim("id") ); license.setName( elemLicense.elementTextTrim( "name" ) ); license.setUrl( elemLicense.elementTextTrim( "url" ) ); license.setComments( elemLicense.elementTextTrim( "comments" ) ); @@ -263,7 +327,8 @@ public class ProjectModel400Reader implements ProjectModelReader return licenses; } - private Organization getOrganization( XMLReader xml ) throws XMLException + private Organization getOrganization( XMLReader xml ) + throws XMLException { Element elemOrg = xml.getElement( "//project/organization" ); if ( elemOrg != null ) @@ -279,43 +344,30 @@ public class ProjectModel400Reader implements ProjectModelReader return null; } - private RepositoryContent getParentContentKey( XMLReader xml ) throws XMLException + private VersionedReference getParentProject( XMLReader xml ) + throws XMLException { Element elemParent = xml.getElement( "//project/parent" ); if ( elemParent != null ) { - return getContentKey( elemParent ); + return getVersionedReference( elemParent ); } return null; } - private RepositoryContent getContentKey( Element elem ) - { - RepositoryContent contentKey = new RepositoryContent(); - - contentKey.setGroupId( elem.elementTextTrim( "groupId" ) ); - contentKey.setArtifactId( elem.elementTextTrim( "artifactId" ) ); - contentKey.setVersion( elem.elementTextTrim( "version" ) ); - - return contentKey; - } - - private List getPlugins( XMLReader xml ) throws XMLException + private List getPlugins( XMLReader xml ) + throws XMLException { return getPlugins( xml, "//project/build/plugins/plugin" ); } - private List getReports( XMLReader xml ) throws XMLException - { - return getPlugins( xml, "//project/reporting/plugins/plugin" ); - } - /** * Get List of {@link RepositoryContent} objects from plugin definitions. */ - private List getPlugins( XMLReader xml, String xpathExpr ) throws XMLException + private List getPlugins( XMLReader xml, String xpathExpr ) + throws XMLException { List plugins = new ArrayList(); @@ -324,13 +376,39 @@ public class ProjectModel400Reader implements ProjectModelReader { Element elemPlugin = (Element) it.next(); - plugins.add( getContentKey( elemPlugin ) ); + plugins.add( getArtifactReference( elemPlugin ) ); } return plugins; } - private List getRepositories( XMLReader xml ) throws XMLException + private Properties getProperties( Element elemProperties ) + { + if ( elemProperties == null ) + { + return null; + } + + Properties ret = new Properties(); + + Iterator itProps = elemProperties.elements().iterator(); + while ( itProps.hasNext() ) + { + Element elemProp = (Element) itProps.next(); + ret.setProperty( elemProp.getName(), elemProp.getText() ); + } + + return ret; + } + + private List getReports( XMLReader xml ) + throws XMLException + { + return getPlugins( xml, "//project/reporting/plugins/plugin" ); + } + + private List getRepositories( XMLReader xml ) + throws XMLException { List repos = new ArrayList(); @@ -340,7 +418,8 @@ public class ProjectModel400Reader implements ProjectModelReader return repos; } - private List getRepositories( XMLReader xml, boolean isPluginRepo, String xpathExpr ) throws XMLException + private List getRepositories( XMLReader xml, boolean isPluginRepo, String xpathExpr ) + throws XMLException { List ret = new ArrayList(); @@ -359,7 +438,7 @@ public class ProjectModel400Reader implements ProjectModelReader repo.setPlugins( isPluginRepo ); repo.setReleases( toBoolean( xml.getElementText( elemRepo, "releases/enabled" ), true ) ); - repo.setReleases( toBoolean( xml.getElementText( elemRepo, "snapshots/enabled" ), false ) ); + repo.setSnapshots( toBoolean( xml.getElementText( elemRepo, "snapshots/enabled" ), false ) ); ret.add( repo ); } @@ -367,7 +446,8 @@ public class ProjectModel400Reader implements ProjectModelReader return ret; } - private Scm getSCM( XMLReader xml ) throws XMLException + private Scm getSCM( XMLReader xml ) + throws XMLException { Element elemScm = xml.getElement( "//project/scm" ); @@ -385,6 +465,17 @@ public class ProjectModel400Reader implements ProjectModelReader return null; } + private VersionedReference getVersionedReference( Element elem ) + { + VersionedReference reference = new VersionedReference(); + + reference.setGroupId( elem.elementTextTrim( "groupId" ) ); + reference.setArtifactId( elem.elementTextTrim( "artifactId" ) ); + reference.setVersion( elem.elementTextTrim( "version" ) ); + + return reference; + } + private boolean toBoolean( String value, boolean defaultValue ) { if ( StringUtils.equalsIgnoreCase( value, "true" ) ) @@ -402,4 +493,10 @@ public class ProjectModel400Reader implements ProjectModelReader } } + private String toDependencyKey( Dependency dep ) + { + return "[" + dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getVersion() + ":" + dep.getClassifier() + + ":" + dep.getType() + "]"; + } + } diff --git a/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java new file mode 100644 index 000000000..d33d74102 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java @@ -0,0 +1,69 @@ +package org.apache.maven.archiva.repository.project.resolvers; + +/* + * 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 org.apache.maven.archiva.model.ArchivaArtifact; +import org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArchivaRepository; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.layout.BidirectionalRepositoryLayout; +import org.apache.maven.archiva.repository.layout.DefaultBidirectionalRepositoryLayout; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelReader; +import org.apache.maven.archiva.repository.project.ProjectModelResolver; +import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; + +import java.io.File; + +/** + * RepositoryProjectResolver + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class RepositoryProjectResolver + implements ProjectModelResolver +{ + private ArchivaRepository repository; + + private ProjectModelReader reader; + + private BidirectionalRepositoryLayout layout; + + public RepositoryProjectResolver( ArchivaRepository repository ) + { + this.repository = repository; + this.reader = new ProjectModel400Reader(); + this.layout = new DefaultBidirectionalRepositoryLayout(); + } + + public ArchivaProjectModel resolveProjectModel( VersionedReference reference ) + throws ProjectModelException + { + ArchivaArtifact artifact = new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), reference + .getVersion(), "", "pom" ); + + String path = layout.pathOf( artifact ); + File repoFile = new File( this.repository.getUrl().getPath(), path ); + + return reader.read( repoFile ); + } + +} diff --git a/archiva-base/archiva-repository-layer/src/test/effective-poms/archiva-model-effective.pom b/archiva-base/archiva-repository-layer/src/test/effective-poms/archiva-model-effective.pom new file mode 100644 index 000000000..9129a9db4 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/effective-poms/archiva-model-effective.pom @@ -0,0 +1,794 @@ +<?xml version="1.0" encoding="UTF-8"?> +<project> + <parent> + <artifactId>archiva-base</artifactId> + <groupId>org.apache.maven.archiva</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + <name>Archiva Base :: Model</name> + <version>1.0-SNAPSHOT</version> + <description>Archiva is an application for managing one or more remote repositories, including + administration, artifact handling, + browsing and searching.</description> + <url>http://maven.apache.org/archiva/archiva-base/archiva-model</url> + <issueManagement> + <system>jira</system> + <url>http://jira.codehaus.org/browse/MRM</url> + </issueManagement> + <ciManagement> + <system>continuum</system> + <url>http://maven.zones.apache.org:8080/continuum</url> + <notifiers> + <notifier> + <configuration> + <address>notifications@maven.apache.org</address> + </configuration> + </notifier> + </notifiers> + </ciManagement> + <inceptionYear>2002</inceptionYear> + <mailingLists> + <mailingList> + <name>Maven Archiva User List</name> + <subscribe>archiva-users-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-users@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive> + </mailingList> + <mailingList> + <name>Maven Archiva Developer List</name> + <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-dev@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive> + </mailingList> + <mailingList> + <name>Maven Archiva Commits List</name> + <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-commits@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive> + </mailingList> + </mailingLists> + <developers> + <developer> + <id>jvanzyl</id> + <name>Jason van Zyl</name> + <email>jason@maven.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Chair</role> + </roles> + <timezone>-5</timezone> + </developer> + <developer> + <id>brett</id> + <name>Brett Porter</name> + <email>brett@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+10</timezone> + </developer> + <developer> + <id>evenisse</id> + <name>Emmanuel Venisse</name> + <email>evenisse@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>kenney</id> + <name>Kenney Westerhof</name> + <email>kenney@apache.org</email> + <organization>Neonics</organization> + <roles> + <role>PMC Member</role> + </roles> + </developer> + <developer> + <id>snicoll</id> + <name>Stephane Nicoll</name> + <email>snicoll@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>vmassol</id> + <name>Vincent Massol</name> + <email>vmassol@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>fgiust</id> + <name>Fabrizio Giustina</name> + <email>fgiust@apache.org</email> + <organization>openmind</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>epunzalan</id> + <name>Edwin Punzalan</name> + <email>epunzalan@mergere.com</email> + <organization>Mergere</organization> + <roles> + <role>Committer</role> + </roles> + <timezone>+8</timezone> + </developer> + <developer> + <id>mperham</id> + <name>Mike Perham</name> + <email>mperham@gmail.com</email> + <organization>IBM</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>-6</timezone> + </developer> + <developer> + <id>jdcasey</id> + <name>John Casey</name> + <email>jdcasey@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>-5</timezone> + </developer> + <developer> + <id>trygvis</id> + <name>Trygve Laugstol</name> + <email>trygvis@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>vsiveton</id> + <name>Vincent Siveton</name> + <email>vsiveton@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>-5</timezone> + </developer> + <developer> + <id>carlos</id> + <name>Carlos Sanchez</name> + <email>carlos@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>dennisl</id> + <name>Dennis Lundberg</name> + <email>dennisl@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + </developers> + <licenses> + <license> + <name>The Apache Software License, Version 2.0</name> + <url>http://www.apache.org/licenses/LICENSE-2.0.txt</url> + <distribution>repo</distribution> + </license> + </licenses> + <scm> + <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk/archiva-base/archiva-model</connection> + <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk/archiva-base/archiva-model</developerConnection> + <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk/archiva-base/archiva-model</url> + </scm> + <organization> + <name>Apache Software Foundation</name> + <url>http://www.apache.org/</url> + </organization> + <build> + <sourceDirectory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java</sourceDirectory> + <scriptSourceDirectory>src/main/scripts</scriptSourceDirectory> + <testSourceDirectory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java</testSourceDirectory> + <outputDirectory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target/classes</outputDirectory> + <testOutputDirectory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target/test-classes</testOutputDirectory> + <resources> + <resource> + <directory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/resources</directory> + </resource> + </resources> + <testResources> + <testResource> + <directory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/resources</directory> + </testResource> + </testResources> + <directory>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target</directory> + <finalName>archiva-model-1.0-SNAPSHOT</finalName> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-idea-plugin</artifactId> + <configuration> + <jdkLevel>1.4</jdkLevel> + </configuration> + </plugin> + <plugin> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase> + </configuration> + </plugin> + </plugins> + </pluginManagement> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <version>1.3.3</version> + <executions> + <execution> + <id>generate</id> + <goals> + <goal>descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.4</source> + <target>1.4</target> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.2</version> + </plugin> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <version>1.0-alpha-15-SNAPSHOT</version> + <executions> + <execution> + <id>archiva-base</id> + <goals> + <goal>java</goal> + <goal>xsd</goal> + <goal>jpox-jdo-mapping</goal> + <goal>jpox-metadata-class</goal> + </goals> + </execution> + </executions> + <configuration> + <version>1.0.0</version> + <packageWithVersion>false</packageWithVersion> + <model>src/main/mdo/archiva-base.xml</model> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>jpox-maven-plugin</artifactId> + <version>1.1.6</version> + <executions> + <execution> + <id>create-ddl</id> + <phase>generate-test-resources</phase> + <goals> + <goal>schema-create</goal> + </goals> + <configuration> + <outputFile>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/target/classes/org/apache/maven/archiva/model/schema.ddl</outputFile> + <toolProperties> + <property> + <name>javax.jdo.option.ConnectionDriverName</name> + <value>org.apache.derby.jdbc.EmbeddedDriver</value> + </property> + <property> + <name>javax.jdo.option.ConnectionURL</name> + <value>jdbc:derby:target/jdo-schema-create;create=true</value> + </property> + <property> + <name>javax.jdo.option.ConnectionUserName</name> + <value>sa</value> + </property> + <property> + <name>javax.jdo.option.ConnectionPassword</name> + <value></value> + </property> + <property> + <name>log4j.configuration</name> + <value>/home/joakim/code/maven/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/resources/log4j.xml</value> + </property> + <property> + <name>org.jpox.autoCreateTables</name> + <value>true</value> + </property> + </toolProperties> + </configuration> + </execution> + <execution> + <id>enhance</id> + <goals> + <goal>enhance</goal> + </goals> + </execution> + </executions> + <dependencies> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.2.1.6</version> + </dependency> + </dependencies> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <instrumentation> + <excludes> + <exclude>org/apache/maven/archiva/reporting/model/**</exclude> + </excludes> + </instrumentation> + </configuration> + </plugin> + <plugin> + <artifactId>maven-help-plugin</artifactId> + <version>2.0.1</version> + </plugin> + </plugins> + </build> + <repositories> + <repository> + <releases /> + <snapshots> + <enabled>false</enabled> + </snapshots> + <id>codehaus.org</id> + <url>http://repository.codehaus.org</url> + </repository> + <repository> + <releases> + <enabled>false</enabled> + </releases> + <snapshots /> + <id>snapshots.codehaus.org</id> + <url>http://snapshots.repository.codehaus.org</url> + </repository> + <repository> + <releases> + <enabled>false</enabled> + </releases> + <id>apache.snapshots</id> + <name>Apache Snapshot Repository</name> + <url>http://people.apache.org/repo/m2-snapshot-repository</url> + </repository> + <repository> + <snapshots> + <enabled>false</enabled> + </snapshots> + <id>central</id> + <name>Maven Repository Switchboard</name> + <url>http://repo1.maven.org/maven2</url> + </repository> + </repositories> + <pluginRepositories> + <pluginRepository> + <releases> + <enabled>false</enabled> + </releases> + <snapshots /> + <id>snapshots.codehaus.org</id> + <url>http://snapshots.repository.codehaus.org</url> + </pluginRepository> + <pluginRepository> + <releases> + <updatePolicy>never</updatePolicy> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + <id>central</id> + <name>Maven Plugin Repository</name> + <url>http://repo1.maven.org/maven2</url> + </pluginRepository> + </pluginRepositories> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>1.4</version> + </dependency> + <dependency> + <groupId>javax.jdo</groupId> + <artifactId>jdo2-api</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-18</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.2</version> + </dependency> + </dependencies> + <reporting> + <outputDirectory>target/site</outputDirectory> + <plugins> + <plugin> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <configLocation>config/maven_checks.xml</configLocation> + </configuration> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <configuration> + <source>1.4</source> + <aggregate>true</aggregate> + </configuration> + </plugin> + <plugin> + <artifactId>maven-jxr-plugin</artifactId> + <configuration> + <aggregate>true</aggregate> + </configuration> + </plugin> + <plugin> + <artifactId>maven-pmd-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>changelog-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>taglist-maven-plugin</artifactId> + </plugin> + </plugins> + </reporting> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-model</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-web</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-18</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + <version>1.0-alpha-18</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>1.4</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>2.0.5</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-model-converter</artifactId> + <version>2.0.5-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + <version>1.0-beta-2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>1.0-beta-2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <version>1.0-beta-2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http-lightweight</artifactId> + <version>1.0-beta-2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-core</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-reports-standard</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-database</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-consumer-api</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-database</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-discoverer</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-repository-layer</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-indexer</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-proxy</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-applet</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-security</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-converter</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-utils</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-webapp</artifactId> + <version>1.0-SNAPSHOT</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + <version>1.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-rbac-profile</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-integration</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-taglib</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authentication-provider-user-manager</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authentication-provider-keystore</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-user-management-api</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-user-management-provider-jdo</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-store-cached</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-api</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-authorizer</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-keys-jdo</artifactId> + <version>1.0-alpha-11-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.1.3.1</version> + </dependency> + </dependencies> + </dependencyManagement> + <distributionManagement> + <repository> + <id>apache.releases</id> + <name>Apache Release Distribution Repository</name> + <url>scp://people.apache.org/www/people.apache.org/repo/m2-ibiblio-rsync-repository</url> + </repository> + <snapshotRepository> + <id>apache.snapshots</id> + <name>Apache Development Snapshot Repository</name> + <url>scp://people.apache.org/www/people.apache.org/repo/m2-snapshot-repository</url> + </snapshotRepository> + <site> + <id>apache.website</id> + <url>scpexe://people.apache.org/www/maven.apache.org/archiva/archiva-base/archiva-model</url> + </site> + </distributionManagement> + <properties> + <plexus-security.version>1.0-alpha-11-SNAPSHOT</plexus-security.version> + <wagon.version>1.0-beta-2</wagon.version> + <maven.version>2.0.5</maven.version> + <archiva.version>1.0-SNAPSHOT</archiva.version> + </properties> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java index 5b6af02a8..676872b2d 100644 --- a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java @@ -42,8 +42,8 @@ public class RepositoryMetadataReaderTest extends PlexusTestCase ArchivaRepositoryMetadata metadata = reader.read( metadataFile ); assertNotNull( metadata ); - assertEquals( "Group Id", "org.apache.maven.shared", metadata.getContentKey().getGroupId() ); - assertEquals( "Artifact Id", "maven-downloader", metadata.getContentKey().getArtifactId() ); + assertEquals( "Group Id", "org.apache.maven.shared", metadata.getGroupId() ); + assertEquals( "Artifact Id", "maven-downloader", metadata.getArtifactId() ); assertEquals( "Released Version", "1.1", metadata.getReleasedVersion() ); assertEquals( "List of Available Versions", 2, metadata.getAvailableVersions().size() ); assertTrue( "Available version 1.0", metadata.getAvailableVersions().contains( "1.0" ) ); diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/AllTests.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/AllTests.java index a9646e935..7ff3c1ccf 100644 --- a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/AllTests.java +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/AllTests.java @@ -35,7 +35,8 @@ public class AllTests { TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.repository.project" ); //$JUnit-BEGIN$ - suite.addTestSuite( ProjectModel400ReaderTest.class ); + suite.addTest( org.apache.maven.archiva.repository.project.filters.AllTests.suite() ); + suite.addTest( org.apache.maven.archiva.repository.project.readers.AllTests.suite() ); //$JUnit-END$ return suite; } diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/ProjectModel400ReaderTest.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/ProjectModel400ReaderTest.java deleted file mode 100644 index a413ed2a1..000000000 --- a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/ProjectModel400ReaderTest.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.repository.project; - -/* - * 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 org.apache.maven.archiva.model.ArchivaProjectModel; -import org.codehaus.plexus.PlexusTestCase; - -import java.io.File; - -/** - * ProjectModel400ReaderTest - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - */ -public class ProjectModel400ReaderTest extends PlexusTestCase -{ - public void testLoadSimple() throws ProjectModelException - { - File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); - File pomFile = new File( defaultRepoDir, "org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom" ); - - ProjectModelReader reader = new ProjectModel400Reader(); - - ArchivaProjectModel project = reader.read( pomFile ); - - assertNotNull( project ); - assertEquals( "Group Id", "org.apache.maven.shared", project.getContentKey().getGroupId() ); - assertEquals( "Artifact Id", "maven-downloader", project.getContentKey().getArtifactId() ); - assertEquals( "Released Version", "1.0", project.getContentKey().getVersion() ); - assertEquals( "Name", "Maven Downloader", project.getName() ); - assertEquals( "Description", "Provide a super simple interface for downloading a single artifact.", project.getDescription() ); -// assertTrue( "Available version 1.0", project.getAvailableVersions().contains( "1.0" ) ); -// assertTrue( "Available version 1.1", project.getAvailableVersions().contains( "1.1" ) ); - } -} diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AbstractGenericConsumerTestCase.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java index bbb5610bd..a4bf59f96 100644 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AbstractGenericConsumerTestCase.java +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java @@ -1,6 +1,4 @@ -package org.apache.maven.archiva.consumers; - -import org.apache.maven.archiva.repository.consumer.ConsumerFactory; +package org.apache.maven.archiva.repository.project.filters; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -21,33 +19,26 @@ import org.apache.maven.archiva.repository.consumer.ConsumerFactory; * under the License. */ +import junit.framework.Test; +import junit.framework.TestSuite; /** - * AbstractGenericConsumerTestCase + * AllTests * * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> * @version $Id$ */ -public abstract class AbstractGenericConsumerTestCase - extends AbstractConsumerTestCase +public class AllTests { - protected ConsumerFactory consumerFactory; - protected void setUp() - throws Exception + public static Test suite() { - super.setUp(); - - consumerFactory = (ConsumerFactory) lookup( ConsumerFactory.ROLE ); + TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.repository.project.filters" ); + //$JUnit-BEGIN$ + suite.addTestSuite( ProjectModelExpressionExpanderTest.class ); + suite.addTestSuite( EffectiveProjectModelBuilderTest.class ); + //$JUnit-END$ + return suite; } - protected void tearDown() - throws Exception - { - if ( consumerFactory != null ) - { - release( consumerFactory ); - } - super.tearDown(); - } } diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java new file mode 100644 index 000000000..fd82b345a --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java @@ -0,0 +1,143 @@ +package org.apache.maven.archiva.repository.project.filters; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.ArchivaRepository; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelReader; +import org.apache.maven.archiva.repository.project.ProjectModelResolver; +import org.apache.maven.archiva.repository.project.filters.EffectiveProjectModelBuilder; +import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; +import org.apache.maven.archiva.repository.project.resolvers.RepositoryProjectResolver; +import org.codehaus.plexus.PlexusTestCase; + +import java.io.File; +import java.util.Iterator; +import java.util.List; + +/** + * EffectiveProjectModelBuilderTest + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class EffectiveProjectModelBuilderTest + extends PlexusTestCase +{ + private static final String DEFAULT_REPOSITORY = "src/test/repositories/default-repository"; + + private ArchivaProjectModel createArchivaProjectModel( String path ) + throws ProjectModelException + { + ProjectModelReader reader = new ProjectModel400Reader(); + + File pomFile = new File( getBasedir(), path ); + + return reader.read( pomFile ); + } + + private ProjectModelResolver createDefaultRepositoryResolver() + { + File defaultRepoDir = new File( getBasedir(), DEFAULT_REPOSITORY ); + + ArchivaRepository repo = new ArchivaRepository( "defaultTestRepo", "Default Test Repo", "file://" + + defaultRepoDir.getAbsolutePath() ); + + RepositoryProjectResolver resolver = new RepositoryProjectResolver( repo ); + + return resolver; + } + + public void testBuildEffectiveProject() + throws Exception + { + EffectiveProjectModelBuilder builder = new EffectiveProjectModelBuilder(); + builder.addProjectModelResolver( createDefaultRepositoryResolver() ); + + ArchivaProjectModel startModel = createArchivaProjectModel( DEFAULT_REPOSITORY + + "/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom" ); + + ArchivaProjectModel effectiveModel = builder.buildEffectiveProjectModel( startModel ); + + ArchivaProjectModel expectedModel = createArchivaProjectModel( "src/test/effective-poms/" + + "/archiva-model-effective.pom" ); + + assertModel( expectedModel, effectiveModel ); + } + + private void assertModel( ArchivaProjectModel expectedModel, ArchivaProjectModel effectiveModel ) + { + assertEquals( "Equivalent Models", expectedModel, effectiveModel ); + + assertContainsSame( "Individuals", expectedModel.getIndividuals(), effectiveModel.getIndividuals() ); + dumpDependencyList( "Expected", expectedModel.getDependencies() ); + dumpDependencyList( "Effective", effectiveModel.getDependencies() ); + assertContainsSame( "Dependencies", expectedModel.getDependencies(), effectiveModel.getDependencies() ); + assertContainsSame( "DependencyManagement", expectedModel.getDependencyManagement(), effectiveModel + .getDependencyManagement() ); + } + + private void dumpDependencyList( String type, List deps ) + { + System.out.println( ".\\ [" + type + "] Dependency List (size:" + deps.size() + ") \\.________________" ); + Iterator it = deps.iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + System.out.println( " " + toDependencyKey( dep ) ); + } + System.out.println( "" ); + } + + private String toDependencyKey( Dependency dep ) + { + return "[" + dep.getGroupId() + ":" + dep.getArtifactId() + ":" + dep.getVersion() + ":" + dep.getClassifier() + + ":" + dep.getType() + "]"; + } + + private void assertContainsSame( String listId, List expectedList, List effectiveList ) + { + if ( ( expectedList == null ) && ( effectiveList == null ) ) + { + return; + } + + if ( ( expectedList == null ) && ( effectiveList != null ) ) + { + fail( "Effective [" + listId + "] List is instantiated, while expected List is null." ); + } + + if ( ( expectedList != null ) && ( effectiveList == null ) ) + { + fail( "Effective [" + listId + "] List is null, while expected List is instantiated." ); + } + + assertEquals( "[" + listId + "] List Size", expectedList.size(), expectedList.size() ); + + Iterator it = expectedList.iterator(); + while ( it.hasNext() ) + { + Object o = it.next(); + assertTrue( "Should exist in Effective [" + listId + "] list: " + o, effectiveList.contains( o ) ); + } + } +} diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java new file mode 100644 index 000000000..ed06ac95a --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java @@ -0,0 +1,84 @@ +package org.apache.maven.archiva.repository.project.filters; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.Dependency; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.filters.ProjectModelExpressionExpander; + +import java.util.Iterator; + +import junit.framework.TestCase; + +/** + * ProjectModelExpressionExpanderTest + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class ProjectModelExpressionExpanderTest + extends TestCase +{ + public void testExpressionEvaluation() + throws ProjectModelException + { + ArchivaProjectModel model = new ArchivaProjectModel(); + model.setGroupId( "org.apache.maven.archiva" ); + model.setArtifactId( "archiva-test-project" ); + model.setVersion( "1.0-SNAPSHOT" ); + + model.addDependency( createDependency( "org.apache.maven.archiva", "archiva-model", "${archiva.version}" ) ); + model.addDependency( createDependency( "org.apache.maven.archiva", "archiva-common", "${archiva.version}" ) ); + model.addDependency( createDependency( "org.apache.maven.archiva", "archiva-indexer", "${archiva.version}" ) ); + + model.addProperty( "archiva.version", "1.0-SNAPSHOT" ); + + ProjectModelExpressionExpander.evaluateExpressions( model ); + + assertNotNull( model ); + assertEquals( "Group ID", "org.apache.maven.archiva", model.getGroupId() ); + assertEquals( "Artifact ID", "archiva-test-project", model.getArtifactId() ); + assertEquals( "Version", "1.0-SNAPSHOT", model.getVersion() ); + assertNotNull( "Dependencies", model.getDependencies() ); + assertEquals( "Dependencies Size", 3, model.getDependencies().size() ); + + Iterator it = model.getDependencies().iterator(); + while ( it.hasNext() ) + { + Dependency dep = (Dependency) it.next(); + assertEquals( "Dependency [" + dep.getArtifactId() + "] Group ID", "org.apache.maven.archiva", dep + .getGroupId() ); + assertEquals( "Dependency [" + dep.getArtifactId() + "] Version", "1.0-SNAPSHOT", dep.getVersion() ); + } + } + + private Dependency createDependency( String groupId, String artifactId, String version ) + { + Dependency dep = new Dependency(); + + dep.setGroupId( groupId ); + dep.setArtifactId( artifactId ); + dep.setVersion( version ); + + return dep; + } + +} diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AllTests.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/AllTests.java index 783fb8547..0c55a71c7 100644 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AllTests.java +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/AllTests.java @@ -1,4 +1,4 @@ -package org.apache.maven.archiva.consumers; +package org.apache.maven.archiva.repository.project.readers; /* * Licensed to the Apache Software Foundation (ASF) under one @@ -33,9 +33,9 @@ public class AllTests public static Test suite() { - TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.common.consumers" ); + TestSuite suite = new TestSuite( "Test for org.apache.maven.archiva.repository.project.readers" ); //$JUnit-BEGIN$ - suite.addTestSuite( GenericArtifactConsumerTest.class ); + suite.addTestSuite( ProjectModel400ReaderTest.class ); //$JUnit-END$ return suite; } diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java new file mode 100644 index 000000000..3735ea766 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java @@ -0,0 +1,98 @@ +package org.apache.maven.archiva.repository.project.readers; + +/* + * 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 org.apache.maven.archiva.model.ArchivaProjectModel; +import org.apache.maven.archiva.model.VersionedReference; +import org.apache.maven.archiva.repository.project.ProjectModelException; +import org.apache.maven.archiva.repository.project.ProjectModelReader; +import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; +import org.codehaus.plexus.PlexusTestCase; + +import java.io.File; + +/** + * ProjectModel400ReaderTest + * + * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> + * @version $Id$ + */ +public class ProjectModel400ReaderTest + extends PlexusTestCase +{ + public void testLoadSimple() + throws ProjectModelException + { + File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); + File pomFile = new File( defaultRepoDir, + "org/apache/maven/shared/maven-downloader/1.0/maven-downloader-1.0.pom" ); + + ProjectModelReader reader = new ProjectModel400Reader(); + + ArchivaProjectModel project = reader.read( pomFile ); + + assertNotNull( project ); + assertEquals( "Group Id", "org.apache.maven.shared", project.getGroupId() ); + assertEquals( "Artifact Id", "maven-downloader", project.getArtifactId() ); + assertEquals( "Version", "1.0", project.getVersion() ); + assertEquals( "Name", "Maven Downloader", project.getName() ); + assertEquals( "Description", "Provide a super simple interface for downloading a single artifact.", project + .getDescription() ); + + // Test for parent + VersionedReference parentRef = project.getParentProject(); + assertNotNull( "Parent Reference", parentRef ); + assertEquals( "Parent Group ID", "org.apache.maven.shared", parentRef.getGroupId() ); + assertEquals( "Parent Artifact ID", "maven-shared-components", parentRef.getArtifactId() ); + assertEquals( "Parent Version", "4", parentRef.getVersion() ); + + assertNotNull( "Dependencies", project.getDependencies() ); + assertEquals( "Dependencies.size", 3, project.getDependencies().size() ); + } + + public void testLoadWithNamespace() + throws ProjectModelException + { + File defaultRepoDir = new File( getBasedir(), "src/test/repositories/default-repository" ); + File pomFile = new File( defaultRepoDir, + "org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom" ); + + ProjectModelReader reader = new ProjectModel400Reader(); + + ArchivaProjectModel project = reader.read( pomFile ); + + assertNotNull( project ); + assertEquals( "Group Id", null, project.getGroupId() ); + assertEquals( "Artifact Id", "archiva-model", project.getArtifactId() ); + assertEquals( "Version", null, project.getVersion() ); + assertEquals( "Name", "Archiva Base :: Model", project.getName() ); + assertEquals( "Description", null, project.getDescription() ); + + // Test for parent + VersionedReference parentRef = project.getParentProject(); + assertNotNull( "Parent Reference", parentRef ); + assertEquals( "Parent Group ID", "org.apache.maven.archiva", parentRef.getGroupId() ); + assertEquals( "Parent Artifact ID", "archiva-base", parentRef.getArtifactId() ); + assertEquals( "Parent Version", "1.0-SNAPSHOT", parentRef.getVersion() ); + + assertNotNull( "Dependencies", project.getDependencies() ); + assertEquals( "Dependencies.size", 6, project.getDependencies().size() ); + } +} diff --git a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/CentralScannerTiming.java b/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/CentralScannerTiming.java deleted file mode 100644 index 1472313e1..000000000 --- a/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/CentralScannerTiming.java +++ /dev/null @@ -1,231 +0,0 @@ -package org.apache.maven.archiva.repository.scanner; - -/* - * 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 org.apache.maven.archiva.common.utils.DateUtil; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.RepositoryContentConsumer; -import org.apache.maven.archiva.model.ArchivaProjectModel; -import org.apache.maven.archiva.model.ArchivaRepository; -import org.apache.maven.archiva.model.RepositoryContentStatistics; -import org.apache.maven.archiva.repository.RepositoryException; -import org.apache.maven.archiva.repository.project.ProjectModel400Reader; -import org.apache.maven.archiva.repository.project.ProjectModelException; -import org.apache.maven.archiva.repository.project.ProjectModelReader; - -import java.io.File; -import java.text.SimpleDateFormat; -import java.util.ArrayList; -import java.util.Collections; -import java.util.List; - -/** - * CentralScannerTiming - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - */ -public class CentralScannerTiming -{ - public static void main( String[] args ) - { - String pathToCentral = "/home/repo1/ibiblio"; - - ( new CentralScannerTiming() ).scanIt( pathToCentral ); - } - - public void scanIt( String path ) - { - ArchivaRepository centralRepo = new ArchivaRepository( "central", "Central Mirror", "file://" + path ); - - List consumerList = new ArrayList(); - - // Basic - find the artifacts (no real processing) - - consumerList.add( new BasicConsumer() ); - timeIt( "Basic Scan", centralRepo, consumerList ); - - // POM - find the poms and read them. - - consumerList.clear(); - consumerList.add( new POMConsumer() ); - timeIt( "POM Read", centralRepo, consumerList ); - } - - private void timeIt( String type, ArchivaRepository repo, List consumerList ) - { - RepositoryScanner scanner = new RepositoryScanner(); - - try - { - RepositoryContentStatistics stats = scanner.scan( repo, consumerList, true ); - - SimpleDateFormat df = new SimpleDateFormat(); - System.out.println( ".\\ " + type + " \\.__________________________________________" ); - System.out.println( " Repository ID : " + stats.getRepositoryId() ); - System.out.println( " Duration : " + DateUtil.getDuration( stats.getDuration() ) ); - System.out.println( " When Gathered : " + df.format( stats.getWhenGathered() ) ); - System.out.println( " Total File Count: " + stats.getTotalFileCount() ); - System.out.println( " New File Count : " + stats.getNewFileCount() ); - System.out.println( "______________________________________________________________" ); - } - catch ( RepositoryException e ) - { - e.printStackTrace( System.err ); - } - } - - class POMConsumer extends AbstractMonitoredConsumer implements RepositoryContentConsumer - { - private int count = 0; - - private ProjectModelReader reader; - - private ArchivaRepository repo; - - public POMConsumer() - { - reader = new ProjectModel400Reader(); - } - - public List getExcludes() - { - return Collections.EMPTY_LIST; - } - - public List getIncludes() - { - List includes = new ArrayList(); - includes.add( "**/*.pom" ); - return includes; - } - - public String getId() - { - return "pom-consumer"; - } - - public String getDescription() - { - return "Basic POM Consumer"; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan( ArchivaRepository repository ) throws ConsumerException - { - repo = repository; - } - - public void processFile( String path ) throws ConsumerException - { - count++; - if ( ( count % 1000 ) == 0 ) - { - System.out.println( "Files Processed: " + count ); - } - - File pomFile = new File( repo.getUrl().getPath(), path ); - try - { - ArchivaProjectModel model = reader.read( pomFile ); - } - catch ( ProjectModelException e ) - { - System.err.println( "Unable to process: " + pomFile ); - e.printStackTrace( System.out ); - } - } - - public void completeScan() - { - /* do nothing */ - } - } - - class BasicConsumer extends AbstractMonitoredConsumer implements RepositoryContentConsumer - { - int count = 0; - - public List getExcludes() - { - return Collections.EMPTY_LIST; - } - - public List getIncludes() - { - List includes = new ArrayList(); - includes.add( "**/*.pom" ); - includes.add( "**/*.jar" ); - includes.add( "**/*.war" ); - includes.add( "**/*.ear" ); - includes.add( "**/*.sar" ); - includes.add( "**/*.car" ); - includes.add( "**/*.mar" ); - // includes.add( "**/*.sha1" ); - // includes.add( "**/*.md5" ); - // includes.add( "**/*.asc" ); - includes.add( "**/*.dtd" ); - includes.add( "**/*.tld" ); - includes.add( "**/*.gz" ); - includes.add( "**/*.bz2" ); - includes.add( "**/*.zip" ); - return includes; - } - - public String getId() - { - return "test-scan-timing"; - } - - public String getDescription() - { - return "Basic No-op Consumer"; - } - - public boolean isPermanent() - { - return false; - } - - public void beginScan( ArchivaRepository repository ) throws ConsumerException - { - /* do nothing */ - } - - public void processFile( String path ) throws ConsumerException - { - count++; - if ( ( count % 1000 ) == 0 ) - { - System.out.println( "Files Processed: " + count ); - } - } - - public void completeScan() - { - /* do nothing */ - } - } -} diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..d48ebf7a8 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/archiva-applet-1.0-SNAPSHOT.pom @@ -0,0 +1,69 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <artifactId>archiva-applet</artifactId> + <name>Archiva Applet</name> + <description> + Applet for performing local operations on files such as creating a checksum of an artifact + before uploading it. + </description> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jar-plugin</artifactId> + <version>2.1</version> + <configuration> + <keystore>src/keystore/keystore</keystore> + <alias>mykey</alias> + <storepass>password</storepass> + <keypass>password</keypass> + </configuration> + <executions> + <execution> + <goals> + <goal>sign</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <instrumentation> + <!-- TODO: should this module have tests? --> + <excludes> + <exclude>**/**</exclude> + </excludes> + </instrumentation> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..cd51f1edc --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/archiva-base-1.0-SNAPSHOT.pom @@ -0,0 +1,42 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-parent</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>archiva-base</artifactId> + <name>Archiva Base</name> + <packaging>pom</packaging> + + <modules> + <module>archiva-common</module> + <module>archiva-configuration</module> + <module>archiva-consumers</module> + <module>archiva-indexer</module> + <module>archiva-model</module> + <!-- <module>archiva-proxy</module> --> + <module>archiva-repository-layer</module> + <module>archiva-xml-tools</module> + </modules> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..115bc99ea --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/archiva-cli-1.0-SNAPSHOT.pom @@ -0,0 +1,68 @@ +<?xml version="1.0"?> +<!-- + ~ 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. + --> + +<project> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-parent</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-cli</artifactId> + <name>Archiva Command Line Client</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-converter</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-repository-layer</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-cli</artifactId> + <version>1.0</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <configuration> + <descriptor>src/main/assembly/archiva-cli-assembly.xml</descriptor> + <archive> + <manifest> + <mainClass>org.apache.maven.archiva.cli.ArchivaCli</mainClass> + </manifest> + </archive> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..17a20abd5 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/archiva-common-1.0-SNAPSHOT.pom @@ -0,0 +1,98 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-common</artifactId> + <name>Archiva Base :: Common</name> + <dependencies> + <!-- TO OTHER DEVELOPERS: + This module should depend on NO OTHER ARCHIVA MODULES. + If you feel tempted to add one, discuss it first in the + archiva-dev@maven.apache.org mailing-list. + joakime@apache.org + --> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <!-- + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + </dependency> + --> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + </dependencies> + <build> + <plugins> + <!-- + <plugin> + <artifactId>maven-jar-plugin</artifactId> + <executions> + <execution> + <id>test-jar</id> + <goals> + <goal>test-jar</goal> + </goals> + </execution> + </executions> + </plugin> + --> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <!-- + <executions> + <execution> + <id>merge</id> + <goals> + <goal>merge-descriptors</goal> + </goals> + <configuration> + <descriptors> + <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor> + <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor> + </descriptors> + </configuration> + </execution> + </executions> + --> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..790d0cfa4 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/archiva-configuration-1.0-SNAPSHOT.pom @@ -0,0 +1,109 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-configuration</artifactId> + <name>Archiva Base :: Configuration</name> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.registry</groupId> + <artifactId>plexus-registry-api</artifactId> + <version>1.0-alpha-2-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.registry</groupId> + <artifactId>plexus-registry-commons</artifactId> + <version>1.0-alpha-2-SNAPSHOT</version> + <scope>test</scope> + </dependency> + <!-- Test Deps --> + <dependency> + <groupId>easymock</groupId> + <artifactId>easymock</artifactId> + <version>1.2_Java1.3</version> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <version>1.0-alpha-15-SNAPSHOT</version> + <executions> + <execution> + <goals> + <goal>java</goal> + <goal>registry-reader</goal> + <goal>registry-writer</goal> + </goals> + </execution> + </executions> + <configuration> + <version>1.0.0</version> + <model>src/main/mdo/configuration.mdo</model> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <instrumentation> + <!-- exclude generated --> + <excludes> + <exclude>org/apache/maven/archiva/configuration/io/**</exclude> + <exclude>org/apache/maven/archiva/configuration/*RepositoryConfiguration.*</exclude> + <exclude>org/apache/maven/archiva/configuration/Configuration.*</exclude> + <exclude>org/apache/maven/archiva/configuration/Proxy.*</exclude> + </excludes> + </instrumentation> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..f331ed074 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/archiva-consumer-api-1.0-SNAPSHOT.pom @@ -0,0 +1,38 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-consumers</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>archiva-consumer-api</artifactId> + <name>Archiva Consumer API</name> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + </dependency> + </dependencies> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..8969b9ed3 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/archiva-consumers-1.0-SNAPSHOT.pom @@ -0,0 +1,41 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>archiva-consumers</artifactId> + <name>Archiva Consumers</name> + <packaging>pom</packaging> + + <modules> + <module>archiva-consumer-api</module> + <module>archiva-core-consumers</module> + <!-- + <module>archiva-database-consumers</module> + <module>archiva-lucene-consumers</module> + <module>archiva-signature-consumers</module> + --> + </modules> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..49bde7bd2 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/archiva-converter-1.0-SNAPSHOT.pom @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-converter</artifactId> + <name>Archiva Repository Converter</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-discoverer</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-model-converter</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-i18n</artifactId> + <version>1.0-beta-6</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + <!-- TEST DEPS --> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.7.3.3</version> + <scope>test</scope> + </dependency> + <!-- Needed for PlexusTestCase --> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <scope>test</scope> + </dependency> + </dependencies> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..182578f57 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/archiva-core-consumers-1.0-SNAPSHOT.pom @@ -0,0 +1,50 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-consumers</artifactId> + <version>1.0-SNAPSHOT</version> + <relativePath>../pom.xml</relativePath> + </parent> + + <artifactId>archiva-core-consumers</artifactId> + <name>Archiva Consumers :: Core Consumers</name> + <packaging>jar</packaging> + + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-consumer-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-repository-layer</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + </dependency> + </dependencies> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..18b98fc7b --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/archiva-core-1.0-SNAPSHOT.pom @@ -0,0 +1,113 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <artifactId>archiva</artifactId> + <groupId>org.apache.maven.archiva</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-core</artifactId> + <name>Archiva Core</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-discoverer</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-proxy</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-reports-standard</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-quartz</artifactId> + <version>1.0-alpha-3</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.cache</groupId> + <artifactId>plexus-cache-ehcache</artifactId> + <version>1.0-alpha-1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-taskqueue</artifactId> + <version>1.0-alpha-6</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.registry</groupId> + <artifactId>plexus-registry-commons</artifactId> + <version>1.0-SNAPSHOT</version> + <scope>test</scope> + </dependency> + <!-- TEST DEPS --> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.7.3.3</version> + <scope>test</scope> + </dependency> + <!-- needed for PlexusTestCase --> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <executions> + <execution> + <id>merge</id> + <goals> + <goal>merge-descriptors</goal> + </goals> + <configuration> + <descriptors> + <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor> + <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor> + </descriptors> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..8a96e39c5 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/archiva-discoverer-1.0-SNAPSHOT.pom @@ -0,0 +1,65 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-discoverer</artifactId> + <name>Archiva Discoverer</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + </dependencies> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..7d77d445f --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/archiva-indexer-1.0-SNAPSHOT.pom @@ -0,0 +1,81 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-indexer</artifactId> + <name>Archiva Base :: Indexer</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + </dependency> + <dependency> + <groupId>org.apache.lucene</groupId> + <artifactId>lucene-core</artifactId> + <version>2.0.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <check> + <!-- TODO: increase coverage --> + <totalLineRate>80</totalLineRate> + <totalBranchRate>80</totalBranchRate> + </check> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..52c185ea7 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/archiva-model-1.0-SNAPSHOT.pom @@ -0,0 +1,159 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-model</artifactId> + <name>Archiva Base :: Model</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>javax.jdo</groupId> + <artifactId>jdo2-api</artifactId> + <version>2.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <version>1.0-alpha-15-SNAPSHOT</version> + <configuration> + <version>1.0.0</version> + <packageWithVersion>false</packageWithVersion> + <model>src/main/mdo/archiva-base.xml</model> + </configuration> + <executions> + <execution> + <id>archiva-base</id> + <goals> + <goal>java</goal> + <goal>xsd</goal> + <goal>jpox-jdo-mapping</goal> + <goal>jpox-metadata-class</goal> + <!-- + <goal>xpp3-writer</goal> + <goal>xpp3-reader</goal> + --> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>jpox-maven-plugin</artifactId> + <version>1.1.6</version> + <dependencies> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.2.1.6</version> + </dependency> + </dependencies> + <executions> + <execution> + <id>create-ddl</id> + <phase>generate-test-resources</phase> + <goals> + <goal>schema-create</goal> + </goals> + <configuration> + <outputFile>${basedir}/target/classes/org/apache/maven/archiva/model/schema.ddl</outputFile> + <toolProperties> + <property> + <name>javax.jdo.option.ConnectionDriverName</name> + <value>org.apache.derby.jdbc.EmbeddedDriver</value> + </property> + <property> + <name>javax.jdo.option.ConnectionURL</name> + <value>jdbc:derby:target/jdo-schema-create;create=true</value> + </property> + <property> + <name>javax.jdo.option.ConnectionUserName</name> + <value>sa</value> + </property> + <property> + <name>javax.jdo.option.ConnectionPassword</name> + <value></value> + </property> + <property> + <name>log4j.configuration</name> + <value>${basedir}/src/test/resources/log4j.xml</value> + </property> + <property> + <name>org.jpox.autoCreateTables</name> + <value>true</value> + </property> + </toolProperties> + </configuration> + </execution> + <execution> + <id>enhance</id> + <goals> + <goal>enhance</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <instrumentation> + <!-- exclude generated --> + <excludes> + <exclude>org/apache/maven/archiva/reporting/model/**</exclude> + </excludes> + </instrumentation> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..c3a69b1a2 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/archiva-parent-1.0-SNAPSHOT.pom @@ -0,0 +1,567 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache.maven</groupId> + <artifactId>maven-parent</artifactId> + <version>4</version> + <relativePath>../pom/maven/pom.xml</relativePath> + </parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-parent</artifactId> + <packaging>pom</packaging> + <name>Archiva</name> + <version>1.0-SNAPSHOT</version> + <description> + Archiva is an application for managing one or more remote repositories, including + administration, artifact handling, + browsing and searching. + </description> + <url>http://maven.apache.org/archiva</url> + <issueManagement> + <system>jira</system> + <url>http://jira.codehaus.org/browse/MRM</url> + </issueManagement> + <mailingLists> + <mailingList> + <name>Maven Archiva User List</name> + <subscribe>archiva-users-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-users@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive> + </mailingList> + <mailingList> + <name>Maven Archiva Developer List</name> + <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-dev@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive> + </mailingList> + <mailingList> + <name>Maven Archiva Commits List</name> + <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-commits@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive> + </mailingList> + </mailingLists> + <scm> + <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk</connection> + <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk</developerConnection> + <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk</url> + </scm> + <distributionManagement> + <site> + <id>apache.website</id> + <url>scpexe://people.apache.org/www/maven.apache.org/archiva/</url> + </site> + </distributionManagement> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <version>1.3.3</version> + <executions> + <execution> + <id>generate</id> + <goals> + <goal>descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.4</source> + <target>1.4</target> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.2</version> + </plugin> + </plugins> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-idea-plugin</artifactId> + <configuration> + <jdkLevel>1.4</jdkLevel> + </configuration> + </plugin> + <plugin> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + <modules> + <module>archiva-api</module> + <module>archiva-base</module> + <module>archiva-database</module> + <module>archiva-reporting</module> + <module>archiva-web</module> + <module>archiva-cli</module> + <module>maven-meeper</module> + </modules> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-model</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-web</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-18</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + <version>1.0-alpha-18</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>1.4</version> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-model-converter</artifactId> + <version>2.0.5-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http-lightweight</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-core</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-reports-standard</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-database</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-consumer-api</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-database</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-discoverer</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-repository-layer</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-indexer</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-proxy</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-applet</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-security</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-converter</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-utils</artifactId> + <version>${archiva.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-webapp</artifactId> + <version>${archiva.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + <version>1.1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-rbac-profile</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web</artifactId> + <version>${plexus-security.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-integration</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-taglib</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authentication-provider-user-manager</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authentication-provider-keystore</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-user-management-api</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-user-management-provider-jdo</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-store-cached</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-api</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-authorizer</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-keys-jdo</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.1.3.1</version> + </dependency> + </dependencies> + </dependencyManagement> + <reporting> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <configLocation>config/maven_checks.xml</configLocation> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>changelog-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>taglist-maven-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-jxr-plugin</artifactId> + <configuration> + <aggregate>true</aggregate> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <configuration> + <source>1.4</source> + <aggregate>true</aggregate> + </configuration> + </plugin> + <plugin> + <artifactId>maven-pmd-plugin</artifactId> + <!-- TODO: choose appropriate rulesets --> + </plugin> + </plugins> + </reporting> + <profiles> + <profile> + <id>ci</id> + <activation> + <property> + <name>enableCiProfile</name> + <value>true</value> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <executions> + <execution> + <phase>process-sources</phase> + <goals> + <!-- TODO: after rules are set + <goal>check</goal> + --> + <goal>cpd-check</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <executions> + <execution> + <phase>process-sources</phase> + <goals> + <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style) + <goal>check</goal> + --> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <check> + <!-- TODO! raise to 85/100 --> + <totalLineRate>77</totalLineRate> + <totalBranchRate>95</totalBranchRate> + </check> + + <instrumentation> + <excludes> + <exclude>**/*$*</exclude> + </excludes> + </instrumentation> + </configuration> + <executions> + <execution> + <id>clean</id> + <goals> + <goal>clean</goal> + </goals> + </execution> + <execution> + <id>check</id> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + <repositories> + <repository> + <id>codehaus.org</id> + <url>http://repository.codehaus.org</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + <!-- TODO: remove once ehcache, p-sec, registry, webdav, xwork, naming released --> + <repository> + <id>snapshots.codehaus.org</id> + <url>http://snapshots.repository.codehaus.org</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + <!-- TODO: remove once modello is released --> + <pluginRepositories> + <pluginRepository> + <id>snapshots.codehaus.org</id> + <url>http://snapshots.repository.codehaus.org</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> + <properties> + <archiva.version>1.0-SNAPSHOT</archiva.version> + <maven.version>2.0.5</maven.version> + <wagon.version>1.0-beta-2</wagon.version> + <plexus-security.version>1.0-alpha-11-SNAPSHOT</plexus-security.version> + </properties> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..21edbff05 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/archiva-plexus-application-1.0-SNAPSHOT.pom @@ -0,0 +1,62 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <artifactId>archiva</artifactId> + <groupId>org.apache.maven.archiva</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-plexus-application</artifactId> + <packaging>plexus-application</packaging> + <name>Archiva Plexus Application</name> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-appserver-maven-plugin</artifactId> + <version>2.0-alpha-7</version> + <extensions>true</extensions> + <configuration> + <applicationConfiguration>src/conf/application.xml</applicationConfiguration> + <configurationsDirectory>src/conf</configurationsDirectory> + <configurationProperties>src/plexus.properties</configurationProperties> + <applicationName>archiva</applicationName> + <runtimeConfiguration>src/conf/plexus.xml</runtimeConfiguration> + <runtimeConfigurationProperties>src/plexus.properties</runtimeConfigurationProperties> + <runtimePath>target/plexus-archiva-runtime</runtimePath> + </configuration> + </plugin> + </plugins> + </build> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-webapp</artifactId> + <type>war</type> + </dependency> + </dependencies> + <!-- For filtering --> + <properties> + <archivaVersion>${project.version}</archivaVersion> + </properties> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..1c675dc62 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/archiva-plexus-runtime-1.0-SNAPSHOT.pom @@ -0,0 +1,145 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-plexus-runtime</artifactId> + <name>Archiva Runtime Generator</name> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-appserver-host</artifactId> + <version>2.0-alpha-7</version> + </dependency> + <!-- Services --> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-appserver-service-jetty</artifactId> + <version>2.0-alpha-7</version> + <type>plexus-service</type> + </dependency> + <!-- Plexus applications --> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-plexus-application</artifactId> + <version>${project.version}</version> + <type>plexus-application</type> + </dependency> + + <!-- Additional Core Artifacts --> + <dependency> + <groupId>log4j</groupId> + <artifactId>log4j</artifactId> + <version>1.2.8</version> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging-api</artifactId> + <version>1.0.4</version> + </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-naming</artifactId> + <version>1.0-alpha-3-SNAPSHOT</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + <version>1.4</version> + <scope>runtime</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-appserver-maven-plugin</artifactId> + <version>2.0-alpha-7</version> + <extensions>true</extensions> + <executions> + <execution> + <phase>process-resources</phase> + <goals> + <goal>assemble-runtime</goal> + <goal>add-services</goal> + <goal>add-apps</goal> + </goals> + </execution> + </executions> + <configuration> + <runtimeConfiguration>src/conf/plexus.xml</runtimeConfiguration> + <runtimeConfigurationProperties>src/plexus.properties</runtimeConfigurationProperties> + <runtimePath>target/plexus-archiva-runtime</runtimePath> + <additionalCoreArtifacts> + <additionalCoreArtifact>commons-logging:commons-logging-api</additionalCoreArtifact> + <additionalCoreArtifact>log4j:log4j</additionalCoreArtifact> + <additionalCoreArtifact>org.apache.derby:derby</additionalCoreArtifact> + <additionalCoreArtifact>org.codehaus.plexus:plexus-naming</additionalCoreArtifact> + <additionalCoreArtifact>commons-pool:commons-pool</additionalCoreArtifact> + <additionalCoreArtifact>commons-dbcp:commons-dbcp</additionalCoreArtifact> + <additionalCoreArtifact>commons-collections:commons-collections</additionalCoreArtifact> + <additionalCoreArtifact>directory-naming:naming-core</additionalCoreArtifact> + <additionalCoreArtifact>directory-naming:naming-factory</additionalCoreArtifact> + <additionalCoreArtifact>directory-naming:naming-java</additionalCoreArtifact> + <additionalCoreArtifact>directory-naming:naming-config</additionalCoreArtifact> + <additionalCoreArtifact>javax.mail:mail</additionalCoreArtifact> + <additionalCoreArtifact>javax.activation:activation</additionalCoreArtifact> + </additionalCoreArtifacts> + </configuration> + </plugin> + <plugin> + <artifactId>maven-assembly-plugin</artifactId> + <version>2.1</version> + <executions> + <execution> + <phase>package</phase> + <goals> + <goal>single</goal> + </goals> + </execution> + </executions> + <configuration> + <descriptor>src/main/assembly/bin.xml</descriptor> + <finalName>archiva</finalName> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-consumer-api/pom.xml b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom index e20018f76..23488ee0a 100755..100644 --- a/archiva-consumer-api/pom.xml +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/archiva-proxy-1.0-SNAPSHOT.pom @@ -26,36 +26,35 @@ <version>1.0-SNAPSHOT</version> </parent> <modelVersion>4.0.0</modelVersion> - <artifactId>archiva-consumer-api-OLD</artifactId> - <name>Archiva Consumer API</name> + <artifactId>archiva-proxy</artifactId> + <name>Archiva Proxy</name> <dependencies> <dependency> <groupId>org.apache.maven.archiva</groupId> - <artifactId>archiva-model</artifactId> + <artifactId>archiva-common</artifactId> </dependency> <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-utils</artifactId> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <scope>test</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> </dependency> <dependency> <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-container-default</artifactId> + <artifactId>plexus-digest</artifactId> </dependency> <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> + <groupId>easymock</groupId> + <artifactId>easymock</artifactId> + <version>1.2_Java1.3</version> + <scope>test</scope> </dependency> <dependency> <groupId>commons-io</groupId> <artifactId>commons-io</artifactId> </dependency> </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-maven-plugin</artifactId> - </plugin> - </plugins> - </build> </project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..24eb19954 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/archiva-reports-standard-1.0-SNAPSHOT.pom @@ -0,0 +1,176 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-reports-standard</artifactId> + <name>Archiva Standard Reports</name> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-repository-layer</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-indexer</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-discoverer</artifactId> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-jdo2</artifactId> + <version>1.0-alpha-8</version> + <exclusions> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xercesImpl</artifactId> + </exclusion> + <exclusion> + <groupId>xerces</groupId> + <artifactId>xmlParserAPIs</artifactId> + </exclusion> + </exclusions> + </dependency> + <dependency> + <groupId>jpox</groupId> + <artifactId>jpox</artifactId> + <version>1.1.6</version> + <scope>compile</scope> + <exclusions> + <!-- targeting JDK 1.4 we don't need this --> + <exclusion> + <groupId>javax.sql</groupId> + <artifactId>jdbc-stdext</artifactId> + </exclusion> + </exclusions> + </dependency> + <!-- TEST DEPS --> + <dependency> + <groupId>hsqldb</groupId> + <artifactId>hsqldb</artifactId> + <version>1.7.3.3</version> + <scope>test</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.modello</groupId> + <artifactId>modello-maven-plugin</artifactId> + <version>1.0-alpha-14-SNAPSHOT</version> + <configuration> + <version>1.0.0</version> + <packageWithVersion>false</packageWithVersion> + <model>src/main/mdo/reporting.mdo</model> + </configuration> + <executions> + <execution> + <id>modello-java</id> + <goals> + <goal>java</goal> + <goal>jpox-metadata-class</goal> + <!-- + <goal>xpp3-writer</goal> + <goal>xpp3-reader</goal> + --> + </goals> + </execution> + <execution> + <id>jpox-jdo-mapping</id> + <goals> + <goal>jpox-jdo-mapping</goal> + </goals> + <configuration> + <outputDirectory>${basedir}/target/classes/org/apache/maven/archiva/reporting/model/</outputDirectory> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>jpox-maven-plugin</artifactId> + <version>1.1.6-SNAPSHOT</version> + <executions> + <execution> + <goals> + <goal>enhance</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <instrumentation> + <!-- exclude generated --> + <excludes> + <exclude>org/apache/maven/archiva/reporting/model/**</exclude> + </excludes> + </instrumentation> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..6ec87f431 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/archiva-repository-layer-1.0-SNAPSHOT.pom @@ -0,0 +1,103 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-repository-layer</artifactId> + <name>Archiva Repository Interface Layer</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-consumer-api</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-model</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-xml-tools</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.cache</groupId> + <artifactId>plexus-cache-api</artifactId> + <version>1.0-alpha-2-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.cache</groupId> + <artifactId>plexus-cache-ehcache</artifactId> + <version>1.0-alpha-2-SNAPSHOT</version> + <scope>compile</scope> + </dependency> + <!-- + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + </dependency> + --> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <executions> + <execution> + <id>merge</id> + <goals> + <goal>merge-descriptors</goal> + </goals> + <configuration> + <descriptors> + <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor> + <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor> + </descriptors> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..78cbd1282 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/archiva-security-1.0-SNAPSHOT.pom @@ -0,0 +1,45 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <artifactId>archiva</artifactId> + <groupId>org.apache.maven.archiva</groupId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-security</artifactId> + <name>Archiva Security Configuration</name> + <dependencies> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-rbac-profile</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + </dependencies> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..2d58dbf40 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/archiva-webapp-1.0-SNAPSHOT.pom @@ -0,0 +1,335 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <artifactId>archiva-webapp</artifactId> + <packaging>war</packaging> + <name>Archiva Web Application</name> + <dependencies> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>servlet-api</artifactId> + <version>2.4</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jsp-api</artifactId> + <version>2.0</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>opensymphony</groupId> + <artifactId>sitemesh</artifactId> + <version>2.2.1</version> + </dependency> + <dependency> + <groupId>taglibs</groupId> + <artifactId>standard</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>javax.servlet</groupId> + <artifactId>jstl</artifactId> + <version>1.1.2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-model</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-web</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-log4j-logging</artifactId> + <version>1.1-alpha-2</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>commons-logging</groupId> + <artifactId>commons-logging</artifactId> + <version>1.0.4</version> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http-lightweight</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>opensymphony</groupId> + <artifactId>webwork</artifactId> + <version>2.2.4</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.registry</groupId> + <artifactId>plexus-registry-commons</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-proxy</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-core</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-security</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-applet</artifactId> + <!-- TODO: actually, just exclude from WAR plugin --> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-dependency-tree</artifactId> + <version>1.0-alpha-2</version> + </dependency> + <!-- Plexus Security Dependencies --> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web</artifactId> + <type>war</type> + <scope>runtime</scope> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-taglib</artifactId> + </dependency> + <!-- Other dependencies --> + <dependency> + <groupId>org.codehaus.plexus.webdav</groupId> + <artifactId>plexus-webdav-simple</artifactId> + <version>1.0-alpha-1-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-xwork-integration</artifactId> + <version>1.0-alpha-5</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.1.3.1</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.mail</groupId> + <artifactId>mail</artifactId> + <version>1.4</version> + <scope>provided</scope> + </dependency> + <dependency> + <groupId>javax.activation</groupId> + <artifactId>activation</artifactId> + <version>1.1</version> + <scope>provided</scope> + </dependency> + </dependencies> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-clean-plugin</artifactId> + <version>2.1.1</version> + <!-- This configuration is added to cleanup from war:inplace --> + <configuration> + <filesets> + <fileset> + <directory>${basedir}/src/main/webapp</directory> + <includes> + <!-- TODO: META-INF shouldn't be required, seems to be an issue with the current war plugin --> + <include>META-INF</include> + <include>images/pss</include> + <!-- Images from other wars --> + <include>template/pss</include> + <!-- Templates from other wars --> + <include>WEB-INF/classes</include> + <!-- Classes and Resources from other wars --> + <include>WEB-INF/lib</include> + <!-- Dependencies from other wars --> + <include>WEB-INF/database</include> + <!-- Database location configured in application.xml --> + <include>WEB-INF/logs</include> + <!-- Log file location specified in application.xml --> + <include>pss</include> + <!-- plexus-security css and javascript --> + <include>css/pss</include> + <include>WEB-INF/jsp/pss</include> + <!-- plexus-security jsps --> + <include>WEB-INF/template/pss</include> + <!-- plexus-security xwork templates --> + <include>WEB-INF/logs</include> + <!-- Directory created by jetty:run --> + <include>WEB-INF/temp</include> + <!-- Directory created by jetty:run --> + </includes> + </fileset> + </filesets> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-war-plugin</artifactId> + <version>2.0.1</version> + <configuration> + <!-- Some versions of maven-war-plugin (snapshots) have this incorrectly defaulted to true. + Specifically setting this to false to avoid accidental jar file creation. --> + <archiveClasses>false</archiveClasses> + <dependentWarExcludes>META-INF/**,WEB-INF/web.xml,WEB-INF/classes/xwork.xml</dependentWarExcludes> + </configuration> + <!-- TODO: would be good to make the jetty plugin aware of these and remove the below --> + <executions> + <execution> + <phase>compile</phase> + <goals> + <!-- Needed to get the plexus-security war overlay to do its thing before jetty:run --> + <goal>inplace</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.mortbay.jetty</groupId> + <artifactId>maven-jetty-plugin</artifactId> + <version>6.1.1</version> + <configuration> + <scanIntervalSeconds>10</scanIntervalSeconds> + <contextPath>/</contextPath> + <jettyEnvXml>src/jetty-env.xml</jettyEnvXml> + <connectors> + <connector implementation="org.mortbay.jetty.nio.SelectChannelConnector"> + <port>9091</port> + <maxIdleTime>60000</maxIdleTime> + </connector> + </connectors> + <systemProperties> + <systemProperty> + <name>appserver.base</name> + <value>${project.build.directory}/appserver-base</value> + </systemProperty> + <systemProperty> + <name>derby.system.home</name> + <value>${project.build.directory}/appserver-base/logs</value> + </systemProperty> + </systemProperties> + </configuration> + <dependencies> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.1.3.1</version> + </dependency> + </dependencies> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>dependency-maven-plugin</artifactId> + <executions> + <execution> + <id>copy</id> + <phase>process-resources</phase> + <goals> + <goal>copy</goal> + </goals> + <configuration> + <artifactItems> + <artifactItem> + <groupId>${project.groupId}</groupId> + <artifactId>archiva-applet</artifactId> + <version>${project.version}</version> + <outputDirectory>src/main/webapp</outputDirectory> + <destFileName>archiva-applet.jar</destFileName> + </artifactItem> + </artifactItems> + </configuration> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <configuration> + <roleDefaults> + <roleDefault> + <role>com.opensymphony.xwork.Action</role> + <instantiation-strategy>per-lookup</instantiation-strategy> + </roleDefault> + </roleDefaults> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <!-- TODO! add unit tests --> + <configuration> + <instrumentation> + <excludes> + <exclude>**/**</exclude> + </excludes> + </instrumentation> + </configuration> + </plugin> + </plugins> + </build> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..efa42d3f0 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/archiva-xml-tools-1.0-SNAPSHOT.pom @@ -0,0 +1,79 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ 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. + --> + +<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"> + <parent> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-base</artifactId> + <version>1.0-SNAPSHOT</version> + </parent> + <modelVersion>4.0.0</modelVersion> + <artifactId>archiva-xml-tools</artifactId> + <name>Archiva Base :: XML Tools</name> + <dependencies> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + </dependency> + <dependency> + <groupId>dom4j</groupId> + <artifactId>dom4j</artifactId> + <version>1.6.1</version> + </dependency> + <dependency> + <groupId>jaxen</groupId> + <artifactId>jaxen</artifactId> + <version>1.1</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + </dependency> + <dependency> + <groupId>org.slf4j</groupId> + <artifactId>slf4j-log4j12</artifactId> + </dependency> + </dependencies> + <!-- + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <executions> + <execution> + <id>merge</id> + <goals> + <goal>merge-descriptors</goal> + </goals> + <configuration> + <descriptors> + <descriptor>${basedir}/src/main/resources/META-INF/plexus/components.xml</descriptor> + <descriptor>${project.build.directory}/generated-resources/plexus/META-INF/plexus/components.xml</descriptor> + </descriptors> + </configuration> + </execution> + </executions> + </plugin> + </plugins> + </build> + --> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom new file mode 100644 index 000000000..b99001024 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-20061126.005254-2.pom @@ -0,0 +1,506 @@ +<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ ~ Copyright 2005-2006 The Apache Software Foundation.
+ ~
+ ~ Licensed 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.
+ -->
+
+<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>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-parent</artifactId>
+ <version>4</version>
+ <relativePath>../pom/maven/pom.xml</relativePath>
+ </parent>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva</artifactId>
+ <packaging>pom</packaging>
+ <name>Archiva</name>
+ <version>1.0-SNAPSHOT</version>
+ <description>
+ Archiva is an application for managing one or more remote repositories, including
+ administration, artifact handling,
+ browsing and searching.
+ </description>
+ <url>http://maven.apache.org/archiva</url>
+ <issueManagement>
+ <system>jira</system>
+ <url>http://jira.codehaus.org/browse/MRM</url>
+ </issueManagement>
+ <mailingLists>
+ <mailingList>
+ <name>Maven Archiva User List</name>
+ <subscribe>archiva-users-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-users@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Developer List</name>
+ <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-dev@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive>
+ </mailingList>
+ <mailingList>
+ <name>Maven Archiva Commits List</name>
+ <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe>
+ <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe>
+ <post>archiva-commits@maven.apache.org</post>
+ <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive>
+ </mailingList>
+ </mailingLists>
+ <scm>
+ <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk</connection>
+ <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk</developerConnection>
+ <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk</url>
+ </scm>
+ <distributionManagement>
+ <site>
+ <id>apache.website</id>
+ <url>scpexe://people.apache.org/www/maven.apache.org/archiva/</url>
+ </site>
+ </distributionManagement>
+ <build>
+ <extensions>
+ <extension>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh-external</artifactId>
+ <version>1.0-alpha-5</version>
+ </extension>
+ </extensions>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-maven-plugin</artifactId>
+ <version>1.3</version>
+ <executions>
+ <execution>
+ <goals>
+ <goal>descriptor</goal>
+ <goal>merge-descriptors</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <artifactId>maven-compiler-plugin</artifactId>
+ <configuration>
+ <source>1.4</source>
+ <target>1.4</target>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-plugin</artifactId>
+ <version>2.2</version>
+ </plugin>
+ </plugins>
+ <pluginManagement>
+ <plugins>
+ <plugin>
+ <artifactId>maven-idea-plugin</artifactId>
+ <configuration>
+ <jdkLevel>1.4</jdkLevel>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-release-plugin</artifactId>
+ <configuration>
+ <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase>
+ </configuration>
+ </plugin>
+ </plugins>
+ </pluginManagement>
+ </build>
+ <modules>
+ <module>archiva-applet</module>
+ <module>archiva-converter</module>
+ <module>archiva-discoverer</module>
+ <module>archiva-reports-standard</module>
+ <module>archiva-indexer</module>
+ <module>archiva-webapp</module>
+ <module>archiva-proxy</module>
+ <module>archiva-core</module>
+ <module>archiva-configuration</module>
+ <module>maven-meeper</module>
+ <module>archiva-repository-layer</module>
+ <module>archiva-plexus-application</module>
+ <module>archiva-plexus-runtime</module>
+ <module>archiva-security</module>
+ <module>archiva-cli</module>
+ </modules>
+ <dependencies>
+ <dependency>
+ <groupId>junit</groupId>
+ <artifactId>junit</artifactId>
+ <version>3.8.1</version>
+ <scope>test</scope>
+ </dependency>
+ </dependencies>
+ <dependencyManagement>
+ <dependencies>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-container-default</artifactId>
+ <version>1.0-alpha-10</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-utils</artifactId>
+ <version>1.3</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-repository-metadata</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-artifact-manager</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-project</artifactId>
+ <version>${maven.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven</groupId>
+ <artifactId>maven-model-converter</artifactId>
+ <version>2.0.4</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-provider-api</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-ssh</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-file</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.wagon</groupId>
+ <artifactId>wagon-http-lightweight</artifactId>
+ <version>${wagon.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-core</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-reports-standard</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-discoverer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-repository-layer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-indexer</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-proxy</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-applet</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-security</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-configuration</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-converter</artifactId>
+ <version>${pom.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.apache.maven.archiva</groupId>
+ <artifactId>archiva-webapp</artifactId>
+ <version>${pom.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus</groupId>
+ <artifactId>plexus-digest</artifactId>
+ <version>1.0-SNAPSHOT</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-rbac-profile</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-system</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web</artifactId>
+ <version>${plexus-security.version}</version>
+ <type>war</type>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-integration</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-ui-web-taglib</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-user-manager</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authentication-provider-keystore</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-user-management-provider-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-api</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-authorization-rbac-authorizer</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ <dependency>
+ <groupId>org.codehaus.plexus.security</groupId>
+ <artifactId>plexus-security-keys-jdo</artifactId>
+ <version>${plexus-security.version}</version>
+ </dependency>
+ </dependencies>
+ </dependencyManagement>
+ <reporting>
+ <plugins>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <configuration>
+ <configLocation>config/maven_checks.xml</configLocation>
+ </configuration>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>changelog-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>taglist-maven-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-jxr-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-surefire-report-plugin</artifactId>
+ </plugin>
+ <plugin>
+ <artifactId>maven-javadoc-plugin</artifactId>
+ <configuration>
+ <aggregate>true</aggregate>
+ </configuration>
+ </plugin>
+ <plugin>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <!-- TODO: choose appropriate rulesets -->
+ </plugin>
+ </plugins>
+ </reporting>
+ <profiles>
+ <profile>
+ <id>ci</id>
+ <activation>
+ <property>
+ <name>enableCiProfile</name>
+ <value>true</value>
+ </property>
+ </activation>
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-pmd-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: after rules are set
+ <goal>check</goal>
+ -->
+ <goal>cpd-check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-checkstyle-plugin</artifactId>
+ <executions>
+ <execution>
+ <phase>process-sources</phase>
+ <goals>
+ <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style)
+ <goal>check</goal>
+ -->
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ <plugin>
+ <groupId>org.codehaus.mojo</groupId>
+ <artifactId>cobertura-maven-plugin</artifactId>
+ <configuration>
+ <check>
+ <!-- TODO! raise to 85/100 -->
+ <totalLineRate>77</totalLineRate>
+ <totalBranchRate>95</totalBranchRate>
+ </check>
+
+ <instrumentation>
+ <excludes>
+ <exclude>**/*$*</exclude>
+ </excludes>
+ </instrumentation>
+ </configuration>
+ <executions>
+ <execution>
+ <id>clean</id>
+ <goals>
+ <goal>clean</goal>
+ </goals>
+ </execution>
+ <execution>
+ <id>check</id>
+ <goals>
+ <goal>check</goal>
+ </goals>
+ </execution>
+ </executions>
+ </plugin>
+ </plugins>
+ </build>
+ </profile>
+ </profiles>
+ <!-- TODO: remove once xwork integration, plexus container is released -->
+ <repositories>
+ <repository>
+ <id>codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+ <pluginRepositories>
+ <pluginRepository>
+ <id>codehaus.org</id>
+ <url>http://snapshots.repository.codehaus.org</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+
+ <!-- See: http://www.nabble.com/NoClassDefFoundError-from-shared-in-project-info-reports-tf2678299s177.html#a7489595 -->
+ <pluginRepository>
+ <id>apache.org</id>
+ <url>http://people.apache.org/repo/m2-snapshot-repository</url>
+ <releases>
+ <enabled>false</enabled>
+ </releases>
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </pluginRepository>
+ </pluginRepositories>
+ <properties>
+ <maven.version>2.0.4</maven.version>
+ <wagon.version>1.0-beta-1</wagon.version>
+ <plexus-security.version>1.0-alpha-6-SNAPSHOT</plexus-security.version>
+ </properties>
+</project>
diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml new file mode 100644 index 000000000..ac3c2e716 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="ISO-8859-1"?><project> + <bannerLeft> + <name>Maven</name> + <src>http://maven.apache.org/images/apache-maven-project-2.png</src> + <href>http://maven.apache.org/</href> + </bannerLeft> + <bannerRight> + <src>images/archiva-logo-banner.jpg</src> + </bannerRight> + <publishDate format="dd MMM yyyy" /> + <skin> + <groupId>org.apache.maven.skins</groupId> + <artifactId>maven-stylus-skin</artifactId> + </skin> + <body> + <links> + <item name="Maven" href="http://maven.apache.org/" /> + </links> + <menu name="Documentation"> + <item name="Welcome" href="/index.html" /> + <item name="Getting Started" href="/guides/getting-started/index.html" /> + <item name="FAQ" href="http://docs.codehaus.org/display/MAVENUSER/Archiva+FAQ" /> + <item name="Maven Configuration" href="/guides/getting-started/maven-configuration.html" /> + <item name="Developing" href="/guides/developing/index.html" /> + </menu> + <menu inherit="bottom" ref="reports" /> + </body> +</project>
\ No newline at end of file diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom new file mode 100644 index 000000000..4992be115 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom @@ -0,0 +1,557 @@ +<?xml version="1.0" encoding="UTF-8"?> +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache.maven</groupId> + <artifactId>maven-parent</artifactId> + <version>4</version> + <relativePath>../pom/maven/pom.xml</relativePath> + </parent> + <prerequisites> + <maven>2.0.5</maven> + </prerequisites> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva</artifactId> + <packaging>pom</packaging> + <name>Archiva</name> + <version>1.0-SNAPSHOT</version> + <description> + Archiva is an application for managing one or more remote repositories, including + administration, artifact handling, + browsing and searching. + </description> + <url>http://maven.apache.org/archiva</url> + <issueManagement> + <system>jira</system> + <url>http://jira.codehaus.org/browse/MRM</url> + </issueManagement> + <mailingLists> + <mailingList> + <name>Maven Archiva User List</name> + <subscribe>archiva-users-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-users-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-users@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-users</archive> + </mailingList> + <mailingList> + <name>Maven Archiva Developer List</name> + <subscribe>archiva-dev-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-dev-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-dev@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-dev</archive> + </mailingList> + <mailingList> + <name>Maven Archiva Commits List</name> + <subscribe>archiva-commits-subscribe@maven.apache.org</subscribe> + <unsubscribe>archiva-commits-unsubscribe@maven.apache.org</unsubscribe> + <post>archiva-commits@maven.apache.org</post> + <archive>http://mail-archives.apache.org/mod_mbox/maven-archiva-commits</archive> + </mailingList> + </mailingLists> + <scm> + <connection>scm:svn:http://svn.apache.org/repos/asf/maven/archiva/trunk</connection> + <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/archiva/trunk</developerConnection> + <url>http://svn.apache.org/viewcvs.cgi/maven/archiva/trunk</url> + </scm> + <distributionManagement> + <site> + <id>apache.website</id> + <url>scpexe://people.apache.org/www/maven.apache.org/archiva/</url> + </site> + </distributionManagement> + <build> + <plugins> + <plugin> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-maven-plugin</artifactId> + <version>1.3.3</version> + <executions> + <execution> + <id>generate</id> + <goals> + <goal>descriptor</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <artifactId>maven-compiler-plugin</artifactId> + <configuration> + <source>1.4</source> + <target>1.4</target> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-plugin</artifactId> + <version>2.2</version> + </plugin> + </plugins> + <pluginManagement> + <plugins> + <plugin> + <artifactId>maven-idea-plugin</artifactId> + <configuration> + <jdkLevel>1.4</jdkLevel> + </configuration> + </plugin> + <plugin> + <artifactId>maven-release-plugin</artifactId> + <configuration> + <tagBase>https://svn.apache.org/repos/asf/maven/archiva/tags</tagBase> + </configuration> + </plugin> + </plugins> + </pluginManagement> + </build> + <modules> + <module>archiva-applet</module> + <module>archiva-converter</module> + <module>archiva-common</module> + <module>archiva-discoverer</module> + <module>archiva-reports-standard</module> + <module>archiva-indexer</module> + <module>archiva-webapp</module> + <module>archiva-proxy</module> + <module>archiva-core</module> + <module>archiva-configuration</module> + <module>maven-meeper</module> + <module>archiva-repository-layer</module> + <module>archiva-plexus-application</module> + <module>archiva-plexus-runtime</module> + <module>archiva-security</module> + <module>archiva-cli</module> + </modules> + <dependencies> + <dependency> + <groupId>junit</groupId> + <artifactId>junit</artifactId> + <version>3.8.1</version> + <scope>test</scope> + </dependency> + </dependencies> + <dependencyManagement> + <dependencies> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-model</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-app-configuration-web</artifactId> + <version>1.0-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-container-default</artifactId> + <version>1.0-alpha-17</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-component-api</artifactId> + <version>1.0-alpha-17</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-utils</artifactId> + <version>1.4</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-repository-metadata</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-model</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-artifact-manager</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven</groupId> + <artifactId>maven-project</artifactId> + <version>${maven.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.shared</groupId> + <artifactId>maven-model-converter</artifactId> + <version>2.0.5-SNAPSHOT</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-provider-api</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-ssh</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-file</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.wagon</groupId> + <artifactId>wagon-http-lightweight</artifactId> + <version>${wagon.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + <version>${pom.version}</version> + </dependency> + <!-- + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-common</artifactId> + <version>${pom.version}</version> + <classifier>tests</classifier> + <scope>test</scope> + </dependency> + --> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-core</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-reports-standard</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-discoverer</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-repository-layer</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-indexer</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-proxy</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-applet</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-security</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-configuration</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-converter</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-utils</artifactId> + <version>${pom.version}</version> + </dependency> + <dependency> + <groupId>org.apache.maven.archiva</groupId> + <artifactId>archiva-webapp</artifactId> + <version>${pom.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.codehaus.plexus</groupId> + <artifactId>plexus-digest</artifactId> + <version>1.0</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-rbac-profile</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-system</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web</artifactId> + <version>${plexus-security.version}</version> + <type>war</type> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-integration</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-ui-web-taglib</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authentication-provider-user-manager</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authentication-provider-keystore</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-user-management-api</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-user-management-provider-jdo</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-store-cached</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-store-jdo</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-api</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-authorization-rbac-authorizer</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>org.codehaus.plexus.security</groupId> + <artifactId>plexus-security-keys-jdo</artifactId> + <version>${plexus-security.version}</version> + </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.2</version> + </dependency> + <dependency> + <groupId>commons-io</groupId> + <artifactId>commons-io</artifactId> + <version>1.2</version> + </dependency> + <dependency> + <groupId>org.apache.derby</groupId> + <artifactId>derby</artifactId> + <version>10.1.3.1</version> + </dependency> + </dependencies> + </dependencyManagement> + <reporting> + <plugins> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <configLocation>config/maven_checks.xml</configLocation> + </configuration> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>changelog-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>taglist-maven-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-jxr-plugin</artifactId> + <configuration> + <aggregate>true</aggregate> + </configuration> + </plugin> + <plugin> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + <plugin> + <artifactId>maven-javadoc-plugin</artifactId> + <configuration> + <source>1.4</source> + <aggregate>true</aggregate> + </configuration> + </plugin> + <plugin> + <artifactId>maven-pmd-plugin</artifactId> + <!-- TODO: choose appropriate rulesets --> + </plugin> + </plugins> + </reporting> + <profiles> + <profile> + <id>ci</id> + <activation> + <property> + <name>enableCiProfile</name> + <value>true</value> + </property> + </activation> + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <executions> + <execution> + <phase>process-sources</phase> + <goals> + <!-- TODO: after rules are set + <goal>check</goal> + --> + <goal>cpd-check</goal> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <executions> + <execution> + <phase>process-sources</phase> + <goals> + <!-- TODO: reformat first, and correct the checks (some are not consistent with the Maven style) + <goal>check</goal> + --> + </goals> + </execution> + </executions> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + <configuration> + <check> + <!-- TODO! raise to 85/100 --> + <totalLineRate>77</totalLineRate> + <totalBranchRate>95</totalBranchRate> + </check> + + <instrumentation> + <excludes> + <exclude>**/*$*</exclude> + </excludes> + </instrumentation> + </configuration> + <executions> + <execution> + <id>clean</id> + <goals> + <goal>clean</goal> + </goals> + </execution> + <execution> + <id>check</id> + <goals> + <goal>check</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> + </profile> + </profiles> + <repositories> + <repository> + <id>codehaus.org</id> + <url>http://repository.codehaus.org</url> + <releases> + <enabled>true</enabled> + </releases> + <snapshots> + <enabled>false</enabled> + </snapshots> + </repository> + <!-- TODO: remove once ehcache, p-sec, registry, webdav, xwork, naming released --> + <repository> + <id>codehaus.org</id> + <url>http://snapshots.repository.codehaus.org</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </repository> + </repositories> + <!-- TODO: remove once modello is released --> + <pluginRepositories> + <pluginRepository> + <id>codehaus.org</id> + <url>http://snapshots.repository.codehaus.org</url> + <releases> + <enabled>false</enabled> + </releases> + <snapshots> + <enabled>true</enabled> + </snapshots> + </pluginRepository> + </pluginRepositories> + <properties> + <maven.version>2.0.5</maven.version> + <wagon.version>1.0-beta-2</wagon.version> + <plexus-security.version>1.0-alpha-10-SNAPSHOT</plexus-security.version> + </properties> +</project> diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml new file mode 100644 index 000000000..e69de29bb --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom new file mode 100644 index 000000000..132d9d736 --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom @@ -0,0 +1,304 @@ +<?xml version="1.0" encoding="UTF-8"?> + +<!-- + ~ Copyright 2005-2006 The Apache Software Foundation. + ~ + ~ Licensed 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. + --> + +<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> + <groupId>org.apache</groupId> + <artifactId>apache</artifactId> + <version>3</version> + <relativePath>../asf/pom.xml</relativePath> + </parent> + <groupId>org.apache.maven</groupId> + <artifactId>maven-parent</artifactId> + <version>4</version> + <packaging>pom</packaging> + <name>Apache Maven</name> + <description> + Maven is a software project management and comprehension tool. Based on the concept of a project object model + (POM), Maven can manage a project's build, reporting and documentation from a central piece of information. + </description> + <url>http://maven.apache.org/</url> + <issueManagement> + <system>jira</system> + <url>http://jira.codehaus.org/browse/MPA</url> + </issueManagement> + <ciManagement> + <system>continuum</system> + <url>http://maven.zones.apache.org:8080/continuum</url> + <notifiers> + <notifier> + <type>mail</type> + <configuration> + <address>notifications@maven.apache.org</address> + </configuration> + </notifier> + </notifiers> + </ciManagement> + <inceptionYear>2002</inceptionYear> + <mailingLists> + <mailingList> + <name>Maven Announcements List</name> + <post>announce@maven.apache.org</post> + <subscribe>announce-subscribe@maven.apache.org</subscribe> + <unsubscribe>announce-unsubscribe@maven.apache.org</unsubscribe> + <archive>http://mail-archives.apache.org/mod_mbox/maven-announce/</archive> + </mailingList> + <mailingList> + <name>Maven Issues List</name> + <post>issues@maven.apache.org</post> + <subscribe>issues-subscribe@maven.apache.org</subscribe> + <unsubscribe>issues-unsubscribe@maven.apache.org</unsubscribe> + <archive>http://mail-archives.apache.org/mod_mbox/maven-issues/</archive> + </mailingList> + <mailingList> + <name>Maven Notifications List</name> + <post>notifications@maven.apache.org</post> + <subscribe>notifications-subscribe@maven.apache.org</subscribe> + <unsubscribe>notifications-unsubscribe@maven.apache.org</unsubscribe> + <archive>http://mail-archives.apache.org/mod_mbox/maven-notifications/</archive> + </mailingList> + </mailingLists> + + <developers> + <developer> + <id>jvanzyl</id> + <name>Jason van Zyl</name> + <email>jason@maven.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Chair</role> + </roles> + <timezone>-5</timezone> + </developer> + <developer> + <id>brett</id> + <name>Brett Porter</name> + <email>brett@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+10</timezone> + </developer> + <developer> + <id>evenisse</id> + <name>Emmanuel Venisse</name> + <email>evenisse@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>kenney</id> + <name>Kenney Westerhof</name> + <email>kenney@apache.org</email> + <organization>Neonics</organization> + <roles> + <role>PMC Member</role> + </roles> + </developer> + <developer> + <id>snicoll</id> + <name>Stephane Nicoll</name> + <email>snicoll@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>vmassol</id> + <name>Vincent Massol</name> + <email>vmassol@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>fgiust</id> + <name>Fabrizio Giustina</name> + <email>fgiust@apache.org</email> + <organization>openmind</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>epunzalan</id> + <name>Edwin Punzalan</name> + <email>epunzalan@mergere.com</email> + <organization>Mergere</organization> + <roles> + <role>Committer</role> + </roles> + <timezone>+8</timezone> + </developer> + <developer> + <id>mperham</id> + <name>Mike Perham</name> + <email>mperham@gmail.com</email> + <organization>IBM</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>-6</timezone> + </developer> + <developer> + <id>jdcasey</id> + <name>John Casey</name> + <email>jdcasey@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>-5</timezone> + </developer> + <developer> + <id>trygvis</id> + <name>Trygve Laugstol</name> + <email>trygvis@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>vsiveton</id> + <name>Vincent Siveton</name> + <email>vsiveton@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>-5</timezone> + </developer> + <developer> + <id>carlos</id> + <name>Carlos Sanchez</name> + <email>carlos@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + <developer> + <id>dennisl</id> + <name>Dennis Lundberg</name> + <email>dennisl@apache.org</email> + <organization>ASF</organization> + <roles> + <role>PMC Member</role> + </roles> + <timezone>+1</timezone> + </developer> + </developers> + + <distributionManagement> + <site> + <id>apache.website</id> + <url>scp://people.apache.org/www/maven.apache.org</url> + </site> + </distributionManagement> + +<!-- Disabled until projects have been made to comply + <build> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + <executions> + <execution> + <goals> + <goal>cpd-check</goal> + </goals> + </execution> + </executions> + </plugin> + </plugins> + </build> +--> + + <reporting> + <plugins> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-surefire-report-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-checkstyle-plugin</artifactId> + <configuration> + <configLocation>http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven_checks.xml</configLocation> + <headerLocation>http://svn.apache.org/repos/asf/maven/plugins/trunk/maven-checkstyle-plugin/src/main/resources/config/maven-header.txt</headerLocation> + </configuration> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-pmd-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>cobertura-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.codehaus.mojo</groupId> + <artifactId>taglist-maven-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-jxr-plugin</artifactId> + </plugin> + <plugin> + <groupId>org.apache.maven.plugins</groupId> + <artifactId>maven-javadoc-plugin</artifactId> + <configuration> + <links> + <link>http://java.sun.com/j2ee/1.4/docs/api</link> + <link>http://java.sun.com/j2se/1.5.0/docs/api</link> + <link>http://jakarta.apache.org/commons/collections/apidocs-COLLECTIONS_3_0/</link> + <link>http://jakarta.apache.org/commons/dbcp/apidocs/</link> + <link>http://jakarta.apache.org/commons/fileupload/apidocs/</link> + <link>http://jakarta.apache.org/commons/httpclient/apidocs/</link> + <link>http://jakarta.apache.org/commons/logging/apidocs/</link> + <link>http://jakarta.apache.org/commons/pool/apidocs/</link> + <link>http://www.junit.org/junit/javadoc/</link> + <link>http://logging.apache.org/log4j/docs/api/</link> + <link>http://jakarta.apache.org/regexp/apidocs/</link> + <link>http://jakarta.apache.org/velocity/api/</link> + </links> + </configuration> + </plugin> + </plugins> + </reporting> + + <scm> + <connection>scm:svn:http://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4</connection> + <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/pom/maven/tags/maven-parent-4</developerConnection> + <url>http://svn.apache.org/viewvc/maven/pom/maven/tags/maven-parent-4</url> + </scm> +</project> + diff --git a/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 new file mode 100644 index 000000000..b6caacf5e --- /dev/null +++ b/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1 @@ -0,0 +1 @@ +0fc039b0bd4d17d7c147a30e1d83994629c5297c
\ No newline at end of file diff --git a/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java b/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java index e06f872c7..6985ef06a 100644 --- a/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java +++ b/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java @@ -20,10 +20,13 @@ package org.apache.maven.archiva.xml; */ import org.apache.commons.lang.StringUtils; +import org.dom4j.Attribute; import org.dom4j.Document; import org.dom4j.DocumentException; import org.dom4j.Element; +import org.dom4j.Namespace; import org.dom4j.Node; +import org.dom4j.QName; import org.dom4j.XPath; import org.dom4j.io.SAXReader; @@ -34,8 +37,10 @@ import java.io.InputStreamReader; import java.net.MalformedURLException; import java.net.URL; import java.util.ArrayList; +import java.util.HashMap; import java.util.Iterator; import java.util.List; +import java.util.Map; /** * XMLReader - a set of common xml utility methods for reading content out of an xml file. @@ -51,6 +56,8 @@ public class XMLReader private Document document; + private Map namespaceMap = new HashMap(); + public XMLReader( String type, File file ) throws XMLException { @@ -121,10 +128,21 @@ public class XMLReader } } + public String getDefaultNamespaceURI() + { + Namespace namespace = this.document.getRootElement().getNamespace(); + return namespace.getURI(); + } + + public void addNamespaceMapping( String elementName, String uri ) + { + this.namespaceMap.put( elementName, uri ); + } + public Element getElement( String xpathExpr ) throws XMLException { - XPath xpath = document.createXPath( xpathExpr ); + XPath xpath = createXPath( xpathExpr ); Object evaluated = xpath.selectSingleNode( document ); if ( evaluated == null ) @@ -145,10 +163,20 @@ public class XMLReader } } + private XPath createXPath( String xpathExpr ) + { + XPath xpath = document.createXPath( xpathExpr ); + if ( !this.namespaceMap.isEmpty() ) + { + xpath.setNamespaceURIs( this.namespaceMap ); + } + return xpath; + } + public boolean hasElement( String xpathExpr ) throws XMLException { - XPath xpath = document.createXPath( xpathExpr ); + XPath xpath = createXPath( xpathExpr ); Object evaluated = xpath.selectSingleNode( document ); if ( evaluated == null ) @@ -159,10 +187,44 @@ public class XMLReader return true; } + /** + * Remove namespaces from entire document. + */ + public void removeNamespaces() + { + removeNamespaces( this.document.getRootElement() ); + } + + /** + * Remove namespaces from element recursively. + */ + public void removeNamespaces( Element elem ) + { + elem.setQName( QName.get( elem.getName(), Namespace.NO_NAMESPACE, elem.getQualifiedName() ) ); + + Node n; + + Iterator it = elem.elementIterator(); + while ( it.hasNext() ) + { + n = (Node) it.next(); + + switch ( n.getNodeType() ) + { + case Node.ATTRIBUTE_NODE: + ( (Attribute) n ).setNamespace( Namespace.NO_NAMESPACE ); + break; + case Node.ELEMENT_NODE: + removeNamespaces( (Element) n ); + break; + } + } + } + public String getElementText( Node context, String xpathExpr ) throws XMLException { - XPath xpath = document.createXPath( xpathExpr ); + XPath xpath = createXPath( xpathExpr ); Object evaluated = xpath.selectSingleNode( context ); if ( evaluated == null ) @@ -186,7 +248,7 @@ public class XMLReader public String getElementText( String xpathExpr ) throws XMLException { - XPath xpath = document.createXPath( xpathExpr ); + XPath xpath = createXPath( xpathExpr ); Object evaluated = xpath.selectSingleNode( document ); if ( evaluated == null ) @@ -210,7 +272,7 @@ public class XMLReader public List getElementList( String xpathExpr ) throws XMLException { - XPath xpath = document.createXPath( xpathExpr ); + XPath xpath = createXPath( xpathExpr ); Object evaluated = xpath.evaluate( document ); if ( evaluated == null ) @@ -230,7 +292,7 @@ public class XMLReader else if ( evaluated instanceof Node ) { List ret = new ArrayList(); - ret.add( (Node) evaluated ); + ret.add( evaluated ); return ret; } else 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 index 7832ff5be..23c66cef0 100644 --- 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 @@ -23,9 +23,9 @@ import org.apache.maven.archiva.consumers.ConsumerException; import org.apache.maven.archiva.consumers.RepositoryContentConsumer; import org.apache.maven.archiva.model.ArchivaProjectModel; import org.apache.maven.archiva.model.ArchivaRepository; -import org.apache.maven.archiva.repository.project.ProjectModel400Reader; import org.apache.maven.archiva.repository.project.ProjectModelException; import org.apache.maven.archiva.repository.project.ProjectModelReader; +import org.apache.maven.archiva.repository.project.readers.ProjectModel400Reader; import java.io.File; import java.util.ArrayList; diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AbstractConsumerTestCase.java b/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AbstractConsumerTestCase.java deleted file mode 100644 index a6a90e3f3..000000000 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/AbstractConsumerTestCase.java +++ /dev/null @@ -1,152 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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 org.apache.maven.archiva.repository.ArchivaRepository; -import org.apache.maven.artifact.repository.layout.ArtifactRepositoryLayout; -import org.codehaus.plexus.PlexusTestCase; -import org.codehaus.plexus.util.FileUtils; - -import java.io.File; -import java.io.IOException; -import java.util.ArrayList; -import java.util.Iterator; -import java.util.List; - -/** - * AbstractConsumerTestCase - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - */ -public class AbstractConsumerTestCase extends PlexusTestCase -{ - protected ArchivaRepository getLegacyRepository() throws Exception - { - File repoBaseDir = new File( getBasedir(), "src/test/legacy-repository" ); - ArchivaRepository repository = createRepository( repoBaseDir, "legacy" ); - resetRepositoryState( repository ); - return repository; - } - - protected ArchivaRepository getDefaultRepository() throws Exception - { - File repoBaseDir = new File( getBasedir(), "src/test/repository" ); - ArchivaRepository repository = createRepository( repoBaseDir, "default" ); - resetRepositoryState( repository ); - return repository; - } - - private void resetRepositoryState( ArchivaRepository repository ) throws IOException - { - File repoBaseDir = new File( repository.getRepositoryURL().getPath() ); - - List tmpfiles = FileUtils.getFiles( repoBaseDir, ".*", "" ); - for ( Iterator it = tmpfiles.iterator(); it.hasNext(); ) - { - File hit = (File) it.next(); - if ( hit.exists() ) - { - if ( hit.isFile() ) - { - hit.delete(); - } - - if ( hit.isDirectory() ) - { - FileUtils.deleteDirectory( hit ); - } - } - } - } - - protected ArchivaRepository createRepository( File basedir, String layout ) throws Exception - { - ArtifactRepositoryLayout repoLayout = (ArtifactRepositoryLayout) lookup( ArtifactRepositoryLayout.ROLE, layout ); - - ArchivaRepository repo = new ArchivaRepository(); - repo.setId( "discoveryRepo" ); - repo.setUrl( "file://" + basedir ); - repo.setLayout( repoLayout ); - - return repo; - } - - public List getLegacyLayoutArtifactPaths() - { - List files = new ArrayList(); - - files.add( "invalid/jars/1.0/invalid-1.0.jar" ); - files.add( "invalid/jars/invalid-1.0.rar" ); - files.add( "invalid/jars/invalid.jar" ); - files.add( "invalid/invalid-1.0.jar" ); - files.add( "javax.sql/jars/jdbc-2.0.jar" ); - files.add( "org.apache.maven/jars/some-ejb-1.0-client.jar" ); - files.add( "org.apache.maven/jars/testing-1.0.jar" ); - files.add( "org.apache.maven/jars/testing-1.0-sources.jar" ); - files.add( "org.apache.maven/jars/testing-UNKNOWN.jar" ); - files.add( "org.apache.maven/jars/testing-1.0.zip" ); - files.add( "org.apache.maven/jars/testing-1.0-20050611.112233-1.jar" ); - files.add( "org.apache.maven/jars/testing-1.0.tar.gz" ); - files.add( "org.apache.maven.update/jars/test-not-updated-1.0.jar" ); - files.add( "org.apache.maven.update/jars/test-updated-1.0.jar" ); - - return files; - } - - public List getDefaultLayoutArtifactPaths() - { - List files = new ArrayList(); - - files.add( "invalid/invalid/1.0-20050611.123456-1/invalid-1.0-20050611.123456-1.jar" ); - files.add( "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar" ); - files.add( "invalid/invalid/1.0/invalid-1.0b.jar" ); - files.add( "invalid/invalid/1.0/invalid-2.0.jar" ); - files.add( "invalid/invalid-1.0.jar" ); - files.add( "org/apache/maven/test/1.0-SNAPSHOT/wrong-artifactId-1.0-20050611.112233-1.jar" ); - files.add( "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1-javadoc.jar" ); - files.add( "org/apache/maven/test/1.0-SNAPSHOT/test-1.0-20050611.112233-1.jar" ); - files.add( "org/apache/maven/A/1.0/A-1.0.war" ); - files.add( "org/apache/maven/A/1.0/A-1.0.pom" ); - files.add( "org/apache/maven/B/2.0/B-2.0.pom" ); - files.add( "org/apache/maven/B/1.0/B-1.0.pom" ); - files.add( "org/apache/maven/some-ejb/1.0/some-ejb-1.0-client.jar" ); - files.add( "org/apache/maven/C/1.0/C-1.0.war" ); - files.add( "org/apache/maven/C/1.0/C-1.0.pom" ); - files.add( "org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.pom" ); - files.add( "org/apache/maven/update/test-not-updated/1.0/test-not-updated-1.0.jar" ); - files.add( "org/apache/maven/update/test-updated/1.0/test-updated-1.0.pom" ); - files.add( "org/apache/maven/update/test-updated/1.0/test-updated-1.0.jar" ); - files.add( "org/apache/maven/discovery/1.0/discovery-1.0.pom" ); - files.add( "org/apache/maven/testing/1.0/testing-1.0-test-sources.jar" ); - files.add( "org/apache/maven/testing/1.0/testing-1.0.jar" ); - files.add( "org/apache/maven/testing/1.0/testing-1.0-sources.jar" ); - files.add( "org/apache/maven/testing/1.0/testing-1.0.zip" ); - files.add( "org/apache/maven/testing/1.0/testing-1.0.tar.gz" ); - files.add( "org/apache/maven/samplejar/2.0/samplejar-2.0.pom" ); - files.add( "org/apache/maven/samplejar/2.0/samplejar-2.0.jar" ); - files.add( "org/apache/maven/samplejar/1.0/samplejar-1.0.pom" ); - files.add( "org/apache/maven/samplejar/1.0/samplejar-1.0.jar" ); - files.add( "org/apache/testgroup/discovery/1.0/discovery-1.0.pom" ); - files.add( "javax/sql/jdbc/2.0/jdbc-2.0.jar" ); - - return files; - } -} diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/FileProblemsTracker.java b/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/FileProblemsTracker.java deleted file mode 100644 index bc96f03ec..000000000 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/FileProblemsTracker.java +++ /dev/null @@ -1,115 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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 org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.repository.consumer.ConsumerException; -import org.codehaus.plexus.util.StringUtils; - -import java.util.ArrayList; -import java.util.HashMap; -import java.util.Iterator; -import java.util.List; -import java.util.Map; -import java.util.Set; - -/** - * FileProblemsTracker - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - */ -public class FileProblemsTracker -{ - private Map problemMap = new HashMap(); - - public void addProblem( BaseFile file, String message ) - { - String path = file.getRelativePath(); - addProblem( path, message ); - } - - private void addProblem( String path, String message ) - { - path = StringUtils.replace( path, "\\", "/" ); - List problems = getProblems( path ); - problems.add( message ); - problemMap.put( path, problems ); - } - - public void addProblem( ConsumerException e ) - { - if ( e.getFile() != null ) - { - this.addProblem( e.getFile(), e.getMessage() ); - } - else - { - this.addProblem( "|fatal|", e.getMessage() ); - } - } - - public boolean hasProblems( String path ) - { - if ( !problemMap.containsKey( path ) ) - { - // No tracking of path at all. - return false; - } - - List problems = (List) problemMap.get( path ); - if ( problems == null ) - { - // found path, but no list. - return false; - } - - return !problems.isEmpty(); - } - - public Set getPaths() - { - return problemMap.keySet(); - } - - public List getProblems( String path ) - { - List problems = (List) problemMap.get( path ); - if ( problems == null ) - { - problems = new ArrayList(); - } - - return problems; - } - - public int getProblemCount() - { - int count = 0; - for ( Iterator it = problemMap.values().iterator(); it.hasNext(); ) - { - List problems = (List) it.next(); - count += problems.size(); - } - - return count; - } - -} diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/GenericArtifactConsumerTest.java b/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/GenericArtifactConsumerTest.java deleted file mode 100644 index a436cdd94..000000000 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/GenericArtifactConsumerTest.java +++ /dev/null @@ -1,221 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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 org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.repository.ArchivaRepository; -import org.apache.maven.archiva.repository.consumer.ConsumerException; -import org.apache.maven.artifact.Artifact; - -import java.util.ArrayList; -import java.util.Collection; -import java.util.Iterator; -import java.util.List; - -/** - * GenericArtifactConsumerTest - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - */ -public class GenericArtifactConsumerTest - extends AbstractGenericConsumerTestCase -{ - private MockArtifactConsumer getMockArtifactConsumer() - throws Exception - { - return (MockArtifactConsumer) consumerFactory.createConsumer( "mock-artifact" ); - } - - public void testScanLegacy() - throws Exception - { - ArchivaRepository repository = getLegacyRepository(); - List consumers = new ArrayList(); - - MockArtifactConsumer mockConsumer = getMockArtifactConsumer(); - mockConsumer.init( repository ); - - consumers.add( mockConsumer ); - - List files = getLegacyLayoutArtifactPaths(); - for ( Iterator it = files.iterator(); it.hasNext(); ) - { - String path = (String) it.next(); - try - { - mockConsumer.processFile( new BaseFile( repository.getRepositoryURL().getPath(), path ) ); - } - catch ( ConsumerException e ) - { - mockConsumer.getProblemsTracker().addProblem( e ); - } - } - - assertNotNull( consumers ); - - FileProblemsTracker tracker = mockConsumer.getProblemsTracker(); - - assertTracker( tracker, 16 ); - - assertHasFailureMessage( "Path does not match a legacy repository path for an artifact", - "invalid/invalid-1.0.jar", tracker ); - assertHasFailureMessage( "Path filename version is empty", "invalid/jars/invalid.jar", tracker ); - assertHasFailureMessage( "Path does not match a legacy repository path for an artifact", - "invalid/jars/1.0/invalid-1.0.jar", tracker ); - - assertEquals( 10, mockConsumer.getArtifactMap().size() ); - } - - public void testScanDefault() - throws Exception - { - ArchivaRepository repository = getDefaultRepository(); - List consumers = new ArrayList(); - - MockArtifactConsumer mockConsumer = getMockArtifactConsumer(); - mockConsumer.init( repository ); - - consumers.add( mockConsumer ); - - List files = getDefaultLayoutArtifactPaths(); - for ( Iterator it = files.iterator(); it.hasNext(); ) - { - String path = (String) it.next(); - try - { - mockConsumer.processFile( new BaseFile( repository.getRepositoryURL().getPath(), path ) ); - } - catch ( ConsumerException e ) - { - mockConsumer.getProblemsTracker().addProblem( e ); - } - } - - // Test gathered information from Mock consumer. - - assertNotNull( consumers ); - - FileProblemsTracker tracker = mockConsumer.getProblemsTracker(); - - assertTracker( tracker, 21 ); - - assertHasFailureMessage( "Failed to create a snapshot artifact: invalid:invalid:jar:1.0:runtime", - "invalid/invalid/1.0-SNAPSHOT/invalid-1.0.jar", tracker ); - assertHasFailureMessage( "Path is too short to build an artifact from.", "invalid/invalid-1.0.jar", tracker ); - assertHasFailureMessage( "Built artifact version does not match path version", - "invalid/invalid/1.0/invalid-2.0.jar", tracker ); - - assertEquals( 25, mockConsumer.getArtifactMap().size() ); - - // Test for known include artifacts - - Collection artifacts = mockConsumer.getArtifactMap().values(); - assertHasArtifact( "org.apache.maven", "testing", "1.0", "jar", null, artifacts ); - assertHasArtifact( "org.apache.maven", "some-ejb", "1.0", "jar", "client", artifacts ); - assertHasArtifact( "org.apache.maven", "testing", "1.0", "java-source", "sources", artifacts ); - assertHasArtifact( "org.apache.maven", "testing", "1.0", "java-source", "test-sources", artifacts ); - assertHasArtifact( "org.apache.maven", "testing", "1.0", "distribution-zip", null, artifacts ); - assertHasArtifact( "org.apache.maven", "testing", "1.0", "distribution-tgz", null, artifacts ); - assertHasArtifact( "javax.sql", "jdbc", "2.0", "jar", null, artifacts ); - assertHasArtifact( "org.apache.maven", "test", "1.0-20050611.112233-1", "jar", null, artifacts ); - assertHasArtifact( "org.apache.maven", "test", "1.0-20050611.112233-1", "jar", "javadoc", artifacts ); - - // Test for known excluded files and dirs to validate exclusions. - - Iterator it = mockConsumer.getArtifactMap().values().iterator(); - while ( it.hasNext() ) - { - Artifact a = (Artifact) it.next(); - assertTrue( "Artifact " + a + " should have it's .getFile() set.", a.getFile() != null ); - assertTrue( "Artifact " + a + " should have it's .getRepository() set.", a.getRepository() != null ); - assertTrue( "Artifact " + a + " should have non-null repository url.", a.getRepository().getUrl() != null ); - assertFalse( "Check not CVS", a.getFile().getPath().indexOf( "CVS" ) >= 0 ); - assertFalse( "Check not .svn", a.getFile().getPath().indexOf( ".svn" ) >= 0 ); - } - } - - private void dumpProblems( FileProblemsTracker tracker ) - { - int problemNum = 0; - System.out.println( "-- ProblemTracker dump -------------------------" ); - for ( Iterator itPaths = tracker.getPaths().iterator(); itPaths.hasNext(); ) - { - String path = (String) itPaths.next(); - System.out.println( " [" + problemNum + "]: " + path ); - - int messageNum = 0; - for ( Iterator itProblems = tracker.getProblems( path ).iterator(); itProblems.hasNext(); ) - { - String message = (String) itProblems.next(); - System.out.println( " [" + messageNum + "]: " + message ); - messageNum++; - } - - problemNum++; - } - } - - private void assertTracker( FileProblemsTracker tracker, int expectedProblemCount ) - { - assertNotNull( "ProblemsTracker should not be null.", tracker ); - - int actualProblemCount = tracker.getProblemCount(); - if ( expectedProblemCount != actualProblemCount ) - { - dumpProblems( tracker ); - fail( "Problem count (across all paths) expected:<" + expectedProblemCount + ">, actual:<" - + actualProblemCount + ">" ); - } - } - - private void assertHasFailureMessage( String message, String path, FileProblemsTracker tracker ) - { - if ( !tracker.hasProblems( path ) ) - { - fail( "There are no messages for expected path [" + path + "]" ); - } - - assertTrue( "Unable to find message [" + message + "] in path [" + path + "]", tracker.getProblems( path ) - .contains( message ) ); - } - - private void assertHasArtifact( String groupId, String artifactId, String version, String type, String classifier, - Collection collection ) - { - for ( Iterator it = collection.iterator(); it.hasNext(); ) - { - Artifact artifact = (Artifact) it.next(); - if ( StringUtils.equals( groupId, artifact.getGroupId() ) - && StringUtils.equals( artifactId, artifact.getArtifactId() ) - && StringUtils.equals( version, artifact.getVersion() ) - && StringUtils.equals( type, artifact.getType() ) - && StringUtils.equals( classifier, artifact.getClassifier() ) ) - { - // Found it! - return; - } - } - - fail( "Was unable to find artifact " + groupId + ":" + artifactId + ":" + version + ":" + type + ":" - + classifier ); - } -} diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockArtifactConsumer.java b/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockArtifactConsumer.java deleted file mode 100644 index 66ad9a209..000000000 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockArtifactConsumer.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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 org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.common.utils.PathUtil; -import org.apache.maven.archiva.consumers.core.GenericArtifactConsumer; -import org.apache.maven.artifact.Artifact; - -import java.util.HashMap; -import java.util.Map; - -/** - * MockArtifactConsumer - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.common.consumers.Consumers" - * role-hint="mock-artifact" - * instantiation-strategy="per-lookup" - */ -public class MockArtifactConsumer - extends GenericArtifactConsumer -{ - private Map artifactMap = new HashMap(); - - private FileProblemsTracker problemsTracker = new FileProblemsTracker(); - - public void processArtifact( Artifact artifact, BaseFile file ) - { - String relpath = PathUtil.getRelative( repository.getRepositoryURL().getPath(), file ); - artifactMap.put( relpath, artifact ); - } - - public void processFileProblem( BaseFile file, String message ) - { - problemsTracker.addProblem( file, message ); - } - - public Map getArtifactMap() - { - return artifactMap; - } - - public String getName() - { - return "Mock Artifact Consumer (Testing Only)"; - } - - public FileProblemsTracker getProblemsTracker() - { - return problemsTracker; - } -}
\ No newline at end of file diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockModelConsumer.java b/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockModelConsumer.java deleted file mode 100644 index 98adf8ee9..000000000 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockModelConsumer.java +++ /dev/null @@ -1,71 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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 org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.consumers.core.GenericModelConsumer; -import org.apache.maven.model.Model; - -import java.util.HashMap; -import java.util.Map; - -/** - * MockModelConsumer - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.common.consumers.Consumers" - * role-hint="mock-model" - * instantiation-strategy="per-lookup" - */ -public class MockModelConsumer - extends GenericModelConsumer -{ - private Map modelMap = new HashMap(); - - private FileProblemsTracker problemsTracker = new FileProblemsTracker(); - - public void processModel( Model model, BaseFile file ) - { - modelMap.put( file.getRelativePath(), model ); - } - - public void processFileProblem( BaseFile file, String message ) - { - problemsTracker.addProblem( file, message ); - } - - public Map getModelMap() - { - return modelMap; - } - - public String getName() - { - return "Mock Model Consumer (Testing Only)"; - } - - public FileProblemsTracker getProblemsTracker() - { - return problemsTracker; - } - -}
\ No newline at end of file diff --git a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockRepositoryMetadataConsumer.java b/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockRepositoryMetadataConsumer.java deleted file mode 100644 index b58dc57a9..000000000 --- a/archiva-consumer-api/src/test/java/org/apache/maven/archiva/consumers/MockRepositoryMetadataConsumer.java +++ /dev/null @@ -1,70 +0,0 @@ -package org.apache.maven.archiva.consumers; - -/* - * 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 org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.consumers.core.GenericRepositoryMetadataConsumer; -import org.apache.maven.artifact.repository.metadata.RepositoryMetadata; - -import java.util.HashMap; -import java.util.Map; - -/** - * MockRepositoryMetadataConsumer - * - * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a> - * @version $Id$ - * - * @plexus.component role="org.apache.maven.archiva.common.consumers.Consumers" - * role-hint="mock-metadata" - * instantiation-strategy="per-lookup" - */ -public class MockRepositoryMetadataConsumer - extends GenericRepositoryMetadataConsumer -{ - private Map repositoryMetadataMap = new HashMap(); - - private FileProblemsTracker problemsTracker = new FileProblemsTracker(); - - public void processRepositoryMetadata( RepositoryMetadata metadata, BaseFile file ) - { - repositoryMetadataMap.put( file.getRelativePath(), metadata ); - } - - public void processFileProblem( BaseFile file, String message ) - { - problemsTracker.addProblem( file, message ); - } - - public Map getRepositoryMetadataMap() - { - return repositoryMetadataMap; - } - - public String getName() - { - return "Mock RepositoryMetadata Consumer (Testing Only)"; - } - - public FileProblemsTracker getProblemsTracker() - { - return problemsTracker; - } -}
\ No newline at end of file diff --git a/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java b/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java index 5dbd6bfe8..34db1d9bb 100644 --- a/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java +++ b/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java @@ -21,7 +21,6 @@ package org.apache.maven.archiva.database; import org.apache.maven.archiva.model.ArchivaArtifactModel; import org.apache.maven.archiva.model.ArchivaRepositoryModel; -import org.apache.maven.archiva.model.RepositoryContent; import java.util.List; @@ -73,29 +72,13 @@ public interface ArchivaDAO public void deleteRepository( ArchivaRepositoryModel repository ) throws ArchivaDatabaseException; - /* .\ Repository Content \.____________________________________________________________ */ - - public RepositoryContent createRepositoryContent( String groupId, String artifactId, String version, - String repositoryId ); - - public RepositoryContent getRepositoryContent( String groupId, String artifactId, String version, - String repositoryId ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public List /*<RepositoryContent>*/queryRepositoryContents( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public RepositoryContent saveRepositoryContent( RepositoryContent repoContent ) - throws ArchivaDatabaseException; - - public void deleteRepositoryContent( RepositoryContent repoContent ) - throws ArchivaDatabaseException; - /* .\ Archiva Artifact \. _____________________________________________________________ */ - public ArchivaArtifactModel createArtifact( RepositoryContent repoContent, String classifier, String type ); + public ArchivaArtifactModel createArtifact( String groupId, String artifactId, String version, String classifier, + String type ); - public ArchivaArtifactModel getArtifact( RepositoryContent repoContent, String classifier, String type ) + public ArchivaArtifactModel getArtifact( String groupId, String artifactId, String version, String classifier, + String type ) throws ObjectNotFoundException, ArchivaDatabaseException; public List /*<ArchivaArtifactModel>*/queryArtifacts( Constraint constraint ) diff --git a/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java b/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java index 87565a825..4eb9cd06e 100644 --- a/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java +++ b/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java @@ -6,8 +6,6 @@ import org.apache.maven.archiva.database.Constraint; import org.apache.maven.archiva.database.ObjectNotFoundException; import org.apache.maven.archiva.model.ArchivaArtifactModel; import org.apache.maven.archiva.model.ArchivaRepositoryModel; -import org.apache.maven.archiva.model.RepositoryContent; -import org.apache.maven.archiva.model.RepositoryContentKey; import org.codehaus.plexus.logging.AbstractLogEnabled; import java.util.List; @@ -78,70 +76,22 @@ public class JdoArchivaDAO jdo.removeObject( repository ); } - /* .\ Repository Content \.____________________________________________________________ */ - - public RepositoryContent createRepositoryContent( String groupId, String artifactId, String version, - String repositoryId ) - { - RepositoryContent repoContent; - - try - { - repoContent = getRepositoryContent( groupId, artifactId, version, repositoryId ); - } - catch ( ArchivaDatabaseException e ) - { - repoContent = new RepositoryContent( repositoryId, groupId, artifactId, version ); - } - - return repoContent; - } - - public RepositoryContent getRepositoryContent( String groupId, String artifactId, String version, - String repositoryId ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - RepositoryContentKey key = new RepositoryContentKey(); - key.groupId = groupId; - key.artifactId = artifactId; - key.version = version; - key.repositoryId = repositoryId; - - return (RepositoryContent) jdo.getObjectById( RepositoryContent.class, key, null ); - } - - public List queryRepositoryContents( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - return jdo.getAllObjects( RepositoryContent.class, constraint ); - } - - public RepositoryContent saveRepositoryContent( RepositoryContent repoContent ) - throws ArchivaDatabaseException - { - return (RepositoryContent) jdo.saveObject( repoContent ); - } - - public void deleteRepositoryContent( RepositoryContent repoContent ) - throws ArchivaDatabaseException - { - jdo.removeObject( repoContent ); - } - /* .\ Archiva Artifact \. _____________________________________________________________ */ - public ArchivaArtifactModel createArtifact( RepositoryContent repoContent, String classifier, String type ) + public ArchivaArtifactModel createArtifact( String groupId, String artifactId, String version, String classifier, String type ) { ArchivaArtifactModel artifact; try { - artifact = getArtifact( repoContent, classifier, type ); + artifact = getArtifact( groupId, artifactId, version, classifier, type ); } catch ( ArchivaDatabaseException e ) { artifact = new ArchivaArtifactModel(); - artifact.setContentKey( repoContent ); + artifact.setGroupId( groupId ); + artifact.setArtifactId( artifactId ); + artifact.setVersion( version ); artifact.setClassifier( classifier ); artifact.setType( type ); } @@ -149,7 +99,7 @@ public class JdoArchivaDAO return artifact; } - public ArchivaArtifactModel getArtifact( RepositoryContent repoContent, String classifier, String type ) + public ArchivaArtifactModel getArtifact( String groupId, String artifactId, String version, String classifier, String type ) throws ObjectNotFoundException, ArchivaDatabaseException { |