You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@archiva.apache.org by jo...@apache.org on 2007/04/05 22:11:30 UTC
svn commit: r525951 [1/5] - in
/maven/archiva/branches/archiva-jpox-database-refactor:
archiva-base/archiva-common/
archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/
archiva-base/archiva-consumers/archiva-database-consume...
Author: joakime
Date: Thu Apr 5 13:11:19 2007
New Revision: 525951
URL: http://svn.apache.org/viewvc?view=rev&rev=525951
Log:
Updating with changes surrounding model, and database schema, change
Added:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilder.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpander.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel300Reader.java
- copied, changed from r525261, maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel300Reader.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400Reader.java
- copied, changed from r525261, maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel400Reader.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/resolvers/RepositoryProjectResolver.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/effective-poms/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/effective-poms/archiva-model-effective.pom
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/AllTests.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/EffectiveProjectModelBuilderTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/filters/ProjectModelExpressionExpanderTest.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/AllTests.java (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/readers/ProjectModel400ReaderTest.java
- copied, changed from r525261, maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/ProjectModel400ReaderTest.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-applet/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-base/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-cli/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-common/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-configuration/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumer-api/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-consumers/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-converter/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core-consumers/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-core/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-discoverer/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-indexer/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-model/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-parent/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-application/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-plexus-runtime/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-proxy/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-reports-standard/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-repository-layer/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-security/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-web/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-web/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-webapp/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva-xml-tools/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/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
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT-site.xml (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-SNAPSHOT/archiva-1.0-SNAPSHOT.pom
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-maestro-1.1-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/archiva/archiva/1.0-maestro-1.2-SNAPSHOT/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site.xml (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4-site_en.xml (with props)
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/repositories/default-repository/org/apache/maven/maven-parent/4/maven-parent-4.pom.sha1
Removed:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel300Reader.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModel400Reader.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/ProjectModel400ReaderTest.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/scanner/CentralScannerTiming.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-consumer-api/
Modified:
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/pom.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReaderTest.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/test/java/org/apache/maven/archiva/repository/project/AllTests.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-xml-tools/src/main/java/org/apache/maven/archiva/xml/XMLReader.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-cli/src/main/java/org/apache/maven/archiva/cli/ProjectReaderConsumer.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java
maven/archiva/branches/archiva-jpox-database-refactor/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/pom.xml?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/pom.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/pom.xml Thu Apr 5 13:11:19 2007
@@ -36,22 +36,12 @@
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>
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-common/src/test/java/org/apache/maven/archiva/common/utils/BaseFileTest.java Thu Apr 5 13:11:19 2007
@@ -19,8 +19,9 @@
* under the License.
*/
+import org.apache.commons.lang.StringUtils;
+
import junit.framework.TestCase;
-import org.codehaus.plexus.util.StringUtils;
import java.io.File;
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml Thu Apr 5 13:11:19 2007
@@ -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>
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java Thu Apr 5 13:11:19 2007
@@ -28,9 +28,10 @@
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 java.io.File;
import java.util.ArrayList;
+import java.util.Date;
import java.util.List;
import java.util.Map;
@@ -50,13 +52,16 @@
* @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 @@
* @plexus.configuration default-value="Update the Artifact in the Database"
*/
private String description;
-
+
/**
* @plexus.requirement role-hint="jdo"
*/
@@ -82,6 +87,16 @@
*/
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 @@
return this.includes;
}
- public void beginScan( ArchivaRepository repository ) throws ConsumerException
+ public void beginScan( ArchivaRepository repository )
+ throws ConsumerException
{
if ( !repository.isManaged() )
{
@@ -131,31 +147,53 @@
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 void initialize() throws InitializationException
+ public void initialize()
+ throws InitializationException
{
propertyNameTriggers = new ArrayList();
propertyNameTriggers.add( "repositoryScanning" );
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaArtifact.java Thu Apr 5 13:11:19 2007
@@ -71,7 +71,10 @@
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 );
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/main/java/org/apache/maven/archiva/model/ArchivaModelCloner.java Thu Apr 5 13:11:19 2007
@@ -45,7 +45,7 @@
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 @@
{
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 @@
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 @@
{
return null;
}
-
+
VersionedReference cloned = new VersionedReference();
-
+
cloned.setGroupId( versionedReference.getGroupId() );
cloned.setArtifactId( versionedReference.getArtifactId() );
cloned.setVersion( versionedReference.getVersion() );
-
+
return cloned;
}
@@ -217,21 +241,13 @@
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;
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java?view=auto&rev=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java Thu Apr 5 13:11:19 2007
@@ -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() );
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-model/src/test/java/org/apache/maven/archiva/model/ArchivaModelClonerTest.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/pom.xml Thu Apr 5 13:11:19 2007
@@ -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>
Modified: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java?view=diff&rev=525951&r1=525950&r2=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java (original)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/metadata/RepositoryMetadataReader.java Thu Apr 5 13:11:19 2007
@@ -20,7 +20,6 @@
*/
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 @@
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() );
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java?view=auto&rev=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java Thu Apr 5 13:11:19 2007
@@ -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 );
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelFilter.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java?view=auto&rev=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java Thu Apr 5 13:11:19 2007
@@ -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();
+ }
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMerge.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java?view=auto&rev=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java Thu Apr 5 13:11:19 2007
@@ -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
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelMonitor.java
------------------------------------------------------------------------------
svn:mime-type = text/plain
Added: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java
URL: http://svn.apache.org/viewvc/maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java?view=auto&rev=525951
==============================================================================
--- maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java (added)
+++ maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java Thu Apr 5 13:11:19 2007
@@ -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;
+}
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java
------------------------------------------------------------------------------
svn:eol-style = native
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java
------------------------------------------------------------------------------
svn:keywords = "Author Date Id Revision"
Propchange: maven/archiva/branches/archiva-jpox-database-refactor/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/project/ProjectModelResolver.java
------------------------------------------------------------------------------
svn:mime-type = text/plain