diff options
author | Brett Porter <brett@apache.org> | 2009-12-16 06:18:33 +0000 |
---|---|---|
committer | Brett Porter <brett@apache.org> | 2009-12-16 06:18:33 +0000 |
commit | 966d79546dead099458a0de695c3185bc364e54c (patch) | |
tree | e041d8591290322dce95d48d764931eab86230c3 | |
parent | 7e6661a58a7ebad937d95be62c25e22a20d1d117 (diff) | |
download | archiva-966d79546dead099458a0de695c3185bc364e54c.tar.gz archiva-966d79546dead099458a0de695c3185bc364e54c.zip |
[MRM-1025] remove artifact deletion and update consumer. remove archiva-database module
git-svn-id: https://svn.apache.org/repos/asf/archiva/branches/MRM-1025@891130 13f79535-47bb-0310-9956-ffa450edef68
74 files changed, 302 insertions, 4734 deletions
diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java index 5e23a2f51..f0ae08c2d 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/AbstractRepositoryPurge.java @@ -24,7 +24,6 @@ import java.io.FilenameFilter; import java.util.List; import java.util.Set; -import org.apache.maven.archiva.model.ArchivaArtifact; import org.apache.maven.archiva.model.ArtifactReference; import org.apache.maven.archiva.repository.ManagedRepositoryContent; import org.apache.maven.archiva.repository.audit.AuditEvent; @@ -56,33 +55,6 @@ public abstract class AbstractRepositoryPurge } /** - * Get all files from the directory that matches the specified filename. - * - * @param dir the directory to be scanned - * @param filename the filename to be matched - * @return - */ - protected File[] getFiles( File dir, String filename ) - { - FilenameFilter filter = new ArtifactFilenameFilter( filename ); - - File[] files = dir.listFiles( filter ); - - return files; - } - - protected String toRelativePath( File artifactFile ) - { - String artifactPath = artifactFile.getAbsolutePath(); - if ( artifactPath.startsWith( repository.getRepoRoot() ) ) - { - artifactPath = artifactPath.substring( repository.getRepoRoot().length() ); - } - - return artifactPath; - } - - /** * Purge the repo. Update db and index of removed artifacts. * * @param references @@ -94,14 +66,11 @@ public abstract class AbstractRepositoryPurge for ( ArtifactReference reference : references ) { File artifactFile = repository.toFile( reference ); - - ArchivaArtifact artifact = - new ArchivaArtifact( reference.getGroupId(), reference.getArtifactId(), reference.getVersion(), - reference.getClassifier(), reference.getType(), repository.getId() ); - + for ( RepositoryListener listener : listeners ) { - listener.deleteArtifact( repository, artifact ); + listener.deleteArtifact( repository.getId(), reference.getGroupId(), reference.getArtifactId(), + reference.getVersion(), artifactFile.getName() ); } // TODO: this needs to be logged diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java index 15945b499..44ca8caa1 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/main/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurge.java @@ -177,7 +177,8 @@ public class CleanupReleasedSnapshotsRepositoryPurge // TODO: looks incomplete, might not delete related artifacts? for ( RepositoryListener listener : listeners ) { - listener.deleteArtifact( repository, artifact ); + listener.deleteArtifact( repository.getId(), artifact.getGroupId(), artifact.getArtifactId(), + artifact.getVersion(), artifactFile.getName() ); } needsMetadataUpdate = true; diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java index 292e7a99b..fb04112cf 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.java @@ -76,8 +76,8 @@ public class CleanupReleasedSnapshotsRepositoryPurgeTest String repoRoot = prepareTestRepos(); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-plugin-plugin", - "2.3-SNAPSHOT", "maven-plugin" ) ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-plugin-plugin", + "2.3-SNAPSHOT", "maven-plugin-plugin-2.3-SNAPSHOT.jar" ); listenerControl.replay(); repoPurge.process( CleanupReleasedSnapshotsRepositoryPurgeTest.PATH_TO_RELEASED_SNAPSHOT_IN_SAME_REPO ); @@ -133,9 +133,8 @@ public class CleanupReleasedSnapshotsRepositoryPurgeTest String repoRoot = prepareTestRepos(); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.archiva", - "released-artifact-in-diff-repo", "1.0-SNAPSHOT", - "jar" ) ); + listener.deleteArtifact( getRepository().getId(), "org.apache.archiva", "released-artifact-in-diff-repo", + "1.0-SNAPSHOT", "released-artifact-in-diff-repo-1.0-SNAPSHOT.jar" ); listenerControl.replay(); repoPurge.process( PATH_TO_RELEASED_SNAPSHOT_IN_DIFF_REPO ); diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java index fb8877033..83344821c 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/DaysOldRepositoryPurgeTest.java @@ -21,10 +21,8 @@ package org.apache.maven.archiva.consumers.core.repository; import java.io.File; import java.io.IOException; -import java.util.ArrayList; import java.util.Calendar; import java.util.Collections; -import java.util.List; import org.apache.commons.lang.time.DateUtils; @@ -52,9 +50,9 @@ public class DaysOldRepositoryPurgeTest { File dir = new File( dirPath ); File[] contents = dir.listFiles(); - for ( int i = 0; i < contents.length; i++ ) + for ( File content : contents ) { - contents[i].setLastModified( lastModified ); + content.setLastModified( lastModified ); } } @@ -74,10 +72,10 @@ public class DaysOldRepositoryPurgeTest setLastModified( projectRoot + "/2.2-SNAPSHOT/", 1179382029 ); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-install-plugin", - "2.2-SNAPSHOT", "maven-plugin" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-install-plugin", - "2.2-SNAPSHOT", "pom" ) ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-install-plugin", + "2.2-SNAPSHOT", "maven-install-plugin-2.2-SNAPSHOT.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-install-plugin", + "2.2-SNAPSHOT", "maven-install-plugin-2.2-SNAPSHOT.pom" ); listenerControl.replay(); repoPurge.process( PATH_TO_BY_DAYS_OLD_ARTIFACT ); @@ -122,10 +120,10 @@ public class DaysOldRepositoryPurgeTest setLastModified( projectRoot + "/1.1.2-SNAPSHOT/", 1179382029 ); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "maven-plugin" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "pom" ) ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin", + "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin", + "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.pom" ); listenerControl.replay(); repoPurge.process( PATH_TO_TEST_ORDER_OF_DELETION ); @@ -205,18 +203,11 @@ public class DaysOldRepositoryPurgeTest createFiles( versionRoot ); - List<String> versions = new ArrayList<String>(); - versions.add( "1.4.3-20070113.163208-4" ); - versions.add( "1.4.3-" + year + mon + day + "." + hr + min + sec + "-5" ); - versions.add( "1.4.3-" + year + mon + day + "." + hr + min + sec + "-6" ); - versions.add( "1.4.3-" + year + mon + day + "." + hr + min + sec + "-7" ); - versions.add( "1.4.3-SNAPSHOT" ); - // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.plexus", "plexus-utils", - "1.4.3-20070113.163208-4", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.plexus", "plexus-utils", - "1.4.3-20070113.163208-4", "pom" ) ); + listener.deleteArtifact( getRepository().getId(), "org.codehaus.plexus", "plexus-utils", + "1.4.3-20070113.163208-4", "plexus-utils-1.4.3-20070113.163208-4.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.codehaus.plexus", "plexus-utils", + "1.4.3-20070113.163208-4", "plexus-utils-1.4.3-20070113.163208-4.pom" ); listenerControl.replay(); repoPurge.process( PATH_TO_BY_DAYS_OLD_METADATA_DRIVEN_ARTIFACT ); @@ -234,20 +225,19 @@ public class DaysOldRepositoryPurgeTest assertExists( versionRoot + "/plexus-utils-1.4.3-SNAPSHOT.jar" ); assertExists( versionRoot + "/plexus-utils-1.4.3-SNAPSHOT.pom" ); - for ( int i = 0; i < extensions.length; i++ ) + for ( String extension : extensions ) { - assertExists( versionRoot + "/plexus-utils-1.4.3-" + year + mon + day + "." + hr + min + sec + - extensions[i] ); + assertExists( versionRoot + "/plexus-utils-1.4.3-" + year + mon + day + "." + hr + min + sec + extension ); } } private void createFiles( String versionRoot ) throws IOException { - for ( int i = 0; i < extensions.length; i++ ) + for ( String extension : extensions ) { File file = - new File( versionRoot, "/plexus-utils-1.4.3-" + year + mon + day + "." + hr + min + sec + extensions[i] ); + new File( versionRoot, "/plexus-utils-1.4.3-" + year + mon + day + "." + hr + min + sec + extension ); file.createNewFile(); } } diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java index f1448825f..2f488a7c9 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/java/org/apache/maven/archiva/consumers/core/repository/RetentionCountRepositoryPurgeTest.java @@ -43,8 +43,6 @@ public class RetentionCountRepositoryPurgeTest /** * Test if the artifact to be processed was a jar. - * - * @throws Exception */ public void testIfAJarWasFound() throws Exception @@ -52,14 +50,14 @@ public class RetentionCountRepositoryPurgeTest String repoRoot = prepareTestRepos(); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.153317-1", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.153317-1", "pom" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.160758-2", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.jruby.plugins", "jruby-rake-plugin", - "1.0RC1-20070504.160758-2", "pom" ) ); + listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin", + "1.0RC1-20070504.153317-1", "jruby-rake-plugin-1.0RC1-20070504.153317-1.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin", + "1.0RC1-20070504.153317-1", "jruby-rake-plugin-1.0RC1-20070504.153317-1.pom" ); + listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin", + "1.0RC1-20070504.160758-2", "jruby-rake-plugin-1.0RC1-20070504.160758-2.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.jruby.plugins", "jruby-rake-plugin", + "1.0RC1-20070504.160758-2", "jruby-rake-plugin-1.0RC1-20070504.160758-2.pom" ); listenerControl.replay(); repoPurge.process( PATH_TO_BY_RETENTION_COUNT_ARTIFACT ); @@ -101,8 +99,6 @@ public class RetentionCountRepositoryPurgeTest /** * Test if the artifact to be processed is a pom - * - * @throws Exception */ public void testIfAPomWasFound() throws Exception @@ -110,10 +106,10 @@ public class RetentionCountRepositoryPurgeTest String repoRoot = prepareTestRepos(); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.castor", "castor-anttasks", - "1.1.2-20070427.065136-1", "jar" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.codehaus.castor", "castor-anttasks", - "1.1.2-20070427.065136-1", "pom" ) ); + listener.deleteArtifact( getRepository().getId(), "org.codehaus.castor", "castor-anttasks", + "1.1.2-20070427.065136-1", "castor-anttasks-1.1.2-20070427.065136-1.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.codehaus.castor", "castor-anttasks", + "1.1.2-20070427.065136-1", "castor-anttasks-1.1.2-20070427.065136-1.pom" ); listenerControl.replay(); repoPurge.process( PATH_TO_BY_RETENTION_COUNT_POM ); @@ -158,10 +154,10 @@ public class RetentionCountRepositoryPurgeTest String repoRoot = prepareTestRepos(); // test listeners for the correct artifacts - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "maven-plugin" ) ); - listener.deleteArtifact( getRepository(), createArtifact( "org.apache.maven.plugins", "maven-assembly-plugin", - "1.1.2-20070427.065136-1", "pom" ) ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin", + "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.jar" ); + listener.deleteArtifact( getRepository().getId(), "org.apache.maven.plugins", "maven-assembly-plugin", + "1.1.2-20070427.065136-1", "maven-assembly-plugin-1.1.2-20070427.065136-1.pom" ); listenerControl.replay(); repoPurge.process( PATH_TO_TEST_ORDER_OF_DELETION ); diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml index 49f384e42..bd895c342 100644 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml +++ b/archiva-modules/archiva-base/archiva-consumers/archiva-core-consumers/src/test/resources/org/apache/maven/archiva/consumers/core/repository/CleanupReleasedSnapshotsRepositoryPurgeTest.xml @@ -20,40 +20,6 @@ <component-set> <components> - - <!-- JdoAccess --> - <component> - <role>org.apache.maven.archiva.database.jdo.JdoAccess</role> - <role-hint>archiva</role-hint> - <implementation>org.apache.maven.archiva.database.jdo.JdoAccess</implementation> - <requirements> - <requirement> - <role>org.codehaus.plexus.jdo.JdoFactory</role> - <role-hint>archiva</role-hint> - </requirement> - </requirements> - </component> - - <!-- JDO Factory --> - <component> - <role>org.codehaus.plexus.jdo.JdoFactory</role> - <role-hint>archiva</role-hint> - <implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation> - <configuration> - <persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass> - <driverName>org.hsqldb.jdbcDriver</driverName> - <userName>sa</userName> - <password></password> - <url>jdbc:hsqldb:mem:testdb</url> - <otherProperties> - <property> - <name>javax.jdo.PersistenceManagerFactoryClass</name> - <value>org.jpox.PersistenceManagerFactoryImpl</value> - </property> - </otherProperties> - </configuration> - </component> - <component> <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role> <role-hint>cleanup-released-snapshots</role-hint> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml deleted file mode 100644 index 4aa0b6fc2..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/pom.xml +++ /dev/null @@ -1,69 +0,0 @@ -<?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.archiva</groupId> - <artifactId>archiva-consumers</artifactId> - <version>1.3-SNAPSHOT</version> - </parent> - - <artifactId>archiva-database-consumers</artifactId> - <name>Archiva Consumers :: Database Consumers</name> - - <dependencies> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-database</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-configuration</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-consumer-api</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-repository-layer</artifactId> - </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-spring</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-digest</artifactId> - </dependency> - <dependency> - <groupId>hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-simple</artifactId> - <scope>test</scope> - </dependency> - </dependencies> -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java deleted file mode 100644 index 6ddd82eac..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/main/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumer.java +++ /dev/null @@ -1,276 +0,0 @@ -package org.apache.maven.archiva.consumers.database; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.util.ArrayList; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.ConfigurationNames; -import org.apache.maven.archiva.configuration.FileTypes; -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.consumers.AbstractMonitoredConsumer; -import org.apache.maven.archiva.consumers.ConsumerException; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -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.ArtifactReference; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.RepositoryContentFactory; -import org.apache.maven.archiva.repository.RepositoryException; -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; -import org.codehaus.plexus.registry.RegistryListener; - -/** - * ArtifactUpdateDatabaseConsumer - Take an artifact off of disk and put it into the repository. - * - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer" - * role-hint="update-db-artifact" - * instantiation-strategy="per-lookup" - */ -public class ArtifactUpdateDatabaseConsumer - extends AbstractMonitoredConsumer - implements KnownRepositoryContentConsumer, 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 = "checksum-calc"; - - /** - * @plexus.configuration default-value="update-db-artifact" - */ - private String id; - - /** - * @plexus.configuration default-value="Update the Artifact in the Database" - */ - private String description; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArchivaDAO dao; - - /** - * @plexus.requirement - */ - private ArchivaConfiguration configuration; - - /** - * @plexus.requirement - */ - private FileTypes filetypes; - - /** - * @plexus.requirement - */ - private RepositoryContentFactory repositoryFactory; - - /** - * @plexus.requirement role-hint="sha1" - */ - private Digester digestSha1; - - /** - * @plexus.requirement role-hint="md5"; - */ - private Digester digestMd5; - - private ManagedRepositoryContent repository; - - private File repositoryDir; - - private List<String> includes = new ArrayList<String>(); - - private Date whenGathered; - - public String getId() - { - return this.id; - } - - public String getDescription() - { - return this.description; - } - - public boolean isPermanent() - { - return true; - } - - public List<String> getExcludes() - { - return getDefaultArtifactExclusions(); - } - - public List<String> getIncludes() - { - return this.includes; - } - - public void beginScan( ManagedRepositoryConfiguration repo, Date whenGathered ) - throws ConsumerException - { - try - { - this.repository = repositoryFactory.getManagedRepositoryContent( repo.getId() ); - this.repositoryDir = new File( repository.getRepoRoot() ); - this.whenGathered = whenGathered; - } - catch(RepositoryException e) - { - throw new ConsumerException( "Unable to start ArtifactUpdateDatabaseConsumer: " + e.getMessage(), e ); - } - } - - public void processFile( String path ) - throws ConsumerException - { - ArchivaArtifact artifact = getLiveArtifact( path ); - - if ( artifact == null ) - { - return; - } - - try - { - if( artifact.getModel().getRepositoryId() == null ) - { - 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() ); - - // set this to when the artifact was first discovered in the repo - if ( artifact.getModel().getWhenGathered() == null ) - { - artifact.getModel().setWhenGathered( whenGathered ); - } - - dao.getArtifactDAO().saveArtifact( artifact ); - } - catch ( ArchivaDatabaseException e ) - { - triggerConsumerError( DB_ERROR, "Unable to save artifact to database: " + e.getMessage() ); - } - } - - /** - * Get a Live Artifact from a Path. - * <p/> - * Will resolve the artifact details from the path, and then return a database live version - * of that artifact. Suitable for modification and saving (without the need to check for - * existance in database prior to save.) - * - * @param path the path to work from. - * @return the artifact that is suitable for database saving. - */ - public ArchivaArtifact getLiveArtifact( String path ) - { - try - { - ArtifactReference artifact = repository.toArtifactReference( path ); - - ArchivaArtifact liveArtifact = dao.getArtifactDAO().createArtifact( artifact.getGroupId(), - artifact.getArtifactId(), - artifact.getVersion(), - artifact.getClassifier(), - artifact.getType(), - repository.getId()); - - return liveArtifact; - } - catch ( LayoutException e ) - { - triggerConsumerError( TYPE_NOT_ARTIFACT, - "Path " + path + " cannot be converted to artifact: " + e.getMessage() ); - return null; - } - } - - public void completeScan() - { - /* do nothing */ - } - - public void afterConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - if ( ConfigurationNames.isRepositoryScanning( propertyName ) ) - { - initIncludes(); - } - } - - public void beforeConfigurationChange( Registry registry, String propertyName, Object propertyValue ) - { - /* do nothing */ - } - - private void initIncludes() - { - includes.clear(); - - includes.addAll( filetypes.getFileTypePatterns( FileTypes.ARTIFACTS ) ); - } - - public void initialize() - throws InitializationException - { - configuration.addChangeListener( this ); - - initIncludes(); - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml deleted file mode 100644 index e44390dd9..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/conf/repository-manager.xml +++ /dev/null @@ -1,203 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!-- - ~ 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. - --> - -<configuration> - <version>1</version> - <repositories> - <repository> - <id>internal</id> - <name>Archiva Managed Internal Repository</name> - <url>file://${appserver.base}/repositories/internal</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>false</snapshots> - <indexed>true</indexed> - <refreshCronExpression>0 0 * * * ?</refreshCronExpression> - </repository> - <repository> - <id>snapshots</id> - <name>Archiva Managed Snapshot Repository</name> - <url>file://${appserver.base}/repositories/internal</url> - <layout>default</layout> - <releases>false</releases> - <snapshots>true</snapshots> - <indexed>true</indexed> - <refreshCronExpression>0 0,30 * * * ?</refreshCronExpression> - </repository> - <repository> - <id>central</id> - <name>Central Repository</name> - <url>http://repo1.maven.org/maven2</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>false</snapshots> - <indexed>false</indexed> - </repository> - <repository> - <id>maven2-repository.dev.java.net</id> - <name>Java.net Repository for Maven 2</name> - <url>https://maven2-repository.dev.java.net/nonav/repository</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>false</snapshots> - <indexed>false</indexed> - </repository> - <repository> - <id>test-repo</id> - <name>Test Repository</name> - <url>file://${appserver.base}/repositories/test-repo</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>true</snapshots> - <indexed>true</indexed> - <refreshCronExpression>0 0 * * * ?</refreshCronExpression> - <daysOlder>0</daysOlder> - <retentionCount>2</retentionCount> - </repository> - </repositories> - - <proxyConnectors> - <proxyConnector> - <sourceRepoId>internal</sourceRepoId> - <targetRepoId>central</targetRepoId> - <proxyId/> - <snapshotsPolicy>disabled</snapshotsPolicy> - <releasePolicy>never</releasePolicy> - <failurePolicy>not-found</failurePolicy> - </proxyConnector> - <proxyConnector> - <sourceRepoId>internal</sourceRepoId> - <targetRepoId>maven2-repository.dev.java.net</targetRepoId> - <proxyId/> - <snapshotsPolicy>disabled</snapshotsPolicy> - <releasePolicy>never</releasePolicy> - <failurePolicy>not-found</failurePolicy> - <whiteListPatterns> - <whiteListPattern>javax/**</whiteListPattern> - </whiteListPatterns> - </proxyConnector> - </proxyConnectors> - - <networkProxies> - <networkProxy> - <id>example</id> - <protocol>http</protocol> - <host>proxy.mycompany.com</host> - <port>8080</port> - <username>myself</username> - <password>mypass</password> - </networkProxy> - </networkProxies> - - <repositoryScanning> - <fileTypes> - <fileType> - <id>artifacts</id> - <patterns> - <pattern>**/*.pom</pattern> - <pattern>**/*.jar</pattern> - <pattern>**/*.ear</pattern> - <pattern>**/*.war</pattern> - <pattern>**/*.car</pattern> - <pattern>**/*.sar</pattern> - <pattern>**/*.mar</pattern> - <pattern>**/*.rar</pattern> - <pattern>**/*.dtd</pattern> - <pattern>**/*.tld</pattern> - <pattern>**/*.tar.gz</pattern> - <pattern>**/*.tar.bz2</pattern> - <pattern>**/*.zip</pattern> - </patterns> - </fileType> - <fileType> - <id>indexable-content</id> - <patterns> - <pattern>**/*.txt</pattern> - <pattern>**/*.TXT</pattern> - <pattern>**/*.block</pattern> - <pattern>**/*.config</pattern> - <pattern>**/*.pom</pattern> - <pattern>**/*.xml</pattern> - <pattern>**/*.xsd</pattern> - <pattern>**/*.dtd</pattern> - <pattern>**/*.tld</pattern> - </patterns> - </fileType> - <fileType> - <id>auto-remove</id> - <patterns> - <pattern>**/*.bak</pattern> - <pattern>**/*~</pattern> - <pattern>**/*-</pattern> - </patterns> - </fileType> - <fileType> - <id>ignored</id> - <patterns> - <pattern>**/.htaccess</pattern> - <pattern>**/KEYS</pattern> - <pattern>**/*.rb</pattern> - <pattern>**/*.sh</pattern> - <pattern>**/.svn/**</pattern> - <pattern>**/.DAV/**</pattern> - </patterns> - </fileType> - </fileTypes> - <knownContentConsumers> - <knownContentConsumer>update-db-artifact</knownContentConsumer> - <knownContentConsumer>create-missing-checksums</knownContentConsumer> - <knownContentConsumer>update-db-repository-metadata</knownContentConsumer> - <knownContentConsumer>validate-checksum</knownContentConsumer> - <knownContentConsumer>validate-signature</knownContentConsumer> - <knownContentConsumer>index-content</knownContentConsumer> - <knownContentConsumer>auto-remove</knownContentConsumer> - <knownContentConsumer>auto-rename</knownContentConsumer> - <knownContentConsumer>repository-purge</knownContentConsumer> - </knownContentConsumers> - <invalidContentConsumers> - <invalidContentConsumer>update-db-bad-content</invalidContentConsumer> - </invalidContentConsumers> - </repositoryScanning> - - <databaseScanning> - <cronExpression>0 0 * * * ?</cronExpression> - <unprocessedConsumers> - <unprocessedConsumer>index-artifact</unprocessedConsumer> - <unprocessedConsumer>update-db-project</unprocessedConsumer> - <unprocessedConsumer>validate-repository-metadata</unprocessedConsumer> - <unprocessedConsumer>index-archive-toc</unprocessedConsumer> - <unprocessedConsumer>update-db-bytecode-stats</unprocessedConsumer> - <unprocessedConsumer>index-public-methods</unprocessedConsumer> - </unprocessedConsumers> - <cleanupConsumers> - <cleanupConsumer>not-present-remove-db-artifact</cleanupConsumer> - <cleanupConsumer>not-present-remove-db-project</cleanupConsumer> - <cleanupConsumer>not-present-remove-indexed</cleanupConsumer> - </cleanupConsumers> - </databaseScanning> - - <webapp> - <ui> - <showFindArtifacts>true</showFindArtifacts> - <appletFindEnabled>true</appletFindEnabled> - </ui> - </webapp> - -</configuration> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java deleted file mode 100644 index 5bff8d355..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/java/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.java +++ /dev/null @@ -1,79 +0,0 @@ -package org.apache.maven.archiva.consumers.database; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; - -import org.apache.maven.archiva.common.utils.BaseFile; -import org.apache.maven.archiva.configuration.ArchivaConfiguration; -import org.apache.maven.archiva.configuration.FileType; -import org.apache.maven.archiva.configuration.FileTypes; -import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.consumers.functors.ConsumerWantsFilePredicate; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; - -public class ArtifactUpdateDatabaseConsumerTest - extends PlexusInSpringTestCase -{ - private File repoLocation; - - protected KnownRepositoryContentConsumer consumer; - - protected void setUp() - throws Exception - { - super.setUp(); - - ArchivaConfiguration archivaConfiguration = (ArchivaConfiguration) lookup( ArchivaConfiguration.ROLE ); - FileType fileType = - (FileType) archivaConfiguration.getConfiguration().getRepositoryScanning().getFileTypes().get( 0 ); - assertEquals( FileTypes.ARTIFACTS, fileType.getId() ); - fileType.addPattern( "**/*.xml" ); - - repoLocation = getTestFile( "target/test-" + getName() + "/test-repo" ); - - consumer = - (KnownRepositoryContentConsumer) lookup( KnownRepositoryContentConsumer.class, "update-db-artifact" ); - } - - public void testConsumption() - { - File localFile = - new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata.xml" ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( consumer ) ); - } - - public void testConsumptionOfOtherMetadata() - { - File localFile = - new File( repoLocation, "org/apache/maven/plugins/maven-plugin-plugin/2.4.1/maven-metadata-central.xml" ); - - ConsumerWantsFilePredicate predicate = new ConsumerWantsFilePredicate(); - BaseFile baseFile = new BaseFile( repoLocation, localFile ); - predicate.setBasefile( baseFile ); - - assertFalse( predicate.evaluate( consumer ) ); - } -} diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml deleted file mode 100644 index 801d957b8..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/org/apache/maven/archiva/consumers/database/ArtifactUpdateDatabaseConsumerTest.xml +++ /dev/null @@ -1,56 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!-- - ~ 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. - --> - -<component-set> - <components> - <!-- JdoAccess --> - <component> - <role>org.apache.maven.archiva.database.jdo.JdoAccess</role> - <role-hint>archiva</role-hint> - <implementation>org.apache.maven.archiva.database.jdo.JdoAccess</implementation> - <requirements> - <requirement> - <role>org.codehaus.plexus.jdo.JdoFactory</role> - <role-hint>archiva</role-hint> - </requirement> - </requirements> - </component> - - <!-- JDO Factory --> - <component> - <role>org.codehaus.plexus.jdo.JdoFactory</role> - <role-hint>archiva</role-hint> - <implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation> - <configuration> - <persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass> - <driverName>org.hsqldb.jdbcDriver</driverName> - <userName>sa</userName> - <password></password> - <url>jdbc:hsqldb:mem:testdb</url> - <otherProperties> - <property> - <name>javax.jdo.PersistenceManagerFactoryClass</name> - <value>org.jpox.PersistenceManagerFactoryImpl</value> - </property> - </otherProperties> - </configuration> - </component> - </components> -</component-set> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.jar b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.jar Binary files differdeleted file mode 100644 index 4201a06cb..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.jar +++ /dev/null diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.pom deleted file mode 100644 index 94b5b2e98..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/org/apache/maven/archiva/do-not-cleanup-artifact-test/1.0/do-not-cleanup-artifact-test-1.0.pom +++ /dev/null @@ -1,5 +0,0 @@ -<project> - <groupId>org.apache.maven.archiva</groupId> - <artifactId>do-not-cleanup-artifact-test</artifactId> - <version>1.0</version> -</project>
\ No newline at end of file diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom deleted file mode 100644 index fa0c87e5c..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-api/2.4.4/test-project-api-2.4.4.pom +++ /dev/null @@ -1,39 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>test-project</groupId> - <artifactId>test-project</artifactId> - <version>2.4.4</version> - </parent> - <groupId>test-project</groupId> - <artifactId>test-project-api</artifactId> - <name>Test Project API</name> - - <dependencies> - <dependency> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - </dependency> - <dependency> - <groupId>stax</groupId> - <artifactId>stax-api</artifactId> - </dependency> - </dependencies> - - <build> - <plugins> - <plugin> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom deleted file mode 100644 index b333a52d2..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-broker-ejb/2.4.4/test-project-broker-ejb-2.4.4.pom +++ /dev/null @@ -1,77 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>test-project</groupId> - <artifactId>test-project-broker-pom</artifactId> - <version>2.4.4</version> - </parent> - <artifactId>test-project-broker-ejb</artifactId> - <name>Test Project Broker EJB</name> - <packaging>ejb</packaging> - - <dependencies> - <dependency> - <groupId>test-project</groupId> - <artifactId>test-project-common</artifactId> - <type>test-jar</type> - <version>${pom.version}</version> - <scope>test</scope> - </dependency> - <dependency> - <groupId>test-project</groupId> - <artifactId>test-project-common</artifactId> - <version>${pom.version}</version> - </dependency> - <dependency> - <groupId>test-project</groupId> - <artifactId>test-project-api</artifactId> - <version>${pom.version}</version> - </dependency> - <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - </dependency> - <dependency> - <groupId>commons-id</groupId> - <artifactId>commons-id</artifactId> - </dependency> - <dependency> - <groupId>commons-discovery</groupId> - <artifactId>commons-discovery</artifactId> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-mock</artifactId> - </dependency> - <dependency> - <groupId>javax.jms</groupId> - <artifactId>jms</artifactId> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - </dependency> - <dependency> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - </dependency> - <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - </dependency> - <dependency> - <groupId>javax.management</groupId> - <artifactId>jmxri</artifactId> - </dependency> - </dependencies> - -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom deleted file mode 100644 index fd5473630..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-broker-pom/2.4.4/test-project-broker-pom-2.4.4.pom +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>test-project</groupId> - <artifactId>test-project</artifactId> - <version>2.4.4</version> - </parent> - <artifactId>test-project-broker-pom</artifactId> - <name>Test Project Broker POM</name> - <packaging>pom</packaging> - - <modules> - <module>broker-ejb</module> - </modules> -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom deleted file mode 100644 index d47958b23..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-common/2.4.4/test-project-common-2.4.4.pom +++ /dev/null @@ -1,119 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>test-project</groupId> - <artifactId>test-project</artifactId> - <version>2.4.4</version> - </parent> - <groupId>test-project</groupId> - <artifactId>test-project-common</artifactId> - <name>Test Project Commons</name> - <dependencies> - <dependency> - <groupId>test-project</groupId> - <artifactId>test-project-api</artifactId> - <version>${pom.version}</version> - </dependency> - <dependency> - <groupId>commons-id</groupId> - <artifactId>commons-id</artifactId> - </dependency> - <dependency> - <groupId>commons-discovery</groupId> - <artifactId>commons-discovery</artifactId> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring</artifactId> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </dependency> - <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - </dependency> - <dependency> - <groupId>stax</groupId> - <artifactId>stax-api</artifactId> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>wstx-asl</artifactId> - </dependency> - <dependency> - <groupId>org.codehaus.castor</groupId> - <artifactId>castor</artifactId> - </dependency> - <dependency> - <groupId>xerces</groupId> - <artifactId>xerces</artifactId> - </dependency> - <dependency> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - </dependency> - <dependency> - <groupId>javax.jms</groupId> - <artifactId>jms</artifactId> - </dependency> - <dependency> - <groupId>javax.ejb</groupId> - <artifactId>ejb</artifactId> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - </dependency> - <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - </dependency> - <dependency> - <groupId>javax.management</groupId> - <artifactId>jmxri</artifactId> - </dependency> - </dependencies> - - - <build> - <plugins> - <plugin> - <artifactId>maven-source-plugin</artifactId> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>jar</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <artifactId>maven-jar-plugin</artifactId> - <executions> - <execution> - <phase>package</phase> - <goals> - <goal>test-jar</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - </build> -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom deleted file mode 100644 index 582f1e5e1..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-endpoint-ejb/2.4.4/test-project-endpoint-ejb-2.4.4.pom +++ /dev/null @@ -1,75 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>test-project</groupId> - <artifactId>test-project-endpoint-pom</artifactId> - <version>2.4.4</version> - </parent> - <groupId>test-project</groupId> - <artifactId>test-project-endpoint-ejb</artifactId> - <name>Test Project Endpoint EJB</name> - <packaging>ejb</packaging> - - <dependencies> - <dependency> - <groupId>test-project</groupId> - <artifactId>test-project-common</artifactId> - <version>${pom.version}</version> - </dependency> - <dependency> - <groupId>test-project</groupId> - <artifactId>test-project-api</artifactId> - <version>${pom.version}</version> - </dependency> - <dependency> - <!-- for tests only --> - <groupId>test-project</groupId> - <artifactId>test-project-common</artifactId> - <version>${pom.version}</version> - <type>test-jar</type> - <scope>test</scope> - </dependency> - <dependency> - <groupId>commons-id</groupId> - <artifactId>commons-id</artifactId> - </dependency> - <dependency> - <groupId>commons-discovery</groupId> - <artifactId>commons-discovery</artifactId> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - </dependency> - <dependency> - <groupId>javax.jms</groupId> - <artifactId>jms</artifactId> - </dependency> - <dependency> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - </dependency> - <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - </dependency> - <dependency> - <groupId>xml-apis</groupId> - <artifactId>xml-apis</artifactId> - </dependency> - <dependency> - <groupId>javax.management</groupId> - <artifactId>jmxri</artifactId> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - </dependency> - </dependencies> - -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom deleted file mode 100644 index ea4d6372d..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project-endpoint-pom/2.4.4/test-project-endpoint-pom-2.4.4.pom +++ /dev/null @@ -1,16 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - <parent> - <groupId>test-project</groupId> - <artifactId>test-project</artifactId> - <version>2.4.4</version> - </parent> - <artifactId>test-project-endpoint-pom</artifactId> - <name>Test Project Endpoint POM</name> - <packaging>pom</packaging> - - <modules> - <module>endpoint-ejb</module> - </modules> -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project/2.4.4/test-project-2.4.4.pom b/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project/2.4.4/test-project-2.4.4.pom deleted file mode 100644 index 6dc471979..000000000 --- a/archiva-modules/archiva-base/archiva-consumers/archiva-database-consumers/src/test/resources/test-repo/test-project/test-project/2.4.4/test-project-2.4.4.pom +++ /dev/null @@ -1,161 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project> - <modelVersion>4.0.0</modelVersion> - - <groupId>test-project</groupId> - <artifactId>test-project</artifactId> - <name>Test Project</name> - <version>2.4.4</version> - <packaging>pom</packaging> - - <organization> - <name>Company</name> - <url>http://www.company.com/</url> - </organization> - <inceptionYear>2002</inceptionYear> - - <modules> - <module>api</module> - <module>common</module> - <module>broker</module> - <module>endpoint</module> - </modules> - - <dependencies> - <dependency> - <groupId>junit</groupId> - <artifactId>junit</artifactId> - <version>3.8.1</version> - <scope>test</scope> - </dependency> - </dependencies> - <dependencyManagement> - <dependencies> - <!-- common version strategy --> - <dependency> - <groupId>javax.activation</groupId> - <artifactId>activation</artifactId> - <version>1.0.2</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.jms</groupId> - <artifactId>jms</artifactId> - <version>1.0.2</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.ejb</groupId> - <artifactId>ejb</artifactId> - <version>2.0</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.servlet</groupId> - <artifactId>servlet-api</artifactId> - <version>2.4</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>javax.mail</groupId> - <artifactId>mail</artifactId> - <version>1.4</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>xml-apis</groupId> - <artifactId>xml-apis</artifactId> - <version>2.0.2</version> - <scope>provided</scope> - </dependency> - <dependency> - <groupId>commons-logging</groupId> - <artifactId>commons-logging</artifactId> - <version>1.0.4</version> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - <version>2.1</version> - </dependency> - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.2</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring</artifactId> - <version>2.0.7</version> - </dependency> - <dependency> - <groupId>org.springframework</groupId> - <artifactId>spring-mock</artifactId> - <version>2.0.7</version> - <scope>test</scope> - <exclusions> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-jdbc</artifactId> - </exclusion> - <exclusion> - <groupId>org.springframework</groupId> - <artifactId>spring-web</artifactId> - </exclusion> - </exclusions> - </dependency> - <dependency> - <groupId>log4j</groupId> - <artifactId>log4j</artifactId> - <version>1.2.8</version> - </dependency> - <dependency> - <groupId>commons-discovery</groupId> - <artifactId>commons-discovery</artifactId> - <version>0.2</version> - </dependency> - <dependency> - <groupId>commons-id</groupId> - <artifactId>commons-id</artifactId> - <version>0.1-dev</version> - </dependency> - <dependency> - <groupId>org.codehaus.castor</groupId> - <artifactId>castor</artifactId> - <version>1.0.5-xml</version> - </dependency> - <dependency> - <groupId>xerces</groupId> - <artifactId>xerces</artifactId> - <version>2.4.0</version> - </dependency> - <dependency> - <groupId>commons-httpclient</groupId> - <artifactId>commons-httpclient</artifactId> - <version>3.1</version> - </dependency> - <dependency> - <groupId>stax</groupId> - <artifactId>stax-api</artifactId> - <version>1.0.1</version> - </dependency> - <dependency> - <groupId>org.codehaus.woodstox</groupId> - <artifactId>wstx-asl</artifactId> - <version>3.2.1</version> - </dependency> - <dependency> - <groupId>com.thoughtworks.xstream</groupId> - <artifactId>xstream</artifactId> - <version>1.2.2</version> - </dependency> - <dependency> - <groupId>javax.management</groupId> - <artifactId>jmxri</artifactId> - <version>1.2.1</version> - <scope>provided</scope> - </dependency> - </dependencies> - </dependencyManagement> - -</project> diff --git a/archiva-modules/archiva-base/archiva-consumers/pom.xml b/archiva-modules/archiva-base/archiva-consumers/pom.xml index aa07bdea6..8a1bfefe6 100644 --- a/archiva-modules/archiva-base/archiva-consumers/pom.xml +++ b/archiva-modules/archiva-base/archiva-consumers/pom.xml @@ -33,7 +33,6 @@ <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> <module>archiva-dependency-tree-consumer</module> diff --git a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java index 021a6a030..26393052b 100644 --- a/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java +++ b/archiva-modules/archiva-base/archiva-proxy/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java @@ -144,6 +144,16 @@ public class TestMetadataRepository return null; //To change body of implemented methods use File | Settings | File Templates. } + public void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + + public void deleteRepository( String repoId ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + public Collection<ArtifactMetadata> getArtifacts( String repoId, String namespace, String projectId, String projectVersion ) { diff --git a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml index f246248a6..cff1aae3b 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/pom.xml +++ b/archiva-modules/archiva-base/archiva-repository-layer/pom.xml @@ -67,6 +67,10 @@ <artifactId>slf4j-simple</artifactId> <scope>test</scope> </dependency> + <dependency> + <groupId>org.apache.archiva</groupId> + <artifactId>metadata-model</artifactId> + </dependency> </dependencies> <build> <plugins> diff --git a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java index f725071ab..838a30985 100644 --- a/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java +++ b/archiva-modules/archiva-base/archiva-repository-layer/src/main/java/org/apache/maven/archiva/repository/events/RepositoryListener.java @@ -1,8 +1,5 @@ package org.apache.maven.archiva.repository.events; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; - /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file @@ -31,7 +28,6 @@ public interface RepositoryListener { /** * Event for the deletion of a given artifact. - * @param artifactPath the path to the artifact that was deleted. */ - void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact ); + void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ); } diff --git a/archiva-modules/archiva-database/pom.xml b/archiva-modules/archiva-database/pom.xml deleted file mode 100755 index 8f4ed0a27..000000000 --- a/archiva-modules/archiva-database/pom.xml +++ /dev/null @@ -1,103 +0,0 @@ -<?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.archiva</groupId> - <artifactId>archiva-modules</artifactId> - <version>1.3-SNAPSHOT</version> - </parent> - <modelVersion>4.0.0</modelVersion> - <artifactId>archiva-database</artifactId> - <name>Archiva Database</name> - <dependencies> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-repository-layer</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-consumer-api</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-configuration</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-model</artifactId> - </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-spring</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-api</artifactId> - </dependency> - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-jdo2</artifactId> - </dependency> - <dependency> - <groupId>jpox</groupId> - <artifactId>jpox</artifactId> - <scope>compile</scope> - </dependency> - <dependency> - <groupId>commons-lang</groupId> - <artifactId>commons-lang</artifactId> - </dependency> - <dependency> - <groupId>commons-io</groupId> - <artifactId>commons-io</artifactId> - </dependency> - <!-- TEST DEPS --> - <dependency> - <groupId>org.codehaus.plexus.registry</groupId> - <artifactId>plexus-registry-commons</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>hsqldb</groupId> - <artifactId>hsqldb</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.apache.derby</groupId> - <artifactId>derbytools</artifactId> - <scope>test</scope> - </dependency> - <dependency> - <groupId>org.slf4j</groupId> - <artifactId>slf4j-simple</artifactId> - <scope>test</scope> - </dependency> - </dependencies> - <build> - <plugins> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-component-metadata</artifactId> - </plugin> - </plugins> - </build> -</project> diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java deleted file mode 100644 index e66b114ed..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDAO.java +++ /dev/null @@ -1,43 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.List; - -/** - * ArchivaDAO - The interface for all content within the database. - * - * @version $Id$ - */ -public interface ArchivaDAO -{ - public static final String ROLE = ArchivaDAO.class.getName(); - - /** - * Perform a simple query against the database. - * - * @param constraint the constraint to use. - * @return the List of results. - */ - List<?> query( SimpleConstraint constraint ); - - ArtifactDAO getArtifactDAO(); - -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java deleted file mode 100644 index 0f0f2183a..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArchivaDatabaseException.java +++ /dev/null @@ -1,41 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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. - */ - -/** - * ArchivaDatabaseException - * - * @version $Id$ - */ -public class ArchivaDatabaseException - extends Exception -{ - - public ArchivaDatabaseException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ArchivaDatabaseException( String message ) - { - super( message ); - } - -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java deleted file mode 100644 index 2c8d901fe..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ArtifactDAO.java +++ /dev/null @@ -1,69 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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 java.util.List; - -/** - * ArtifactDAO - * - * @version $Id$ - */ -public interface ArtifactDAO -{ - /* NOTE TO ARCHIVA DEVELOPERS. - * - * Please keep this interface clean and lean. - * We don't want a repeat of the Continuum Store. - * You should have the following methods per object type ... - * - * (Required Methods) - * - * DatabaseObject .createDatabaseObject( Required Params ) ; - * List .queryDatabaseObject( Constraint ) throws ObjectNotFoundException, DatabaseException; - * DatabaseObject .saveDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * (Optional Methods) - * - * DatabaseObject .getDatabaseObject( Id ) throws ObjectNotFoundException, DatabaseException; - * List .getDatabaseObjects() throws ObjectNotFoundException, DatabaseException; - * void .deleteDatabaseObject( DatabaseObject ) throws DatabaseException; - * - * This is the only list of options created in this DAO. - */ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type, String repositoryId ); - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type, String repositoryId ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public List<ArchivaArtifact> queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException; - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException; - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException; -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java deleted file mode 100644 index 669d21141..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/Constraint.java +++ /dev/null @@ -1,42 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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. - */ - - -/** - * Constraint - a generic object for dealing with database constraints. - * - * @version $Id$ - * @see DeclarativeConstraint - * @see SimpleConstraint - */ -public interface Constraint -{ - public static final String ASCENDING = "ascending"; - - public static final String DESCENDING = "descending"; - - /** - * Get the fetch limits on the object. - * - * @return the fetch limits on the object. (can be null) (O/RM specific) - */ - public String getFetchLimits(); -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java deleted file mode 100644 index 1c55a8db1..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/DeclarativeConstraint.java +++ /dev/null @@ -1,104 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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. - */ - -/** - * DeclarativeConstraint - * - * @version $Id$ - */ -public interface DeclarativeConstraint - extends Constraint -{ - /** - * Get the declared imports used for this query. (optional) - * <p/> - * NOTE: This is DAO implementation specific. - * - * @return the imports. (can be null) - */ - public abstract String[] getDeclaredImports(); - - /** - * Get the declared parameters used for this query. (optional) - * <p/> - * NOTE: This is DAO implementation specific. - * - * @return the parameters. (can be null) - */ - public abstract String[] getDeclaredParameters(); - - /** - * The JDOQL filter to apply to the query. (optional) - * <p/> - * NOTE: This is DAO implementation specific. - * - * @return the filter to apply. (can be null) - */ - public abstract String getFilter(); - - /** - * Get the parameters used for this query. (required if using {@link #getDeclaredParameters()} ) - * <p/> - * NOTE: This is DAO implementation specific. - * - * @return the parameters. (can be null) - */ - public abstract Object[] getParameters(); - - /** - * Get the sort direction name. - * - * @return the sort direction name. ("ASC" or "DESC") (only valid if {@link #getSortColumn()} is specified.) - */ - public abstract String getSortDirection(); - - /** - * Get the sort column name. - * - * @return the sort column name. (can be null) - */ - public abstract String getSortColumn(); - - /** - * Get the variables used within the query. - * <p/> - * NOTE: This is DAO implementation specific. - * - * @return the variables used within the query. - */ - public abstract String[] getVariables(); - - /** - * Get the SELECT WHERE (condition) value for the constraint. - * - * @return the equivalent of the SELECT WHERE (condition) value for this constraint. (can be null) - */ - public abstract String getWhereCondition(); - - /** - * Get the declared range used for this query. (optional) - * <p/> - * NOTE: This is DAO implementation specific. - * - * @return the range. (can be null) - */ - public abstract int[] getRange(); -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java deleted file mode 100644 index a4e93c17b..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/ObjectNotFoundException.java +++ /dev/null @@ -1,52 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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. - */ - -/** - * ObjectNotFoundException - * - * @version $Id$ - */ -public class ObjectNotFoundException - extends ArchivaDatabaseException -{ - private Object id; - - public ObjectNotFoundException( String message, Throwable cause, Object id ) - { - super( message, cause ); - this.id = id; - } - - public ObjectNotFoundException( String message, Throwable cause ) - { - super( message, cause ); - } - - public ObjectNotFoundException( String message ) - { - super( message ); - } - - public Object getId() - { - return id; - } -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java deleted file mode 100644 index eeb27679f..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListener.java +++ /dev/null @@ -1,53 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; - -/** - * Process repository management events and respond appropriately. - * - * @plexus.component role="org.apache.maven.archiva.repository.events.RepositoryListener" role-hint="database" - */ -public class RepositoryDatabaseEventListener - implements RepositoryListener -{ - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - public void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact ) - { - try - { - ArchivaArtifact queriedArtifact = - artifactDAO.getArtifact( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), - artifact.getClassifier(), artifact.getType(), repository.getId() ); - artifactDAO.deleteArtifact( queriedArtifact ); - } - catch ( ArchivaDatabaseException e ) - { - // ignored - } - } -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java deleted file mode 100644 index bdfb09926..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/SimpleConstraint.java +++ /dev/null @@ -1,59 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * 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. - */ - -/** - * SimpleConstraint - * - * @version $Id$ - */ -public interface SimpleConstraint extends Constraint -{ - /** - * Get the parameters used for this query. (required if using parameterized SQL) - * - * NOTE: This is DAO implementation specific. - * - * @return the parameters. (can be null) - */ - public Object[] getParameters(); - - /** - * Get the SELECT query value for the constraint. - * - * @return the SELECT value for this constraint. (can be null) - */ - public abstract String getSelectSql(); - - /** - * For simple Constraints the results class must be specified. - * - * @return the result class. - */ - public Class<?> getResultClass(); - - /** - * When working with result classes that are not persistable, - * it is advisable to tell the underlying DAO to not do the persistable related efforts. - * - * @return true if result classes are persistable. - */ - public boolean isResultsPersistable(); -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java deleted file mode 100644 index d48183b3f..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractDeclarativeConstraint.java +++ /dev/null @@ -1,163 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.Arrays; -import java.util.List; - -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.DeclarativeConstraint; - -/** - * AbstractDeclarativeConstraint - * - * @version $Id$ - */ -public abstract class AbstractDeclarativeConstraint - implements DeclarativeConstraint -{ - protected String[] declImports; - - protected String[] declParams; - - protected String[] variables; - - protected Object[] params; - - protected int[] range; - - protected String sortDirection = Constraint.ASCENDING; - - public String getFilter() - { - return null; - } - - public String getFetchLimits() - { - return null; - } - - public String[] getDeclaredImports() - { - return declImports; - } - - public String[] getDeclaredParameters() - { - return declParams; - } - - public Object[] getParameters() - { - return params; - } - - public String getSortDirection() - { - return sortDirection; - } - - public String[] getVariables() - { - return variables; - } - - public int[] getRange() - { - return range; - } - - @Override - public boolean equals( Object o ) - { - if ( this == o ) - { - return true; - } - if ( o == null || getClass() != o.getClass() ) - { - return false; - } - - AbstractDeclarativeConstraint that = (AbstractDeclarativeConstraint) o; - - if ( !Arrays.equals( declImports, that.declImports ) ) - { - return false; - } - if ( !Arrays.equals( declParams, that.declParams ) ) - { - return false; - } - // Probably incorrect - comparing Object[] arrays with Arrays.equals - if ( !Arrays.equals( params, that.params ) ) - { - return false; - } - if ( !Arrays.equals( range, that.range ) ) - { - return false; - } - if ( sortDirection != null ? !sortDirection.equals( that.sortDirection ) : that.sortDirection != null ) - { - return false; - } - if ( !Arrays.equals( variables, that.variables ) ) - { - return false; - } - - return true; - } - - @Override - public int hashCode() - { - int result = declImports != null ? Arrays.hashCode( declImports ) : 0; - result = 31 * result + ( declParams != null ? Arrays.hashCode( declParams ) : 0 ); - result = 31 * result + ( variables != null ? Arrays.hashCode( variables ) : 0 ); - result = 31 * result + ( params != null ? Arrays.hashCode( params ) : 0 ); - result = 31 * result + ( range != null ? Arrays.hashCode( range ) : 0 ); - result = 31 * result + ( sortDirection != null ? sortDirection.hashCode() : 0 ); - return result; - } - - @Override - public String toString() - { - List<Integer> r = null; - if ( range != null ) - { - r = new ArrayList<Integer>(); - for ( int i : range ) - { - r.add( i ); - } - } - return "AbstractDeclarativeConstraint{" + "declImports=" + - ( declImports == null ? null : Arrays.asList( declImports ) ) + ", declParams=" + - ( declParams == null ? null : Arrays.asList( declParams ) ) + ", variables=" + - ( variables == null ? null : Arrays.asList( variables ) ) + ", params=" + - ( params == null ? null : Arrays.asList( params ) ) + ", range=" + r + ", sortDirection='" + sortDirection + - '\'' + '}'; - } -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java deleted file mode 100644 index 9cb4acc99..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/AbstractSimpleConstraint.java +++ /dev/null @@ -1,48 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.SimpleConstraint; - -/** - * Simple Constraint abstract for working with nearly-raw SQL strings. - * - * @version $Id$ - */ -public abstract class AbstractSimpleConstraint - implements SimpleConstraint -{ - protected Object[] params; - - public Object[] getParameters() - { - return params; - } - - public String getFetchLimits() - { - return null; - } - - public boolean isResultsPersistable() - { - return false; - } -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java deleted file mode 100644 index 6ecd8caf8..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraint.java +++ /dev/null @@ -1,72 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * 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.database.Constraint; - -/** - * ArtifactVersionsConstraint - * - * @version - */ -public class ArtifactVersionsConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause = ""; - - private String sortColumn = "repositoryId"; - - public ArtifactVersionsConstraint( String repoId, String groupId, String artifactId, boolean includeWhenGathered ) - { - if( repoId != null ) - { - whereClause = "repositoryId.equals(selectedRepoId) && groupId.equals(selectedGroupId) && artifactId.equals(selectedArtifactId) " - + ( includeWhenGathered ? "&& whenGathered != null" : "" ); - declParams = new String[] { "String selectedRepoId", "String selectedGroupId", "String selectedArtifactId" }; - params = new Object[] { repoId, groupId, artifactId }; - } - else - { - whereClause = - "groupId.equals(selectedGroupId) && artifactId.equals(selectedArtifactId) " + - ( includeWhenGathered ? "&& whenGathered != null" : "" ); - declParams = new String[] { "String selectedGroupId", "String selectedArtifactId" }; - params = new Object[] { groupId, artifactId }; - } - } - - public ArtifactVersionsConstraint( String repoId, String groupId, String artifactId, String sortColumn ) - { - this( repoId, groupId, artifactId, true ); - this.sortColumn = sortColumn; - } - - public String getSortColumn() - { - return sortColumn; - } - - public String getWhereCondition() - { - return whereClause; - } - -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java deleted file mode 100644 index 8ae2d3d9e..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraint.java +++ /dev/null @@ -1,76 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Date; - -import org.apache.maven.archiva.database.Constraint; - -/** - * ArtifactsByRepositoryConstraint - * - * @version - */ -public class ArtifactsByRepositoryConstraint - extends AbstractDeclarativeConstraint - implements Constraint -{ - private String whereClause; - - private String sortColumn = "groupId"; - - public ArtifactsByRepositoryConstraint( String repoId ) - { - whereClause = "repositoryId == repoId"; - declParams = new String[] { "String repoId" }; - params = new Object[] { repoId }; - } - - public ArtifactsByRepositoryConstraint( String repoId, Date targetWhenGathered, String sortColumn, boolean isBefore ) - { - String condition = isBefore ? "<=" : ">="; - - declImports = new String[] { "import java.util.Date" }; - whereClause = "this.repositoryId == repoId && this.whenGathered " + condition + " targetWhenGathered"; - declParams = new String[] { "String repoId", "Date targetWhenGathered" }; - params = new Object[] { repoId, targetWhenGathered }; - this.sortColumn = sortColumn; - } - - public ArtifactsByRepositoryConstraint( String repoId, String type, Date before, String sortColumn ) - { - declImports = new String[] { "import java.util.Date" }; - whereClause = - "this.repositoryId == repoId && this.type == type && this.whenGathered <= before"; - declParams = new String[] { "String repoId", "String type", "Date before" }; - params = new Object[] { repoId, type, before }; - this.sortColumn = sortColumn; - } - - public String getSortColumn() - { - return sortColumn; - } - - public String getWhereCondition() - { - return whereClause; - } -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java deleted file mode 100644 index 27c39bf52..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoAccess.java +++ /dev/null @@ -1,598 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.DeclarativeConstraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.SimpleConstraint; -import org.apache.maven.archiva.database.constraints.AbstractSimpleConstraint; -import org.apache.maven.archiva.model.CompoundKey; -import org.codehaus.plexus.jdo.JdoFactory; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.Initializable; -import org.codehaus.plexus.personality.plexus.lifecycle.phase.InitializationException; - -import java.io.PrintStream; -import java.util.ArrayList; -import java.util.List; - -import javax.jdo.Extent; -import javax.jdo.JDOException; -import javax.jdo.JDOHelper; -import javax.jdo.JDOObjectNotFoundException; -import javax.jdo.JDOUserException; -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; -import javax.jdo.Query; -import javax.jdo.Transaction; -import javax.jdo.datastore.DataStoreCache; -import javax.jdo.listener.InstanceLifecycleEvent; -import javax.jdo.listener.InstanceLifecycleListener; -import javax.jdo.listener.StoreLifecycleListener; -import javax.jdo.spi.Detachable; -import javax.jdo.spi.PersistenceCapable; - -/** - * JdoAccess - * - * @version $Id$ - * @plexus.component role="org.apache.maven.archiva.database.jdo.JdoAccess" role-hint="archiva" - */ -public class JdoAccess - implements Initializable, InstanceLifecycleListener, StoreLifecycleListener -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoFactory jdoFactory; - - private PersistenceManagerFactory pmf; - - public void initialize() - throws InitializationException - { - pmf = jdoFactory.getPersistenceManagerFactory(); - - /* Primitive (and failed) attempt at creating the schema on startup. - Just to prevent the multiple stack trace warnings on auto-gen of schema. - - // Create the schema (if needed) - URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - File propsFile = null; // intentional - boolean verbose = true; - - try - { - String connectionFactoryName = pmf.getConnectionFactoryName(); - if ( StringUtils.isNotBlank( connectionFactoryName ) && connectionFactoryName.startsWith( "java:comp" ) ) - { - // We have a JNDI datasource! - String jndiDatasource = connectionFactoryName; - System.setProperty( PMFConfiguration.JDO_DATASTORE_URL_PROPERTY, jndiDatasource ); - } - - // TODO: figure out how to get the jdbc driver details from JNDI to pass into SchemaTool. - - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - } - catch ( Exception e ) - { - getLogger().error( "Unable to create schema: " + e.getMessage(), e ); - } - - pmf.getPersistenceManager(); - */ - - // Add the lifecycle listener. - pmf.addInstanceLifecycleListener( this, null ); - } - - public static void dumpObjectState( PrintStream out, Object o ) - { - final String STATE = "[STATE] "; - final String INDENT = " "; - - if ( o == null ) - { - out.println( STATE + "Object is null." ); - return; - } - - out.println( STATE + "Object " + o.getClass().getName() ); - - if ( !( o instanceof PersistenceCapable ) ) - { - out.println( INDENT + "is NOT PersistenceCapable (not a jdo object?)" ); - return; - } - - out.println( INDENT + "is PersistenceCapable." ); - if ( o instanceof Detachable ) - { - out.println( INDENT + "is Detachable" ); - } - - out.println( INDENT + "is new : " + Boolean.toString( JDOHelper.isNew( o ) ) ); - out.println( INDENT + "is transactional : " + Boolean.toString( JDOHelper.isTransactional( o ) ) ); - out.println( INDENT + "is deleted : " + Boolean.toString( JDOHelper.isDeleted( o ) ) ); - out.println( INDENT + "is detached : " + Boolean.toString( JDOHelper.isDetached( o ) ) ); - out.println( INDENT + "is dirty : " + Boolean.toString( JDOHelper.isDirty( o ) ) ); - out.println( INDENT + "is persistent : " + Boolean.toString( JDOHelper.isPersistent( o ) ) ); - - out.println( INDENT + "object id : " + JDOHelper.getObjectId( o ) ); - } - - public PersistenceManager getPersistenceManager() - { - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.getFetchPlan().setMaxFetchDepth( -1 ); - - return pm; - } - - public void enableCache( Class<?> clazz ) - { - DataStoreCache cache = pmf.getDataStoreCache(); - cache.pinAll( clazz, false ); // Pin all objects of type clazz from now on - } - - public Object saveObject( Object object ) - { - return saveObject( object, null ); - } - - public Object saveObject( Object object, String[] fetchGroups ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - if ( ( JDOHelper.getObjectId( object ) != null ) && !JDOHelper.isDetached( object ) ) - { - // This is a fatal error that means we need to fix our code. - // Leave it as a JDOUserException, it's intentional. - throw new JDOUserException( "Existing object is not detached: " + object, object ); - } - - if ( fetchGroups != null ) - { - for ( int i = 0; i >= fetchGroups.length; i++ ) - { - pm.getFetchPlan().addGroup( fetchGroups[i] ); - } - } - - pm.makePersistent( object ); - - object = pm.detachCopy( object ); - - tx.commit(); - - return object; - } - finally - { - rollbackIfActive( tx ); - } - } - - public List<?> getAllObjects( Class<?> clazz ) - { - return queryObjects( clazz, null ); - } - - public List<?> queryObjects( Class<?> clazz, Constraint constraint ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - List<?> result = null; - - if ( constraint != null ) - { - if ( constraint instanceof DeclarativeConstraint ) - { - result = processConstraint( pm, clazz, (DeclarativeConstraint) constraint ); - } - else if ( constraint instanceof AbstractSimpleConstraint ) - { - result = processConstraint( pm, (SimpleConstraint) constraint ); - } - else - { - result = processUnconstrained( pm, clazz ); - } - } - else - { - result = processUnconstrained( pm, clazz ); - } - - result = (List<?>) pm.detachCopyAll( result ); - - tx.commit(); - - return result; - } - finally - { - rollbackIfActive( tx ); - } - } - - public List<?> queryObjects( SimpleConstraint constraint ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - List<?> result = processConstraint( pm, constraint ); - - // Only detach if results are known to be persistable. - if ( constraint.isResultsPersistable() ) - { - result = (List<?>) pm.detachCopyAll( result ); - } - else - { - List<Object> copiedResults = new ArrayList<Object>(); - copiedResults.addAll( result ); - result = copiedResults; - } - - tx.commit(); - - return result; - } - finally - { - rollbackIfActive( tx ); - } - } - - private List<?> processUnconstrained( PersistenceManager pm, Class<?> clazz ) - { - Extent extent = pm.getExtent( clazz, true ); - Query query = pm.newQuery( extent ); - return (List<?>) query.execute(); - } - - private List<?> processConstraint( PersistenceManager pm, SimpleConstraint constraint ) - { - Query query = pm.newQuery( constraint.getSelectSql() ); - - if ( constraint.getResultClass() == null ) - { - throw new IllegalStateException( "Unable to use a SimpleConstraint with a null result class." ); - } - - query.setResultClass( constraint.getResultClass() ); - - if ( constraint.getFetchLimits() != null ) - { - pm.getFetchPlan().addGroup( constraint.getFetchLimits() ); - } - - if ( constraint.getParameters() != null ) - { - return processParameterizedQuery( query, constraint.getParameters() ); - } - - return (List<?>) query.execute(); - } - - private List<?> processConstraint( PersistenceManager pm, Class<?> clazz, DeclarativeConstraint constraint ) - { - Extent extent = pm.getExtent( clazz, true ); - Query query = pm.newQuery( extent ); - - if ( constraint.getFilter() != null ) - { - query.setFilter( constraint.getFilter() ); - } - - if ( constraint.getVariables() != null ) - { - query.declareVariables( StringUtils.join( constraint.getVariables(), "; " ) ); - } - - if ( constraint.getSortColumn() != null ) - { - String ordering = constraint.getSortColumn(); - - if ( constraint.getSortDirection() != null ) - { - ordering += " " + constraint.getSortDirection(); - } - - query.setOrdering( ordering ); - } - - if ( constraint.getFetchLimits() != null ) - { - pm.getFetchPlan().addGroup( constraint.getFetchLimits() ); - } - - if ( constraint.getWhereCondition() != null ) - { - query.setFilter( constraint.getWhereCondition() ); - } - - if ( constraint.getDeclaredImports() != null ) - { - query.declareImports( StringUtils.join( constraint.getDeclaredImports(), ", " ) ); - } - - if ( constraint.getRange() != null ) - { - query.setRange( constraint.getRange()[0], constraint.getRange()[1] ); - } - - if ( constraint.getDeclaredParameters() != null ) - { - if ( constraint.getParameters() == null ) - { - throw new JDOException( "Unable to use query, there are declared parameters, " - + "but no parameter objects to use." ); - } - - if ( constraint.getParameters().length != constraint.getDeclaredParameters().length ) - { - throw new JDOException( "Unable to use query, there are <" + constraint.getDeclaredParameters().length - + "> declared parameters, yet there are <" + constraint.getParameters().length - + "> parameter objects to use. This should be equal." ); - } - - query.declareParameters( StringUtils.join( constraint.getDeclaredParameters(), ", " ) ); - - return processParameterizedQuery( query, constraint.getParameters() ); - } - else - { - return (List<?>) query.execute(); - } - } - - private List<?> processParameterizedQuery( Query query, Object parameters[] ) - { - switch ( parameters.length ) - { - case 1: - return (List<?>) query.execute( parameters[0] ); - case 2: - return (List<?>) query.execute( parameters[0], parameters[1] ); - case 3: - return (List<?>) query.execute( parameters[0], parameters[1], parameters[2] ); - default: - throw new JDOException( "Unable to use more than 3 parameters." ); - } - } - - public Object getObjectById( Class<?> clazz, Object id, String fetchGroup ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - if ( id == null ) - { - throw new ObjectNotFoundException( "Unable to get object '" + clazz.getName() + "' from jdo using null id." ); - } - - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - if ( fetchGroup != null ) - { - pm.getFetchPlan().addGroup( fetchGroup ); - } - - Object objectId = null; - - if ( id instanceof CompoundKey ) - { - objectId = pm.newObjectIdInstance( clazz, id.toString() ); - } - else - { - objectId = pm.newObjectIdInstance( clazz, id ); - } - - Object object = pm.getObjectById( objectId ); - - object = pm.detachCopy( object ); - - tx.commit(); - - return object; - } - catch ( JDOObjectNotFoundException e ) - { - throw new ObjectNotFoundException( "Unable to find Database Object [" + id + "] of type " + clazz.getName() - + " using " + ( ( fetchGroup == null ) ? "no fetch-group" : "a fetch-group of [" + fetchGroup + "]" ), - e, id ); - } - catch ( JDOException e ) - { - throw new ArchivaDatabaseException( "Error in JDO during get of Database object id [" + id + "] of type " - + clazz.getName() + " using " - + ( ( fetchGroup == null ) ? "no fetch-group" : "a fetch-group of [" + fetchGroup + "]" ), e ); - } - finally - { - rollbackIfActive( tx ); - } - } - - public Object getObjectById( Class<?> clazz, String id, String fetchGroup ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - if ( StringUtils.isEmpty( id ) ) - { - throw new ObjectNotFoundException( "Unable to get object '" + clazz.getName() - + "' from jdo using null/empty id." ); - } - - return getObjectById( clazz, (Object) id, fetchGroup ); - } - - public boolean objectExists( Object object ) - { - return ( JDOHelper.getObjectId( object ) != null ); - } - - public boolean objectExistsById( Class<?> clazz, String id ) - throws ArchivaDatabaseException - { - try - { - Object o = getObjectById( clazz, id, null ); - return ( o != null ); - } - catch ( ObjectNotFoundException e ) - { - return false; - } - } - - public void removeObject( Object o ) - throws ArchivaDatabaseException - { - if ( o == null ) - { - throw new ArchivaDatabaseException( "Unable to remove null object" ); - } - - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - o = pm.getObjectById( pm.getObjectId( o ) ); - - pm.deletePersistent( o ); - - tx.commit(); - } - finally - { - rollbackIfActive( tx ); - } - } - - public void rollbackIfActive( Transaction tx ) - { - PersistenceManager pm = tx.getPersistenceManager(); - - try - { - if ( tx.isActive() ) - { - tx.rollback(); - } - } - finally - { - closePersistenceManager( pm ); - } - } - - public void closePersistenceManager( PersistenceManager pm ) - { - try - { - pm.close(); - } - catch ( JDOUserException e ) - { - // ignore - } - } - - public void postDelete( InstanceLifecycleEvent evt ) - { - PersistenceCapable obj = ( (PersistenceCapable) evt.getSource() ); - - if ( obj == null ) - { - // Do not track null objects. - // These events are typically a product of an internal lifecycle event. - return; - } - } - - public void preDelete( InstanceLifecycleEvent evt ) - { - // ignore - } - - public void postStore( InstanceLifecycleEvent evt ) - { - // PersistenceCapable obj = ( (PersistenceCapable) evt.getSource() ); - } - - public void preStore( InstanceLifecycleEvent evt ) - { - // ignore - } - - public void removeAll( Class<?> aClass ) - { - PersistenceManager pm = getPersistenceManager(); - Transaction tx = pm.currentTransaction(); - - try - { - tx.begin(); - - Query query = pm.newQuery( aClass ); - query.deletePersistentAll(); - - tx.commit(); - } - finally - { - rollbackIfActive( tx ); - } - } - - public JdoFactory getJdoFactory() - { - return jdoFactory; - } - -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java deleted file mode 100644 index dc073292c..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAO.java +++ /dev/null @@ -1,63 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.SimpleConstraint; - -/** - * JdoArchivaDAO - * - * @version $Id$ - * - * @plexus.component role-hint="jdo" - */ -public class JdoArchivaDAO - implements ArchivaDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - /** - * @plexus.requirement role-hint="jdo" - */ - private ArtifactDAO artifactDAO; - - public JdoArchivaDAO() - { - super(); //To change body of overridden methods use File | Settings | File Templates. - } - - public List<?> query( SimpleConstraint constraint ) - { - return jdo.queryObjects( constraint ); - } - - public ArtifactDAO getArtifactDAO() - { - return artifactDAO; - } - -} diff --git a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java b/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java deleted file mode 100644 index 8380d9e1d..000000000 --- a/archiva-modules/archiva-database/src/main/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAO.java +++ /dev/null @@ -1,120 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.apache.maven.archiva.model.jpox.ArchivaArtifactModelKey; - -/** - * JdoArtifactDAO - * - * @version $Id$ - * - * @plexus.component role-hint="jdo" - */ -public class JdoArtifactDAO - implements ArtifactDAO -{ - /** - * @plexus.requirement role-hint="archiva" - */ - private JdoAccess jdo; - - /* .\ Archiva Artifact \. _____________________________________________________________ */ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type, String repositoryId ) - { - ArchivaArtifact artifact; - - try - { - artifact = getArtifact( groupId, artifactId, version, classifier, type, repositoryId ); - } - catch ( ArchivaDatabaseException e ) - { - artifact = new ArchivaArtifact( groupId, artifactId, version, classifier, type, repositoryId ); - } - - return artifact; - } - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type, String repositoryId ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - ArchivaArtifactModelKey key = new ArchivaArtifactModelKey(); - key.setGroupId( groupId ); - key.setArtifactId( artifactId ); - key.setVersion( version ); - key.setClassifier( classifier ); - key.setType( type ); - key.setRepositoryId( repositoryId ); - - ArchivaArtifactModel model = (ArchivaArtifactModel) jdo.getObjectById( ArchivaArtifactModel.class, key, null ); - - return new ArchivaArtifact( model ); - } - - @SuppressWarnings("unchecked") - public List<ArchivaArtifact> queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - List<ArchivaArtifactModel> results = (List<ArchivaArtifactModel>) jdo.queryObjects( ArchivaArtifactModel.class, constraint ); - if ( results == null ) - { - return null; - } - - List<ArchivaArtifact> ret = new ArrayList<ArchivaArtifact>(); - for ( ArchivaArtifactModel model : results ) - { - ret.add( new ArchivaArtifact( model ) ); - } - - return ret; - } - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - ArchivaArtifactModel model = (ArchivaArtifactModel) jdo.saveObject( artifact.getModel() ); - if ( model == null ) - { - return null; - } - - return new ArchivaArtifact( model ); - } - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - jdo.removeObject( artifact.getModel() ); - } -} diff --git a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml b/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml deleted file mode 100644 index 82dc174b1..000000000 --- a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ArtifactKey.xml +++ /dev/null @@ -1,26 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" -"http://ibatis.apache.org/dtd/sql-map-2.dtd"> - -<sqlMap namespace="ArtifactKey"> - -<select id="getArtifactKey" resultClass="org.apache.maven.archiva.database.artifact.ArtifactKey"> - SELECT - ARTIFACT_KEY as id - GROUP_ID as groupId, - ARTIFACT_ID as artifactId, - VERSION as version, - CLASSIFER as classifier, - TYPE as type, - FROM ARTIFACT_KEYS - WHERE ARTIFACT_KEY = #value# -</select> - -<insert id="addArtifactKey" parameterClass="org.apache.maven.archiva.database.artifact.ArtifactKey"> - INSERT INTO - ARTIFACT_KEYS ( GROUP_ID, ARTIFACT_ID, VERSION_ID, CLASSIFIER, TYPE ) - VALUES (#groupId#, #artifactId#, #version# ) -</insert> - -</sqlMap>
\ No newline at end of file diff --git a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml b/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml deleted file mode 100644 index 1f8f8d295..000000000 --- a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/ManageTables.xml +++ /dev/null @@ -1,87 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" -"http://ibatis.apache.org/dtd/sql-map-2.dtd"> - -<sqlMap namespace="CreateTables"> - -<!-- .\ ARTIFACT \.________________________________________________________________________________________ --> - -<statement id="createArtifactKeys"> - CREATE TABLE ArtifactKeys ( - GROUP_ID varchar (100) not null, - ARTIFACT_ID varchar (100) not null, - VERSION varchar (50) not null, - CLASSIFIER varchar (50), - TYPE varchar (20), - ARTIFACT_KEY integer generated always as identity ( start with 1 ), - primary key ( GROUP_ID, ARTIFACT_ID, VERSION, CLASSIFIER, TYPE ) - ) -</statement> - -<statement id="dropArtifactKeys"> - DROP TABLE ArtifactKeys -</statement> - - -<!-- .\ METADATA \.________________________________________________________________________________________ --> - -<!-- -METADATA_KEYS is the index table for all other tables - -need to make the lookup on this table fast, perhaps by indexing the combination of g:a:v in a lookup column - -TODO: Ensure that there is never a duplicate of the multi-part complex key (groupId, artifactId, version) - --> -<statement id="createMetadataKeys"> - CREATE TABLE MetadataKeys ( - metadataKey integer generated always as identity ( start with 1 ) primary key, - groupId varchar(100) not null, - artifactId varchar(100) not null, - version varchar(100) not null - ) -</statement> - -<statement id="dropMetadataKeys"> - DROP TABLE MetadataKeys -</statement> - -<statement id="createRepositoryMetadata"> - CREATE TABLE RepositoryMetadata ( - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - latest varchar(100) not null, - release varchar(100) not null, - lastUpdated integer, - snapshotTimestamp integer, - snapshotBuildNumber integer, - snapshotLocalCopy char(1), - foreign key( metadataKey ) references MetadataKeys( metadataKey ) - ) -</statement> - -<statement id="dropRepositoryMetadata"> - DROP TABLE RepositoryMetadata -</statement> - -<statement id="createHealthMetadata"> - CREATE TABLE HealthMetadata ( - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - processId varchar(100) not null, - problemId varchar(100) not null, - message varchar(8000) not null, - foreign key( metadataKey ) references MetadataKeys( metadataKey ) - ) -</statement> - -<statement id="createVersionsMetadata"> - CREATE TABLE VersionMetadata ( - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - version varchar(100) not null, - foreign key( metadataKey ) references MetadataKeys( metadataKey ) - ) -</statement> - -</sqlMap>
\ No newline at end of file diff --git a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml b/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml deleted file mode 100644 index 7713c9ba8..000000000 --- a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/MetadataKey.xml +++ /dev/null @@ -1,33 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" -"http://ibatis.apache.org/dtd/sql-map-2.dtd"> - -<sqlMap namespace="MetadataKey"> - -<!-- -this query can be improved by adding a lookup index based on these trinity of values - --> -<select id="getMetadataKey" resultClass="org.apache.maven.archiva.database.key.MetadataKey"> - SELECT - metadataKey, - groupId, - artifactId, - version - FROM MetadataKeys - WHERE groupId = #groupId# and artifactId = #artifactId# and version = #version# -</select> - -<insert id="addMetadataKey" parameterClass="org.apache.maven.artifact.repository.metadata.Metadata"> - INSERT INTO - MetadataKeys ( groupId, artifactId, version ) - VALUES ( #groupId#, #artifactId#, #version# ) -</insert> - -<delete id="removeMetadataKey" parameterClass="org.apache.maven.archiva.database.key.MetadataKey"> - DELETE FROM - MetadataKeys - WHERE metadataKey=#metadataKey# -</delete> - -</sqlMap>
\ No newline at end of file diff --git a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml b/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml deleted file mode 100644 index 6c745f9c8..000000000 --- a/archiva-modules/archiva-database/src/main/resources/org/apache/maven/archiva/database/RepositoryMetadata.xml +++ /dev/null @@ -1,50 +0,0 @@ -<?xml version="1.0" encoding="UTF-8" ?> - -<!DOCTYPE sqlMap PUBLIC "-//ibatis.apache.org//DTD SQL Map 2.0//EN" -"http://ibatis.apache.org/dtd/sql-map-2.dtd"> - -<!-- - metadataKey integer not null, - id integer generated always as identity ( start with 1 ) primary key, - latest varchar(100) not null, - release varchar(100) not null, - lastUpdated integer not null, - snapshotTimestamp integer not null, - snapshotBuildNumber integer not null, - snapshotLocalCopy char(1) not null, - foreign key( metadataKey ) references MetadataKeys( metadataKey ) ---> - -<sqlMap namespace="RepositoryMetadata"> - -<select id="getRepositoryMetadata" - parameterClass="org.apache.maven.archiva.database.key.MetadataKey" - resultClass="org.apache.maven.artifact.repository.metadata.Metadata"> - SELECT - mk.groupId AS groupId, - mk.artifactId AS artifactId, - mk.version AS baseVersion, - rm.latest AS latest, - rm.release AS release, - rm.lastUpdated AS lastUpdated - FROM RepositoryMetadata rm, MetadataKeys mk - WHERE - mk.metadataKey = rm.metadataKey - AND mk.metadataKey = #metadataKey# -</select> - -<!-- -<insert id="addRepositoryMetadata" parameterClass="org.apache.maven.artifact.repository.metadata.Metadata"> - INSERT INTO - RepositoryMetadata ( latest, release, lastUpdated ) - VALUES ( #latest#, #release#, #lastUpdated# ) -</insert> ---> - -<delete id="removeRepositoryMetadata" parameterClass="org.apache.maven.archiva.database.key.MetadataKey"> - DELETE FROM - RepositoryMetadata - WHERE metadataKey=#metadataKey# -</delete> - -</sqlMap>
\ No newline at end of file diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java deleted file mode 100644 index 7c5321553..000000000 --- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/AbstractArchivaDatabaseTestCase.java +++ /dev/null @@ -1,181 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.io.File; -import java.net.URL; -import java.text.SimpleDateFormat; -import java.util.Date; -import java.util.Map; -import java.util.Properties; -import javax.jdo.PersistenceManager; -import javax.jdo.PersistenceManagerFactory; - -import org.apache.commons.lang.StringUtils; -import org.apache.maven.archiva.model.ArtifactReference; -import org.apache.maven.archiva.model.VersionedReference; -import org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory; -import org.codehaus.plexus.jdo.JdoFactory; -import org.codehaus.plexus.spring.PlexusInSpringTestCase; -import org.jpox.SchemaTool; - -/** - * AbstractArchivaDatabaseTestCase - * - * @version $Id$ - */ -public abstract class AbstractArchivaDatabaseTestCase - extends PlexusInSpringTestCase -{ - private static final String TIMESTAMP = "yyyy/MM/dd HH:mm:ss"; - - protected ArchivaDAO dao; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - DefaultConfigurableJdoFactory jdoFactory = (DefaultConfigurableJdoFactory) lookup( JdoFactory.ROLE, "archiva" ); - assertEquals( DefaultConfigurableJdoFactory.class.getName(), jdoFactory.getClass().getName() ); - - jdoFactory.setPersistenceManagerFactoryClass( "org.jpox.PersistenceManagerFactoryImpl" ); - - /* derby version - File derbyDbDir = new File( "target/plexus-home/testdb" ); - if ( derbyDbDir.exists() ) - { - FileUtils.deleteDirectory( derbyDbDir ); - } - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.apache.derby.jdbc.EmbeddedDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:derby:" + derbyDbDir.getAbsolutePath() + ";create=true" ) ); - */ - - jdoFactory.setDriverName( System.getProperty( "jdo.test.driver", "org.hsqldb.jdbcDriver" ) ); - jdoFactory.setUrl( System.getProperty( "jdo.test.url", "jdbc:hsqldb:mem:" + getName() ) ); - - jdoFactory.setUserName( System.getProperty( "jdo.test.user", "sa" ) ); - - jdoFactory.setPassword( System.getProperty( "jdo.test.pass", "" ) ); - - jdoFactory.setProperty( "org.jpox.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.poid.transactionIsolation", "READ_COMMITTED" ); - - jdoFactory.setProperty( "org.jpox.autoCreateSchema", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RetainValues", "true" ); - - jdoFactory.setProperty( "javax.jdo.option.RestoreValues", "true" ); - - // jdoFactory.setProperty( "org.jpox.autoCreateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateTables", "true" ); - - jdoFactory.setProperty( "org.jpox.validateColumns", "true" ); - - jdoFactory.setProperty( "org.jpox.validateConstraints", "true" ); - - Properties properties = jdoFactory.getProperties(); - - for ( Map.Entry<Object,Object> entry : properties.entrySet() ) - { - System.setProperty( (String) entry.getKey(), (String) entry.getValue() ); - } - - URL jdoFileUrls[] = new URL[] { getClass().getResource( "/org/apache/maven/archiva/model/package.jdo" ) }; - - if ( ( jdoFileUrls == null ) || ( jdoFileUrls[0] == null ) ) - { - fail( "Unable to process test " + getName() + " - missing package.jdo." ); - } - - File propsFile = null; // intentional - boolean verbose = true; - - SchemaTool.deleteSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose ); - SchemaTool.createSchemaTables( jdoFileUrls, new URL[] {}, propsFile, verbose, null ); - - PersistenceManagerFactory pmf = jdoFactory.getPersistenceManagerFactory(); - - assertNotNull( pmf ); - - PersistenceManager pm = pmf.getPersistenceManager(); - - pm.close(); - - this.dao = (ArchivaDAO) lookup( ArchivaDAO.class.getName(), "jdo" ); - } - - protected Date toDate( String txt ) - throws Exception - { - SimpleDateFormat sdf = new SimpleDateFormat( TIMESTAMP ); - return sdf.parse( txt ); - } - - protected String fromDate( Date date ) - throws Exception - { - SimpleDateFormat sdf = new SimpleDateFormat( TIMESTAMP ); - return sdf.format( date ); - } - - protected VersionedReference toVersionedReference( String id ) - { - String parts[] = StringUtils.splitPreserveAllTokens( id, ':' ); - assertEquals( "Should have 3 parts [" + id + "]", 3, parts.length ); - - VersionedReference ref = new VersionedReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - - assertTrue( "Group ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getGroupId() ) ); - assertTrue( "Artifact ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getArtifactId() ) ); - assertTrue( "Version should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getVersion() ) ); - - return ref; - } - - protected ArtifactReference toArtifactReference( String id ) - { - String parts[] = StringUtils.splitPreserveAllTokens( id, ':' ); - assertEquals( "Should have 6 parts [" + id + "]", 6, parts.length ); - - ArtifactReference ref = new ArtifactReference(); - ref.setGroupId( parts[0] ); - ref.setArtifactId( parts[1] ); - ref.setVersion( parts[2] ); - ref.setClassifier( parts[3] ); - ref.setType( parts[4] ); - - assertTrue( "Group ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getGroupId() ) ); - assertTrue( "Artifact ID should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getArtifactId() ) ); - assertTrue( "Version should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getVersion() ) ); - // Blank string is ok for classifier, NULL is not. - assertNotNull( "Classifier should not be null [" + id + "]", ref.getClassifier() ); - assertTrue( "Type should not be blank [" + id + "]", StringUtils.isNotBlank( ref.getType() ) ); - - return ref; - } -} diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java deleted file mode 100644 index eaf1351c8..000000000 --- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/RepositoryDatabaseEventListenerTest.java +++ /dev/null @@ -1,151 +0,0 @@ -package org.apache.maven.archiva.database; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; -import org.apache.maven.archiva.repository.events.RepositoryListener; -import org.codehaus.plexus.spring.PlexusToSpringUtils; - -public class RepositoryDatabaseEventListenerTest - extends AbstractArchivaDatabaseTestCase -{ - private RepositoryListener listener; - - @Override - protected void setUp() - throws Exception - { - super.setUp(); - - listener = (RepositoryListener) lookup( RepositoryListener.class.getName(), "database" ); - } - - @SuppressWarnings("unchecked") - public void testWiring() - { - List<RepositoryListener> listeners = - PlexusToSpringUtils.lookupList( PlexusToSpringUtils.buildSpringId( RepositoryListener.class ), - getApplicationContext() ); - - assertEquals( 1, listeners.size() ); - assertEquals( listener, listeners.get( 0 ) ); - } - - public ArchivaArtifact createArtifact( String artifactId, String version, ArtifactDAO artifactDao, String type ) - { - ArchivaArtifact artifact = - artifactDao.createArtifact( "org.apache.maven.archiva.test", artifactId, version, "", type, "testable_repo" ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "testable_repo" ); - return artifact; - } - - public void testDeleteArtifact() - throws Exception - { - ArtifactDAO artifactDao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" ); - - ArchivaArtifact pomArtifact = createPom( artifactDao ); - ArchivaArtifact jarArtifact = createJar( artifactDao ); - - assertEquals( pomArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", - null, "pom", "testable_repo" ) ); - assertEquals( jarArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", - null, "jar", "testable_repo" ) ); - - jarArtifact = new ArchivaArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "jar", "testable_repo" ); - ManagedRepositoryContent repository = - (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class.getName(), "default" ); - ManagedRepositoryConfiguration configuration = new ManagedRepositoryConfiguration(); - configuration.setId("testable_repo"); - repository.setRepository(configuration); - - listener.deleteArtifact( repository, jarArtifact ); - - try - { - artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "jar", "testable_repo" ); - fail( "Should not find artifact" ); - } - catch ( ObjectNotFoundException e ) - { - assertTrue( true ); - } - - assertEquals( pomArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", - null, "pom", "testable_repo" ) ); - } - - private ArchivaArtifact createJar( ArtifactDAO artifactDao ) - throws ArchivaDatabaseException - { - ArchivaArtifact artifact = createArtifact( "test-artifact", "1.0", artifactDao, "jar" ); - artifactDao.saveArtifact( artifact ); - return artifact; - } - - public void testDeletePomArtifact() - throws Exception - { - ArtifactDAO artifactDao = (ArtifactDAO) lookup( ArtifactDAO.class.getName(), "jdo" ); - - ArchivaArtifact pomArtifact = createPom( artifactDao ); - ArchivaArtifact jarArtifact = createJar( artifactDao ); - - assertEquals( pomArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", - null, "pom", "testable_repo" ) ); - assertEquals( jarArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", - null, "jar", "testable_repo" ) ); - - pomArtifact = new ArchivaArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "pom", "testable_repo" ); - ManagedRepositoryContent repository = - (ManagedRepositoryContent) lookup( ManagedRepositoryContent.class.getName(), "default" ); - ManagedRepositoryConfiguration configuration = new ManagedRepositoryConfiguration(); - configuration.setId("testable_repo"); - repository.setRepository(configuration); - listener.deleteArtifact( repository, pomArtifact ); - - try - { - artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", null, "pom", "testable_repo" ); - fail( "Should not find artifact" ); - } - catch ( ObjectNotFoundException e ) - { - assertTrue( true ); - } - - assertEquals( jarArtifact, artifactDao.getArtifact( "org.apache.maven.archiva.test", "test-artifact", "1.0", - null, "jar", "testable_repo" ) ); - } - - private ArchivaArtifact createPom( ArtifactDAO artifactDao ) - throws ArchivaDatabaseException - { - ArchivaArtifact artifact = createArtifact( "test-artifact", "1.0", artifactDao, "pom" ); - artifactDao.saveArtifact( artifact ); - return artifact; - } -} diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java deleted file mode 100644 index 9262f91fe..000000000 --- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactVersionsConstraintTest.java +++ /dev/null @@ -1,107 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * ArtifactVersionsConstraintTest - * - * @version - */ -public class ArtifactVersionsConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - public static final String TEST_REPO = "test-repo"; - - @Override - public void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, null, "jar", TEST_REPO ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( TEST_REPO ); - - return artifact; - } - - private void populateDb() - throws Exception - { - Date whenGathered = Calendar.getInstance().getTime(); - whenGathered.setTime( 123456789 ); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0" ); - artifact.getModel().setWhenGathered( null ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0" ); - artifact.getModel().setRepositoryId( "different-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - } - - public void testQueryAllVersionsOfArtifactAcrossRepos() throws Exception - { - populateDb(); - assertConstraint( "Artifacts By Repository", 3, - new ArtifactVersionsConstraint( null, "org.apache.archiva", "artifact-one", true ) ); - } - - public void testQueryAllVersionsOfArtifactInARepo() throws Exception - { - populateDb(); - assertConstraint( "Artifacts By Repository", 2, - new ArtifactVersionsConstraint( TEST_REPO, "org.apache.archiva", "artifact-one", true ) ); - } - - private void assertConstraint( String msg, int count, ArtifactVersionsConstraint constraint ) - throws Exception - { - List<ArchivaArtifact> results = artifactDao.queryArtifacts( constraint ); - assertNotNull( msg + ": Not Null", results ); - assertEquals( msg + ": Results.size", count, results.size() ); - } -} diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java deleted file mode 100644 index 8b2841f0a..000000000 --- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/constraints/ArtifactsByRepositoryConstraintTest.java +++ /dev/null @@ -1,174 +0,0 @@ -package org.apache.maven.archiva.database.constraints; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Calendar; -import java.util.Date; -import java.util.List; - -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; - -/** - * ArtifactsByRepositoryConstraintTest - * - * @version - */ -public class ArtifactsByRepositoryConstraintTest - extends AbstractArchivaDatabaseTestCase -{ - private ArtifactDAO artifactDao; - - public void setUp() - throws Exception - { - super.setUp(); - - ArchivaDAO dao = (ArchivaDAO) lookup( ArchivaDAO.ROLE, "jdo" ); - artifactDao = dao.getArtifactDAO(); - } - - private ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String type ) - { - ArchivaArtifact artifact = artifactDao.createArtifact( groupId, artifactId, version, null, type, "test-repo" ); - artifact.getModel().setLastModified( new Date() ); - artifact.getModel().setRepositoryId( "test-repo" ); - - return artifact; - } - - public void testQueryAllArtifactsInRepo() - throws Exception - { - Date whenGathered = Calendar.getInstance().getTime(); - whenGathered.setTime( 123456789 ); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.0.2", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0", "jar" ); - artifact.getModel().setRepositoryId( "different-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts By Repository", 3, new ArtifactsByRepositoryConstraint( "test-repo" ) ); - } - - public void testQueryArtifactsInRepoWithWhenGathered() - throws Exception - { - Date whenGathered = Calendar.getInstance().getTime(); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0", "jar" ); - artifact.getModel().setRepositoryId( "different-repo" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - Date olderWhenGathered = Calendar.getInstance().getTime(); - olderWhenGathered.setTime( 123456789 ); - - artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.1-SNAPSHOT", "jar" ); - artifact.getModel().setWhenGathered( olderWhenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-three", "2.0-beta-1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - assertConstraint( "Artifacts By Repository and When Gathered", 4, - new ArtifactsByRepositoryConstraint( "test-repo", whenGathered, "repositoryId", false ) ); - } - - public void testQueryArtifactsInRepoByType() - throws Exception - { - Calendar cal = Calendar.getInstance(); - cal.set( 2008, 9, 1 ); - Date whenGathered = cal.getTime(); - - ArchivaArtifact artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.1", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "1.0.2", "jar" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-two", "1.1-SNAPSHOT", "war" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - artifact = createArtifact( "org.apache.archiva", "artifact-three", "2.0-beta-1", "war" ); - artifact.getModel().setWhenGathered( whenGathered ); - artifactDao.saveArtifact( artifact ); - - Calendar cal2 = Calendar.getInstance(); - cal2.set( 2008, 12, 12 ); - Date diffWhenGathered = cal2.getTime(); - - artifact = createArtifact( "org.apache.archiva", "artifact-one", "2.0", "jar" ); - artifact.getModel().setWhenGathered( diffWhenGathered ); - artifactDao.saveArtifact( artifact ); - - cal2 = Calendar.getInstance(); - cal2.set( 2008, 10, 30 ); - Date before = cal2.getTime(); - - assertConstraint( "Artifacts of Type 'jar' By Repository and When Gathered", 3, - new ArtifactsByRepositoryConstraint( "test-repo", "jar", before, "whenGathered" ) ); - assertConstraint( "Artifacts of Type 'war' By Repository and When Gathered", 2, - new ArtifactsByRepositoryConstraint( "test-repo", "war", before, "whenGathered" ) ); - } - - private void assertConstraint( String msg, int count, ArtifactsByRepositoryConstraint constraint ) - throws Exception - { - List<ArchivaArtifact> results = artifactDao.queryArtifacts( constraint ); - assertNotNull( msg + ": Not Null", results ); - assertEquals( msg + ": Results.size", count, results.size() ); - } -} diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java deleted file mode 100644 index 9511f5c2e..000000000 --- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArchivaDAOTest.java +++ /dev/null @@ -1,36 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * 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.database.AbstractArchivaDatabaseTestCase; - -/** - * JdoArchivaDAOTest - * - * @version $Id$ - */ -public class JdoArchivaDAOTest - extends AbstractArchivaDatabaseTestCase -{ - public void testSubDAOs() - { - assertNotNull( "Artifact DAO", dao.getArtifactDAO() ); - } -} diff --git a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java b/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java deleted file mode 100644 index 987880fbb..000000000 --- a/archiva-modules/archiva-database/src/test/java/org/apache/maven/archiva/database/jdo/JdoArtifactDAOTest.java +++ /dev/null @@ -1,112 +0,0 @@ -package org.apache.maven.archiva.database.jdo; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.Date; -import java.util.List; -import javax.jdo.JDOHelper; -import javax.jdo.spi.JDOImplHelper; - -import org.apache.maven.archiva.database.AbstractArchivaDatabaseTestCase; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; -import org.apache.maven.archiva.model.jpox.ArchivaArtifactModelKey; - -/** - * JdoArtifactDAOTest - * - * @version $Id$ - */ -public class JdoArtifactDAOTest - extends AbstractArchivaDatabaseTestCase -{ - public void testArtifactKey() - { - Object o = JDOImplHelper.getInstance().newObjectIdInstance( ArchivaArtifactModel.class, "foo:bar:1.0::jar:testrepo" ); - assertNotNull( "Key should not be null.", o ); - assertTrue( "Key should be an instance of " + ArchivaArtifactModelKey.class.getName(), - ( o instanceof ArchivaArtifactModelKey ) ); - - ArchivaArtifactModelKey key = (ArchivaArtifactModelKey) o; - assertEquals( "foo", key.groupId ); - assertEquals( "bar", key.artifactId ); - assertEquals( "1.0", key.version ); - assertEquals( "", key.classifier ); - assertEquals( "jar", key.type ); - assertEquals("testrepo", key.repositoryId); - } - - public void testArtifactCRUD() - throws Exception - { - ArtifactDAO artiDao = dao.getArtifactDAO(); - - // Create it - ArchivaArtifact artifact = artiDao.createArtifact( "org.apache.maven.archiva", "archiva-test-module", "1.0", - "", "jar", "testrepo" ); - assertNotNull( artifact ); - - // Set some mandatory values - artifact.getModel().setLastModified( new Date() ); - - // Save it. - ArchivaArtifact savedArtifact = artiDao.saveArtifact( artifact ); - assertNotNull( savedArtifact ); - String savedKeyId = JDOHelper.getObjectId( savedArtifact.getModel() ).toString(); - assertEquals( "org.apache.maven.archiva:archiva-test-module:1.0::jar:testrepo", savedKeyId ); - - // Test that something has been saved. - List<ArchivaArtifact> artifacts = artiDao.queryArtifacts( null ); - assertNotNull( artifacts ); - assertEquals( 1, artifacts.size() ); - - // Test that retrieved object is what we expect. - ArchivaArtifact firstArtifact = (ArchivaArtifact) artifacts.get( 0 ); - assertNotNull( firstArtifact ); - assertEquals( "org.apache.maven.archiva", firstArtifact.getGroupId() ); - assertEquals( "archiva-test-module", firstArtifact.getArtifactId() ); - assertEquals( "1.0", firstArtifact.getVersion() ); - assertEquals( "", firstArtifact.getClassifier() ); - assertEquals( "jar", firstArtifact.getType() ); - - // Change value and save. - savedArtifact.getModel().setLastModified( new Date() ); - artiDao.saveArtifact( savedArtifact ); - - // Test that only 1 object is saved. - assertEquals( 1, artiDao.queryArtifacts( null ).size() ); - - // Get the specific artifact. - ArchivaArtifact actualArtifact = artiDao.getArtifact( "org.apache.maven.archiva", "archiva-test-module", "1.0", - null, "jar", "testrepo" ); - assertNotNull( actualArtifact ); - - // Test expected values. - assertEquals( "archiva-test-module", actualArtifact.getArtifactId() ); - - // Test that only 1 object is saved. - assertEquals( 1, artiDao.queryArtifacts( null ).size() ); - - // Delete object. - artiDao.deleteArtifact( actualArtifact ); - assertEquals( 0, artiDao.queryArtifacts( null ).size() ); - } -} diff --git a/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml b/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml deleted file mode 100644 index 0e6441f55..000000000 --- a/archiva-modules/archiva-database/src/test/resources/META-INF/plexus/components.xml +++ /dev/null @@ -1,19 +0,0 @@ -<component-set> - <components> - <component> - <role>org.codehaus.plexus.jdo.JdoFactory</role> - <role-hint>archiva</role-hint> - <implementation>org.codehaus.plexus.jdo.DefaultConfigurableJdoFactory</implementation> - <configuration> - <persistenceManagerFactoryClass>org.jpox.PersistenceManagerFactoryImpl</persistenceManagerFactoryClass> - <otherProperties> - <property> - <name>javax.jdo.PersistenceManagerFactoryClass</name> - <value>org.jpox.PersistenceManagerFactoryImpl</value> - </property> - </otherProperties> - </configuration> - </component> - </components> -</component-set> - diff --git a/archiva-modules/archiva-database/src/test/resources/archiva-test.xml b/archiva-modules/archiva-database/src/test/resources/archiva-test.xml deleted file mode 100644 index 6875b442f..000000000 --- a/archiva-modules/archiva-database/src/test/resources/archiva-test.xml +++ /dev/null @@ -1,152 +0,0 @@ -<?xml version="1.0" encoding="ISO-8859-1"?> -<!-- - ~ 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. - --> - -<configuration> - <repositories> - <repository> - <id>internal</id> - <name>Archiva Managed Internal Repository</name> - <url>file://${appserver.home}/repositories/internal</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>false</snapshots> - <indexed>true</indexed> - <refreshCronExpression>0 0 * * * ?</refreshCronExpression> - </repository> - <repository> - <id>snapshots</id> - <name>Archiva Managed Snapshot Repository</name> - <url>file://${appserver.home}/repositories/internal</url> - <layout>default</layout> - <releases>false</releases> - <snapshots>true</snapshots> - <indexed>true</indexed> - <refreshCronExpression>0 0,30 * * * ?</refreshCronExpression> - </repository> - <repository> - <id>central</id> - <name>Central Repository</name> - <url>http://repo1.maven.org/maven2</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>false</snapshots> - <indexed>false</indexed> - </repository> - <repository> - <id>maven2-repository.dev.java.net</id> - <name>Java.net Repository for Maven 2</name> - <url>https://maven2-repository.dev.java.net/nonav/repository</url> - <layout>default</layout> - <releases>true</releases> - <snapshots>false</snapshots> - <indexed>false</indexed> - </repository> - </repositories> - - <proxyConnectors /> - - <networkProxies /> - - <repositoryScanning> - <fileTypes> - <fileType> - <id>artifacts</id> - <patterns> - <pattern>**/*.pom</pattern> - <pattern>**/*.jar</pattern> - <pattern>**/*.ear</pattern> - <pattern>**/*.war</pattern> - <pattern>**/*.car</pattern> - <pattern>**/*.sar</pattern> - <pattern>**/*.mar</pattern> - <pattern>**/*.rar</pattern> - <pattern>**/*.dtd</pattern> - <pattern>**/*.tld</pattern> - <pattern>**/*.tar.gz</pattern> - <pattern>**/*.tar.bz2</pattern> - <pattern>**/*.zip</pattern> - </patterns> - </fileType> - <fileType> - <id>indexable-content</id> - <patterns> - <pattern>**/*.txt</pattern> - <pattern>**/*.TXT</pattern> - <pattern>**/*.block</pattern> - <pattern>**/*.config</pattern> - <pattern>**/*.pom</pattern> - <pattern>**/*.xml</pattern> - <pattern>**/*.xsd</pattern> - <pattern>**/*.dtd</pattern> - <pattern>**/*.tld</pattern> - </patterns> - </fileType> - <fileType> - <id>auto-remove</id> - <patterns> - <pattern>**/*.bak</pattern> - <pattern>**/*~</pattern> - <pattern>**/*-</pattern> - </patterns> - </fileType> - <fileType> - <id>ignored</id> - <patterns> - <pattern>**/.htaccess</pattern> - <pattern>**/KEYS</pattern> - <pattern>**/*.rb</pattern> - <pattern>**/*.sh</pattern> - <pattern>**/.svn/**</pattern> - <pattern>**/.DAV/**</pattern> - </patterns> - </fileType> - </fileTypes> - <knownContentConsumers> - <knownContentConsumer>update-db-artifact</knownContentConsumer> - <knownContentConsumer>create-missing-checksums</knownContentConsumer> - <knownContentConsumer>update-db-repository-metadata</knownContentConsumer> - <knownContentConsumer>validate-checksum</knownContentConsumer> - <knownContentConsumer>validate-signature</knownContentConsumer> - <knownContentConsumer>index-content</knownContentConsumer> - <knownContentConsumer>auto-remove</knownContentConsumer> - <knownContentConsumer>auto-rename</knownContentConsumer> - </knownContentConsumers> - <invalidContentConsumers> - <invalidContentConsumer>update-db-bad-content</invalidContentConsumer> - </invalidContentConsumers> - </repositoryScanning> - - <databaseScanning> - <cronExpression>0 0 * * * ?</cronExpression> - <unprocessedConsumers> - <unprocessedConsumer>test-db-unprocessed</unprocessedConsumer> - <unprocessedConsumer>index-artifact</unprocessedConsumer> - <unprocessedConsumer>update-db-project</unprocessedConsumer> - <unprocessedConsumer>validate-repository-metadata</unprocessedConsumer> - <unprocessedConsumer>index-archive-toc</unprocessedConsumer> - <unprocessedConsumer>update-db-bytecode-stats</unprocessedConsumer> - <unprocessedConsumer>index-public-methods</unprocessedConsumer> - </unprocessedConsumers> - <cleanupConsumers> - <cleanupConsumer>test-db-cleanup</cleanupConsumer> - </cleanupConsumers> - </databaseScanning> - -</configuration> diff --git a/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom b/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom deleted file mode 100644 index 90ae915e6..000000000 --- a/archiva-modules/archiva-database/src/test/resources/projects/maven-shared-jar-1.0-SNAPSHOT.pom +++ /dev/null @@ -1,229 +0,0 @@ -<?xml version="1.0" ?> - -<!-- - ~ 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.shared</groupId> - <artifactId>maven-shared-components</artifactId> - <version>3</version> - </parent> - - <artifactId>maven-shared-jar</artifactId> - <packaging>jar</packaging> - <version>1.0-SNAPSHOT</version> - - <name>Maven Shared Jar Utils</name> - - <scm> - <connection>scm:svn:http://svn.apache.org/repos/asf/maven/sandbox/maven-shared-jar</connection> - <developerConnection>scm:svn:https://svn.apache.org/repos/asf/maven/sandbox/maven-shared-jar</developerConnection> - <url>http://svn.apache.org/viewcvs.cgi/maven/sandbox/maven-shared-jar</url> - </scm> - - <organization> - <name>Apache</name> - </organization> - - <issueManagement> - <system>jira</system> - </issueManagement> - - <ciManagement> - <system>continuum</system> - </ciManagement> - - <developers> - <developer> - <id>joakime</id> - <email>joakime@apache.org</email> - <name>Joakim Erdfelt</name> - </developer> - </developers> - - <contributors> - <contributor> - <name>Someone Else</name> - </contributor> - </contributors> - - <licenses> - <license> - <url>http://www.apache.org/licenses/LICENSE-2.0</url> - </license> - </licenses> - - <mailingLists> - <mailingList> - <name>Shared Mailing List</name> - </mailingList> - </mailingLists> - - <build> - <plugins> - <plugin> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-maven-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>descriptor</goal> - </goals> - </execution> - </executions> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>cobertura-maven-plugin</artifactId> - <executions> - <execution> - <goals> - <goal>clean</goal> - </goals> - </execution> - </executions> - </plugin> - </plugins> - <extensions> - <extension> - <groupId>org.apache.maven.wagon</groupId> - <artifactId>wagon-webdav</artifactId> - <version>1.0-beta-2</version> - </extension> - </extensions> - </build> - - <reporting> - <plugins> - <plugin> - <artifactId>maven-project-info-reports-plugin</artifactId> - </plugin> - <plugin> - <artifactId>maven-javadoc-plugin</artifactId> - </plugin> - <plugin> - <artifactId>maven-surefire-report-plugin</artifactId> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>changelog-maven-plugin</artifactId> - <!-- Changelog has been moved to org.apache.maven.plugins - Need to adjust this location in the future to point to - the finalized copy of this plugin. - <artifactId>maven-changelog-plugin</artifactId> - --> - </plugin> - <plugin> - <artifactId>maven-jxr-plugin</artifactId> - </plugin> - <plugin> - <artifactId>maven-checkstyle-plugin</artifactId> - </plugin> - <plugin> - <artifactId>maven-pmd-plugin</artifactId> - <configuration> - <linkXref>true</linkXref> - <rulesets> - <ruleset>rulesets/basic.xml</ruleset> - <ruleset>rulesets/codesize.xml</ruleset> - <ruleset>rulesets/controversial.xml</ruleset> - <ruleset>rulesets/coupling.xml</ruleset> - <ruleset>rulesets/finalizers.xml</ruleset> - <ruleset>rulesets/imports.xml</ruleset> - <ruleset>rulesets/junit.xml</ruleset> - <ruleset>rulesets/logging-jakarta-commons.xml</ruleset> - <ruleset>rulesets/naming.xml</ruleset> - <ruleset>rulesets/optimizations.xml</ruleset> - <ruleset>rulesets/strictexception.xml</ruleset> - <ruleset>rulesets/strings.xml</ruleset> - <ruleset>rulesets/sunsecure.xml</ruleset> - <ruleset>rulesets/unusedcode.xml</ruleset> - </rulesets> - </configuration> - </plugin> - <plugin> - <groupId>org.codehaus.mojo</groupId> - <artifactId>cobertura-maven-plugin</artifactId> - </plugin> - </plugins> - </reporting> - - <repositories> - <repository> - <id>snapshots.codehaus</id> - <url>http://snapshots.repository.codehaus.org/</url> - <releases> - <enabled>false</enabled> - </releases> - <snapshots> - <enabled>true</enabled> - </snapshots> - </repository> - </repositories> - - <dependencyManagement> - <dependencies> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-model</artifactId> - <version>2.0.5</version> - </dependency> - </dependencies> - </dependencyManagement> - - <dependencies> - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-model</artifactId> - <scope>compile</scope> - </dependency> - - <dependency> - <groupId>org.apache.maven</groupId> - <artifactId>maven-artifact-manager</artifactId> - <version>2.0.2</version> - <scope>compile</scope> - </dependency> - - <dependency> - <groupId>org.codehaus.plexus</groupId> - <artifactId>plexus-digest</artifactId> - <version>1.0</version> - </dependency> - - <dependency> - <groupId>org.apache.bcel</groupId> - <artifactId>bcel</artifactId> - <version>5.2</version> - <scope>compile</scope> - </dependency> - - <dependency> - <groupId>commons-collections</groupId> - <artifactId>commons-collections</artifactId> - <version>3.1</version> - <scope>compile</scope> - </dependency> - - </dependencies> - -</project> diff --git a/archiva-modules/archiva-web/archiva-webapp/pom.xml b/archiva-modules/archiva-web/archiva-webapp/pom.xml index 6695cd840..b39989c85 100644 --- a/archiva-modules/archiva-web/archiva-webapp/pom.xml +++ b/archiva-modules/archiva-web/archiva-webapp/pom.xml @@ -51,10 +51,6 @@ </dependency> <dependency> <groupId>org.apache.archiva</groupId> - <artifactId>archiva-database</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> <artifactId>archiva-repository-layer</artifactId> </dependency> <dependency> @@ -67,10 +63,6 @@ </dependency> <dependency> <groupId>org.apache.archiva</groupId> - <artifactId>archiva-database-consumers</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> <artifactId>archiva-metadata-consumer</artifactId> <version>1.3-SNAPSHOT</version> <scope>runtime</scope> diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java index 79ca76474..6994e9655 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/DeleteArtifactAction.java @@ -24,6 +24,7 @@ import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collection; import java.util.Collections; import java.util.Date; import java.util.List; @@ -33,14 +34,12 @@ import com.opensymphony.xwork2.Preparable; import com.opensymphony.xwork2.Validateable; import org.apache.archiva.checksum.ChecksumAlgorithm; import org.apache.archiva.checksum.ChecksummedFile; +import org.apache.archiva.metadata.model.ArtifactMetadata; +import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.maven.archiva.common.utils.VersionComparator; import org.apache.maven.archiva.common.utils.VersionUtil; import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.constraints.ArtifactVersionsConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; import org.apache.maven.archiva.model.ArchivaRepositoryMetadata; import org.apache.maven.archiva.model.VersionedReference; import org.apache.maven.archiva.repository.ContentNotFoundException; @@ -62,7 +61,7 @@ import org.apache.maven.archiva.security.UserRepositories; /** * Delete an artifact. Metadata will be updated if one exists, otherwise it would be created. - * + * * @plexus.component role="com.opensymphony.xwork2.Action" role-hint="deleteArtifactAction" instantiation-strategy="per-lookup" */ public class DeleteArtifactAction @@ -110,14 +109,16 @@ public class DeleteArtifactAction private RepositoryContentFactory repositoryFactory; /** - * @plexus.requirement role-hint="jdo" + * @plexus.requirement role="org.apache.maven.archiva.repository.events.RepositoryListener" */ - private ArtifactDAO artifactDAO; - - /** @plexus.requirement role="org.apache.maven.archiva.repository.events.RepositoryListener" */ private List<RepositoryListener> listeners; - private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[] { ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5 }; + private ChecksumAlgorithm[] algorithms = new ChecksumAlgorithm[]{ChecksumAlgorithm.SHA1, ChecksumAlgorithm.MD5}; + + /** + * @plexus.requirement + */ + private MetadataRepository metadataRepository; public String getGroupId() { @@ -217,6 +218,7 @@ public class DeleteArtifactAction throw new ContentNotFoundException( groupId + ":" + artifactId + ":" + version ); } + // TODO: this should be in the storage mechanism so that it is all tied together // delete from file system repository.deleteVersion( ref ); @@ -225,40 +227,31 @@ public class DeleteArtifactAction updateMetadata( metadata, metadataFile, lastUpdatedTimestamp ); - ArtifactVersionsConstraint constraint = - new ArtifactVersionsConstraint( repositoryId, groupId, artifactId, false ); - List<ArchivaArtifact> artifacts = null; + Collection<ArtifactMetadata> artifacts = + metadataRepository.getArtifacts( repositoryId, groupId, artifactId, version ); - try + for ( ArtifactMetadata artifact : artifacts ) { - artifacts = artifactDAO.queryArtifacts( constraint ); - - if ( artifacts != null ) + if ( artifact.getVersion().equals( version ) ) { - for ( ArchivaArtifact artifact : artifacts ) + metadataRepository.deleteArtifact( artifact.getRepositoryId(), artifact.getNamespace(), + artifact.getProject(), artifact.getVersion(), + artifact.getId() ); + + // TODO: move into the metadata repository proper - need to differentiate attachment of + // repository metadata to an artifact + for ( RepositoryListener listener : listeners ) { - if ( artifact.getVersion().equals( version ) ) - { - for ( RepositoryListener listener : listeners ) - { - listener.deleteArtifact( repository, artifact ); - } - } + listener.deleteArtifact( repository.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion(), artifact.getId() ); } } } - catch ( ArchivaDatabaseException e ) - { - addActionError( "Error occurred while cleaning up database: " + e.getMessage() ); - return ERROR; - } - String msg = - "Artifact \'" + groupId + ":" + artifactId + ":" + version + - "\' was successfully deleted from repository \'" + repositoryId + "\'"; + String msg = "Artifact \'" + groupId + ":" + artifactId + ":" + version + + "\' was successfully deleted from repository \'" + repositoryId + "\'"; - triggerAuditEvent( repositoryId, groupId + ":" + artifactId + ":" + version, - AuditEvent.REMOVE_FILE ); + triggerAuditEvent( repositoryId, groupId + ":" + artifactId + ":" + version, AuditEvent.REMOVE_FILE ); addActionMessage( msg ); @@ -302,7 +295,7 @@ public class DeleteArtifactAction /** * Update artifact level metadata. Creates one if metadata does not exist after artifact deletion. - * + * * @param metadata */ private void updateMetadata( ArchivaRepositoryMetadata metadata, File metadataFile, Date lastUpdatedTimestamp ) diff --git a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java index 73738a6b5..237a1936b 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/main/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryAction.java @@ -24,17 +24,12 @@ import java.util.List; import java.util.Map; import com.opensymphony.xwork2.Preparable; +import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; import org.apache.commons.lang.StringUtils; import org.apache.maven.archiva.configuration.Configuration; import org.apache.maven.archiva.configuration.ManagedRepositoryConfiguration; import org.apache.maven.archiva.configuration.ProxyConnectorConfiguration; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.database.constraints.ArtifactsByRepositoryConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; import org.apache.maven.archiva.repository.audit.AuditEvent; import org.codehaus.plexus.redback.role.RoleManagerException; @@ -53,14 +48,14 @@ public class DeleteManagedRepositoryAction private String repoid; /** - * @plexus.requirement role-hint="jdo" + * @plexus.requirement */ - private ArtifactDAO artifactDao; + private RepositoryStatisticsManager repositoryStatisticsManager; /** * @plexus.requirement */ - private RepositoryStatisticsManager repositoryStatisticsManager; + private MetadataRepository metadataRepository; public void prepare() { @@ -128,17 +123,12 @@ public class DeleteManagedRepositoryAction addActionError( "Unable to delete repository: " + e.getMessage() ); result = ERROR; } - catch ( ArchivaDatabaseException e ) - { - addActionError( "Unable to delete repositoy: " + e.getMessage() ); - result = ERROR; - } return result; } private void cleanupRepositoryData( ManagedRepositoryConfiguration cleanupRepository ) - throws RoleManagerException, ArchivaDatabaseException + throws RoleManagerException { removeRepositoryRoles( cleanupRepository ); cleanupDatabase( cleanupRepository.getId() ); @@ -169,31 +159,8 @@ public class DeleteManagedRepositoryAction } private void cleanupDatabase( String repoId ) - throws ArchivaDatabaseException { - Constraint constraint = new ArtifactsByRepositoryConstraint( repoId ); - - List<ArchivaArtifact> artifacts = artifactDao.queryArtifacts( constraint ); - - for ( ArchivaArtifact artifact : artifacts ) - { - log.info( "Removing artifact " + artifact + " from the database." ); - try - { - artifactDao.deleteArtifact( artifact ); - - } - catch ( ObjectNotFoundException oe ) - { - log.info( "Project model of artifact " + artifact + " does not exist in the database. " + - "Moving on to the next artifact." ); - } - catch ( ArchivaDatabaseException ae ) - { - log.info( "Unable to delete artifact " + artifact + " from the database. " + - "Moving on to the next artifact." ); - } - } + metadataRepository.deleteRepository( repoId ); } public ManagedRepositoryConfiguration getRepository() @@ -221,8 +188,8 @@ public class DeleteManagedRepositoryAction this.repositoryStatisticsManager = repositoryStatisticsManager; } - public void setArtifactDao( ArtifactDAO artifactDao ) + public void setMetadataRepository( MetadataRepository metadataRepository ) { - this.artifactDao = artifactDao; + this.metadataRepository = metadataRepository; } } diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java index b883a4338..7f030a06c 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/archiva/metadata/repository/memory/TestMetadataRepository.java @@ -183,6 +183,16 @@ public class TestMetadataRepository return null; //To change body of implemented methods use File | Settings | File Templates. } + public void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + + public void deleteRepository( String repoId ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + public Collection<ArtifactMetadata> getArtifacts( String repoId, String namespace, String projectId, String projectVersion ) { diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java deleted file mode 100644 index ab419cbd8..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArchivaDAOStub.java +++ /dev/null @@ -1,54 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDAO; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.SimpleConstraint; - -/** - * Stub class for Archiva DAO to avoid having to set up a database for tests. - * - * @todo a mock would be better, but that won't play nicely with Plexus injection. - */ -public class ArchivaDAOStub - implements ArchivaDAO -{ - - private ArtifactDAO artifactDao; - - public List<?> query( SimpleConstraint constraint ) - { - throw new UnsupportedOperationException(); - } - - public ArtifactDAO getArtifactDAO() - { - return artifactDao; - } - - public void setArtifactDao( ArtifactDAO artifactDao ) - { - this.artifactDao = artifactDao; - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java deleted file mode 100644 index 3efb1ec6b..000000000 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/ArtifactDAOStub.java +++ /dev/null @@ -1,89 +0,0 @@ -package org.apache.maven.archiva.web.action.admin.repositories; - -/* - * Licensed to the Apache Software Foundation (ASF) under one - * or more contributor license agreements. See the NOTICE file - * distributed with this work for additional information - * regarding copyright ownership. The ASF licenses this file - * to you under the Apache License, Version 2.0 (the - * "License"); you may not use this file except in compliance - * with the License. You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import java.util.ArrayList; -import java.util.List; - -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.Constraint; -import org.apache.maven.archiva.database.ObjectNotFoundException; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; - -/** - * ArtifactDAOStub - * - * @version - */ -public class ArtifactDAOStub - implements ArtifactDAO -{ - - public ArchivaArtifact createArtifact( String groupId, String artifactId, String version, String classifier, - String type, String repositoryId ) - { - // TODO Auto-generated method stub - return null; - } - - public void deleteArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - - } - - public ArchivaArtifact getArtifact( String groupId, String artifactId, String version, String classifier, - String type, String repositoryId ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - - public List<ArchivaArtifact> queryArtifacts( Constraint constraint ) - throws ObjectNotFoundException, ArchivaDatabaseException - { - - List<ArchivaArtifact> artifacts = new ArrayList<ArchivaArtifact>(); - - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setGroupId( "org.apache.maven.archiva" ); - model.setArtifactId( "test-artifact" ); - model.setVersion( "1.0" ); - model.setType( "jar" ); - model.setRepositoryId( "repo-ident" ); - - ArchivaArtifact artifact = new ArchivaArtifact( model ); - artifacts.add( artifact ); - - return artifacts; - } - - public ArchivaArtifact saveArtifact( ArchivaArtifact artifact ) - throws ArchivaDatabaseException - { - // TODO Auto-generated method stub - return null; - } - -} diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java index 486fd0e53..d4f631679 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/admin/repositories/DeleteManagedRepositoryActionTest.java @@ -25,6 +25,7 @@ import java.util.Collections; import java.util.List; import com.opensymphony.xwork2.Action; +import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; import org.apache.maven.archiva.configuration.ArchivaConfiguration; import org.apache.maven.archiva.configuration.Configuration; @@ -88,7 +89,12 @@ public class DeleteManagedRepositoryActionTest repositoryStatisticsManager = (RepositoryStatisticsManager) repositoryStatisticsManagerControl.getMock(); action.setRepositoryStatisticsManager( repositoryStatisticsManager ); - action.setArtifactDao( new ArtifactDAOStub() ); + MockControl metadataRepositoryControl = MockControl.createControl( MetadataRepository.class ); + MetadataRepository metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock(); + metadataRepository.deleteRepository( REPO_ID ); + action.setMetadataRepository( metadataRepository ); + + metadataRepositoryControl.replay(); } public void testSecureActionBundle() diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/reports/GenerateReportActionTest.java b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/reports/GenerateReportActionTest.java index be7a07c4a..01c8a11e5 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/reports/GenerateReportActionTest.java +++ b/archiva-modules/archiva-web/archiva-webapp/src/test/java/org/apache/maven/archiva/web/action/reports/GenerateReportActionTest.java @@ -33,7 +33,6 @@ import org.apache.archiva.metadata.repository.stats.RepositoryStatistics; import org.apache.archiva.metadata.repository.stats.RepositoryStatisticsManager; import org.apache.archiva.reports.RepositoryProblemFacet; import org.apache.commons.io.IOUtils; -import org.apache.maven.archiva.database.ArchivaDatabaseException; import org.codehaus.plexus.spring.PlexusInSpringTestCase; import org.easymock.MockControl; @@ -247,7 +246,7 @@ public class GenerateReportActionTest } public void testDownloadStatisticsSingleRepo() - throws IOException, ArchivaDatabaseException + throws IOException { Date date = new Date(); repositoryStatisticsManagerControl.expectAndReturn( @@ -269,7 +268,7 @@ public class GenerateReportActionTest } public void testDownloadStatisticsMultipleRepos() - throws IOException, ArchivaDatabaseException + throws IOException { repositoryStatisticsManagerControl.expectAndReturn( repositoryStatisticsManager.getStatisticsInRange( SNAPSHOTS, null, null ), diff --git a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml index 1d3db6882..a38222d17 100644 --- a/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml +++ b/archiva-modules/archiva-web/archiva-webapp/src/test/resources/org/apache/maven/archiva/web/action/DeleteArtifactActionTest.xml @@ -20,22 +20,6 @@ <plexus> <components> <component> - <role>org.apache.maven.archiva.database.ArchivaDAO</role> - <role-hint>jdo</role-hint> - <implementation>org.apache.maven.archiva.web.action.admin.repositories.ArchivaDAOStub</implementation> - <requirements> - <requirement> - <role>org.apache.maven.archiva.configuration.ArchivaConfiguration</role> - <field-name>configuration</field-name> - </requirement> - </requirements> - </component> - <component> - <role>org.apache.maven.archiva.database.ArtifactDAO</role> - <role-hint>jdo</role-hint> - <implementation>org.apache.maven.archiva.web.action.admin.repositories.ArtifactDAOStub</implementation> - </component> - <component> <role>org.apache.maven.archiva.security.UserRepositories</role> <role-hint>default</role-hint> <implementation>org.apache.maven.archiva.security.UserRepositoriesStub</implementation> diff --git a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java index 021a6a030..26393052b 100644 --- a/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java +++ b/archiva-modules/archiva-web/archiva-webdav/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java @@ -144,6 +144,16 @@ public class TestMetadataRepository return null; //To change body of implemented methods use File | Settings | File Templates. } + public void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + + public void deleteRepository( String repoId ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + public Collection<ArtifactMetadata> getArtifacts( String repoId, String namespace, String projectId, String projectVersion ) { diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml index 56108f745..665095d74 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/pom.xml @@ -44,10 +44,6 @@ </dependency> <dependency> <groupId>org.apache.archiva</groupId> - <artifactId>archiva-database</artifactId> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> <artifactId>archiva-xmlrpc-api</artifactId> </dependency> <dependency> diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java index d1a2357d7..2149d7cb4 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/main/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImpl.java @@ -23,6 +23,8 @@ import java.util.ArrayList; import java.util.Collection; import java.util.List; +import org.apache.archiva.metadata.model.ArtifactMetadata; +import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.repository.scanner.RepositoryContentConsumers; import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; import org.apache.archiva.scheduler.repository.RepositoryTask; @@ -37,10 +39,6 @@ import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration; import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer; import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.database.ArchivaDatabaseException; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.database.constraints.ArtifactVersionsConstraint; -import org.apache.maven.archiva.model.ArchivaArtifact; import org.apache.maven.archiva.model.VersionedReference; import org.apache.maven.archiva.repository.ContentNotFoundException; import org.apache.maven.archiva.repository.ManagedRepositoryContent; @@ -68,23 +66,23 @@ public class AdministrationServiceImpl private RepositoryContentFactory repoFactory; - private ArtifactDAO artifactDAO; - private RepositoryArchivaTaskScheduler repositoryTaskScheduler; private Collection<RepositoryListener> listeners; + private MetadataRepository metadataRepository; + public AdministrationServiceImpl( ArchivaConfiguration archivaConfig, RepositoryContentConsumers repoConsumersUtil, - RepositoryContentFactory repoFactory, ArtifactDAO artifactDAO, + RepositoryContentFactory repoFactory, MetadataRepository metadataRepository, RepositoryArchivaTaskScheduler repositoryTaskScheduler, Collection<RepositoryListener> listeners ) { this.archivaConfiguration = archivaConfig; this.repoConsumersUtil = repoConsumersUtil; this.repoFactory = repoFactory; - this.artifactDAO = artifactDAO; this.repositoryTaskScheduler = repositoryTaskScheduler; this.listeners = listeners; + this.metadataRepository = metadataRepository; } /** @@ -142,7 +140,7 @@ public class AdministrationServiceImpl config.setRepositoryScanning( repoScanningConfig ); saveConfiguration( config ); - return new Boolean( true ); + return true; } /** @@ -151,6 +149,8 @@ public class AdministrationServiceImpl public Boolean deleteArtifact( String repoId, String groupId, String artifactId, String version ) throws Exception { + // TODO: remove duplication with web + Configuration config = archivaConfiguration.getConfiguration(); ManagedRepositoryConfiguration repoConfig = config.findManagedRepositoryById( repoId ); @@ -170,28 +170,23 @@ public class AdministrationServiceImpl // delete from file system repoContent.deleteVersion( ref ); - ArtifactVersionsConstraint constraint = new ArtifactVersionsConstraint( repoId, groupId, artifactId, false ); - List<ArchivaArtifact> artifacts = null; + Collection<ArtifactMetadata> artifacts = + metadataRepository.getArtifacts( repoId, groupId, artifactId, version ); - try - { - artifacts = artifactDAO.queryArtifacts( constraint ); - } - catch ( ArchivaDatabaseException e ) + for ( ArtifactMetadata artifact : artifacts ) { - throw new Exception( "Error occurred while cleaning up database." ); - } - - if ( artifacts != null ) - { - for ( ArchivaArtifact artifact : artifacts ) + if ( artifact.getVersion().equals( version ) ) { - if ( artifact.getVersion().equals( version ) ) + metadataRepository.deleteArtifact( artifact.getRepositoryId(), artifact.getNamespace(), + artifact.getProject(), artifact.getVersion(), + artifact.getId() ); + + // TODO: move into the metadata repository proper - need to differentiate attachment of + // repository metadata to an artifact + for ( RepositoryListener listener : listeners ) { - for ( RepositoryListener listener : listeners ) - { - listener.deleteArtifact( repoContent, artifact ); - } + listener.deleteArtifact( repoId, artifact.getNamespace(), artifact.getProject(), + artifact.getVersion(), artifact.getId() ); } } } @@ -209,7 +204,7 @@ public class AdministrationServiceImpl throw new Exception( "Repository exception occurred." ); } - return new Boolean( true ); + return true; } /** @@ -233,7 +228,7 @@ public class AdministrationServiceImpl repositoryTaskScheduler.queueTask( task ); - return new Boolean( true ); + return true; } /** diff --git a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java index 642e1be4b..310225772 100644 --- a/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java +++ b/archiva-modules/archiva-web/archiva-xmlrpc/archiva-xmlrpc-services/src/test/java/org/apache/archiva/web/xmlrpc/services/AdministrationServiceImplTest.java @@ -25,6 +25,8 @@ import java.util.ArrayList; import java.util.Collections; import java.util.List; +import org.apache.archiva.metadata.model.ArtifactMetadata; +import org.apache.archiva.metadata.repository.MetadataRepository; import org.apache.archiva.repository.scanner.RepositoryContentConsumers; import org.apache.archiva.scheduler.repository.RepositoryArchivaTaskScheduler; import org.apache.archiva.scheduler.repository.RepositoryTask; @@ -40,9 +42,6 @@ import org.apache.maven.archiva.configuration.RemoteRepositoryConfiguration; import org.apache.maven.archiva.configuration.RepositoryScanningConfiguration; import org.apache.maven.archiva.consumers.InvalidRepositoryContentConsumer; import org.apache.maven.archiva.consumers.KnownRepositoryContentConsumer; -import org.apache.maven.archiva.database.ArtifactDAO; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.model.ArchivaArtifactModel; import org.apache.maven.archiva.model.ArtifactReference; import org.apache.maven.archiva.repository.RepositoryContentFactory; import org.apache.maven.archiva.repository.content.ManagedDefaultRepositoryContent; @@ -74,8 +73,6 @@ public class AdministrationServiceImplTest private MockControl repositoryTaskSchedulerControl; - private MockControl databaseTaskSchedulerControl; - private RepositoryArchivaTaskScheduler repositoryTaskScheduler; // repository consumers @@ -100,16 +97,14 @@ public class AdministrationServiceImplTest private RepositoryContentFactory repositoryFactory; - private MockControl artifactDaoControl; - - private ArtifactDAO artifactDao; - private MockControl listenerControl; private RepositoryListener listener; - private MockControl cleanupConsumersControl; - + private MockControl metadataRepositoryControl; + + private MetadataRepository metadataRepository; + protected void setUp() throws Exception { @@ -140,15 +135,15 @@ public class AdministrationServiceImplTest repoFactoryControl = MockClassControl.createControl( RepositoryContentFactory.class ); repositoryFactory = ( RepositoryContentFactory ) repoFactoryControl.getMock(); - artifactDaoControl = MockControl.createControl( ArtifactDAO.class ); - artifactDao = ( ArtifactDAO ) artifactDaoControl.getMock(); + metadataRepositoryControl = MockControl.createControl( MetadataRepository.class ); + metadataRepository = (MetadataRepository) metadataRepositoryControl.getMock(); listenerControl = MockControl.createControl( RepositoryListener.class ); listener = (RepositoryListener) listenerControl.getMock(); service = new AdministrationServiceImpl( archivaConfig, repoConsumersUtil, repositoryFactory, - artifactDao, repositoryTaskScheduler, + metadataRepository, repositoryTaskScheduler, Collections.singletonList( listener ) ); } @@ -305,19 +300,23 @@ public class AdministrationServiceImplTest repoFactoryControl.expectAndReturn( repositoryFactory.getManagedRepositoryContent( "internal" ), repoContent ); - List<ArchivaArtifact> artifacts = getArtifacts(); - - artifactDao.queryArtifacts( null ); - artifactDaoControl.setMatcher( MockControl.ALWAYS_MATCHER ); - artifactDaoControl.setReturnValue( artifacts ); - - listener.deleteArtifact( repoContent, artifacts.get( 0 ) ); + List<ArtifactMetadata> artifacts = getArtifacts(); + ArtifactMetadata artifact = artifacts.get( 0 ); + + metadataRepositoryControl.expectAndReturn( + metadataRepository.getArtifacts( repoContent.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion() ), artifacts ); + metadataRepository.deleteArtifact( repoContent.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion(), artifact.getId() ); + + listener.deleteArtifact( repoContent.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion(), artifact.getId() ); listenerControl.setVoidCallable( 1 ); archivaConfigControl.replay(); configControl.replay(); repoFactoryControl.replay(); - artifactDaoControl.replay(); + metadataRepositoryControl.replay(); listenerControl.replay(); boolean success = service.deleteArtifact( "internal", "org.apache.archiva", "archiva-test", "1.0" ); @@ -326,7 +325,7 @@ public class AdministrationServiceImplTest archivaConfigControl.verify(); configControl.verify(); repoFactoryControl.verify(); - artifactDaoControl.verify(); + metadataRepositoryControl.verify(); listenerControl.verify(); assertFalse( new File( managedRepo.getLocation(), "org/apache/archiva/archiva-test/1.0" ).exists() ); @@ -356,19 +355,23 @@ public class AdministrationServiceImplTest recordInManagedLegacyRepoContent( fileTypesControl, fileTypes, pathParserControl, parser ); - List<ArchivaArtifact> artifacts = getArtifacts(); - - artifactDao.queryArtifacts( null ); - artifactDaoControl.setMatcher( MockControl.ALWAYS_MATCHER ); - artifactDaoControl.setReturnValue( artifacts ); - - listener.deleteArtifact( repoContent, artifacts.get( 0 ) ); + List<ArtifactMetadata> artifacts = getArtifacts(); + ArtifactMetadata artifact = artifacts.get( 0 ); + + metadataRepositoryControl.expectAndReturn( + metadataRepository.getArtifacts( repoContent.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion() ), artifacts ); + metadataRepository.deleteArtifact( repoContent.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion(), artifact.getId() ); + + listener.deleteArtifact( repoContent.getId(), artifact.getNamespace(), artifact.getProject(), + artifact.getVersion(), artifact.getId() ); listenerControl.setVoidCallable( 1 ); archivaConfigControl.replay(); configControl.replay(); repoFactoryControl.replay(); - artifactDaoControl.replay(); + metadataRepositoryControl.replay(); listenerControl.replay(); fileTypesControl.replay(); pathParserControl.replay(); @@ -379,7 +382,7 @@ public class AdministrationServiceImplTest archivaConfigControl.verify(); configControl.verify(); repoFactoryControl.verify(); - artifactDaoControl.verify(); + metadataRepositoryControl.verify(); listenerControl.verify(); fileTypesControl.verify(); pathParserControl.verify(); @@ -576,8 +579,8 @@ public class AdministrationServiceImplTest assertNotNull( repos ); assertEquals( 2, repos.size() ); - assertManagedRepo( ( ManagedRepository ) repos.get( 0 ), managedRepos.get( 0 ) ); - assertManagedRepo( ( ManagedRepository ) repos.get( 1 ), managedRepos.get( 1 ) ); + assertManagedRepo( repos.get( 0 ), managedRepos.get( 0 ) ); + assertManagedRepo( repos.get( 1 ), managedRepos.get( 1 ) ); } public void testGetAllRemoteRepositories() @@ -601,8 +604,8 @@ public class AdministrationServiceImplTest assertNotNull( repos ); assertEquals( 2, repos.size() ); - assertRemoteRepo( (RemoteRepository) repos.get( 0 ), remoteRepos.get( 0 ) ); - assertRemoteRepo( (RemoteRepository) repos.get( 1 ), remoteRepos.get( 1 ) ); + assertRemoteRepo( repos.get( 0 ), remoteRepos.get( 0 ) ); + assertRemoteRepo( repos.get( 1 ), remoteRepos.get( 1 ) ); } /* private methods */ @@ -708,18 +711,16 @@ public class AdministrationServiceImplTest pathParserControl.expectAndReturn( parser.toArtifactReference( at11j ), aRef ); } - private List<ArchivaArtifact> getArtifacts() + private List<ArtifactMetadata> getArtifacts() { - List<ArchivaArtifact> artifacts = new ArrayList<ArchivaArtifact>(); - - ArchivaArtifactModel model = new ArchivaArtifactModel(); - model.setRepositoryId( "internal" ); - model.setGroupId( "org.apache.archiva" ); - model.setArtifactId( "archiva-test" ); - model.setVersion( "1.0" ); - model.setType( "jar" ); - - ArchivaArtifact artifact = new ArchivaArtifact( model ); + List<ArtifactMetadata> artifacts = new ArrayList<ArtifactMetadata>(); + + ArtifactMetadata artifact = new ArtifactMetadata(); + artifact.setId( "archiva-test-1.0.jar" ); + artifact.setProject( "archiva-test" ); + artifact.setVersion( "1.0" ); + artifact.setNamespace( "org.apache.archiva" ); + artifact.setRepositoryId( "internal" ); artifacts.add( artifact ); return artifacts; } diff --git a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java index e02e2edd1..aa5882007 100644 --- a/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java +++ b/archiva-modules/metadata/metadata-repository-api/src/main/java/org/apache/archiva/metadata/repository/MetadataRepository.java @@ -66,4 +66,8 @@ public interface MetadataRepository Collection<String> getRepositories(); List<ArtifactMetadata> getArtifactsByChecksum( String repoId, String checksum ); + + void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ); + + void deleteRepository( String repoId ); } diff --git a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java index 6b21379cf..ea51c9e31 100644 --- a/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java +++ b/archiva-modules/plugins/maven2-repository/src/test/java/org/apache/archiva/metadata/repository/TestMetadataRepository.java @@ -104,4 +104,14 @@ public class TestMetadataRepository { return null; //To change body of implemented methods use File | Settings | File Templates. } + + public void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ) + { + //To change body of implemented methods use File | Settings | File Templates. + } + + public void deleteRepository( String repoId ) + { + //To change body of implemented methods use File | Settings | File Templates. + } }
\ No newline at end of file diff --git a/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java b/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java index 2406bebac..438be6015 100644 --- a/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java +++ b/archiva-modules/plugins/metadata-repository-file/src/main/java/org/apache/archiva/metadata/repository/file/FileMetadataRepository.java @@ -468,6 +468,45 @@ public class FileMetadataRepository return artifacts; } + public void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ) + { + File directory = new File( this.directory, repositoryId + "/" + namespace + "/" + project + "/" + version ); + + Properties properties = readOrCreateProperties( directory, PROJECT_VERSION_METADATA_KEY ); + + properties.remove( "artifact:updated:" + id ); + properties.remove( "artifact:whenGathered:" + id ); + properties.remove( "artifact:size:" + id ); + properties.remove( "artifact:md5:" + id ); + properties.remove( "artifact:sha1:" + id ); + properties.remove( "artifact:version:" + id ); + + try + { + writeProperties( properties, directory, PROJECT_VERSION_METADATA_KEY ); + } + catch ( IOException e ) + { + // TODO + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + } + + public void deleteRepository( String repoId ) + { + File directory = new File( this.directory, repoId ); + + try + { + FileUtils.deleteDirectory( directory ); + } + catch ( IOException e ) + { + // TODO + e.printStackTrace(); //To change body of catch statement use File | Settings | File Templates. + } + } + private void getArtifactsByChecksum( List<ArtifactMetadata> artifacts, String repositoryId, String ns, String checksum ) { diff --git a/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java b/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java index 932c64f75..ec501f3df 100644 --- a/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java +++ b/archiva-modules/plugins/metadata-repository-file/src/test/java/org/apache/archiva/metadata/repository/file/FileMetadataRepositoryTest.java @@ -436,6 +436,48 @@ public class FileMetadataRepositoryTest repository.getArtifactsByChecksum( TEST_REPO_ID, "not a checksum" ) ); } + public void testDeleteArtifact() + { + ArtifactMetadata artifact = createArtifact(); + repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact ); + + assertEquals( Collections.singletonList( artifact ), new ArrayList<ArtifactMetadata>( + repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ) ) ); + + repository.deleteArtifact( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION, artifact.getId() ); + + assertTrue( + repository.getArtifacts( TEST_REPO_ID, TEST_NAMESPACE, TEST_PROJECT, TEST_PROJECT_VERSION ).isEmpty() ); + } + + public void testDeleteRepository() + { + repository.updateNamespace( TEST_REPO_ID, TEST_NAMESPACE ); + + ProjectMetadata project1 = new ProjectMetadata(); + project1.setNamespace( TEST_NAMESPACE ); + project1.setId( "project1" ); + repository.updateProject( TEST_REPO_ID, project1 ); + ProjectMetadata project2 = new ProjectMetadata(); + project2.setNamespace( TEST_NAMESPACE ); + project2.setId( "project2" ); + repository.updateProject( TEST_REPO_ID, project2 ); + + ArtifactMetadata artifact1 = createArtifact(); + artifact1.setProject( "project1" ); + repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, "project1", TEST_PROJECT_VERSION, artifact1 ); + ArtifactMetadata artifact2 = createArtifact(); + artifact2.setProject( "project2" ); + repository.updateArtifact( TEST_REPO_ID, TEST_NAMESPACE, "project2", TEST_PROJECT_VERSION, artifact2 ); + + assertEquals( Arrays.asList( artifact1, artifact2 ), new ArrayList<ArtifactMetadata>( + repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ) ) ); + + repository.deleteRepository( TEST_REPO_ID ); + + assertTrue( repository.getArtifactsByDateRange( TEST_REPO_ID, null, null ).isEmpty() ); + } + private ProjectMetadata createProject() { return createProject( TEST_NAMESPACE ); diff --git a/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java b/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java index 5a9dd9855..c0a03c326 100644 --- a/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java +++ b/archiva-modules/plugins/problem-reports/src/main/java/org/apache/archiva/reports/RepositoryProblemEventListener.java @@ -20,8 +20,6 @@ package org.apache.archiva.reports; */ import org.apache.archiva.metadata.repository.MetadataRepository; -import org.apache.maven.archiva.model.ArchivaArtifact; -import org.apache.maven.archiva.repository.ManagedRepositoryContent; import org.apache.maven.archiva.repository.events.RepositoryListener; /** @@ -37,12 +35,10 @@ public class RepositoryProblemEventListener */ private MetadataRepository metadataRepository; - public void deleteArtifact( ManagedRepositoryContent repository, ArchivaArtifact artifact ) + public void deleteArtifact( String repositoryId, String namespace, String project, String version, String id ) { - String name = - RepositoryProblemFacet.createName( artifact.getGroupId(), artifact.getArtifactId(), artifact.getVersion(), - repository.toFile( artifact ).getName() ); + String name = RepositoryProblemFacet.createName( namespace, project, version, id ); - metadataRepository.removeMetadataFacet( repository.getId(), RepositoryProblemFacet.FACET_ID, name ); + metadataRepository.removeMetadataFacet( repositoryId, RepositoryProblemFacet.FACET_ID, name ); } }
\ No newline at end of file diff --git a/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java b/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java index bb050b503..e4da83773 100644 --- a/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java +++ b/archiva-modules/plugins/repository-statistics/src/test/java/org/apache/archiva/metadata/repository/stats/RepositoryStatisticsManagerTest.java @@ -456,6 +456,8 @@ public class RepositoryStatisticsManagerTest stats.setTotalProjectCount( 5 ); stats.setTotalGroupCount( 4 ); stats.setTotalFileCount( 56345 ); + stats.setTotalCountForType( "jar", 10 ); + stats.setTotalCountForType( "pom", 10 ); return stats; } @@ -513,13 +515,13 @@ public class RepositoryStatisticsManagerTest Arrays.asList( "1.3-SNAPSHOT", "1.3" ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getArtifacts( TEST_REPO_ID, "org.apache.archiva", "metadata-model", "1.3-SNAPSHOT" ), - Arrays.asList( createArtifact( "org.apache.archiva", "metadata-repository-api", "1.3-SNAPSHOT", "jar" ), - createArtifact( "org.apache.archiva", "metadata-repository-api", "1.3-SNAPSHOT", + Arrays.asList( createArtifact( "org.apache.archiva", "metadata-model", "1.3-SNAPSHOT", "jar" ), + createArtifact( "org.apache.archiva", "metadata-model", "1.3-SNAPSHOT", "pom" ) ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getArtifacts( TEST_REPO_ID, "org.apache.archiva", "metadata-model", "1.3" ), - Arrays.asList( createArtifact( "org.apache.archiva", "metadata-repository-api", "1.3", "jar" ), - createArtifact( "org.apache.archiva", "metadata-repository-api", "1.3", "pom" ) ) ); + Arrays.asList( createArtifact( "org.apache.archiva", "metadata-model", "1.3", "jar" ), + createArtifact( "org.apache.archiva", "metadata-model", "1.3", "pom" ) ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getNamespaces( TEST_REPO_ID, "org.apache.maven" ), Arrays.asList() ); metadataRepositoryControl.expectAndReturn( @@ -529,8 +531,8 @@ public class RepositoryStatisticsManagerTest Arrays.asList( "2.2.1" ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getArtifacts( TEST_REPO_ID, "org.apache.maven", "maven-model", "2.2.1" ), - Arrays.asList( createArtifact( "org.apache.archiva", "metadata-repository-api", "2.2.1", "jar" ), - createArtifact( "org.apache.archiva", "metadata-repository-api", "2.2.1", "pom" ) ) ); + Arrays.asList( createArtifact( "org.apache.archiva", "maven-model", "2.2.1", "jar" ), + createArtifact( "org.apache.archiva", "maven-model", "2.2.1", "pom" ) ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getNamespaces( TEST_REPO_ID, "org.codehaus" ), Arrays.asList( "plexus" ) ); metadataRepositoryControl.expectAndReturn( metadataRepository.getProjects( TEST_REPO_ID, "org" ), diff --git a/archiva-modules/pom.xml b/archiva-modules/pom.xml index 49a548b2f..262af917b 100644 --- a/archiva-modules/pom.xml +++ b/archiva-modules/pom.xml @@ -29,7 +29,6 @@ <url>http://archiva.apache.org/ref/${project.version}</url> <modules> <module>archiva-base</module> - <module>archiva-database</module> <module>archiva-scheduler</module> <module>archiva-web</module> <module>metadata</module> @@ -361,16 +361,6 @@ </dependency> <dependency> <groupId>org.apache.archiva</groupId> - <artifactId>archiva-database</artifactId> - <version>1.3-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> - <artifactId>archiva-database-consumers</artifactId> - <version>1.3-SNAPSHOT</version> - </dependency> - <dependency> - <groupId>org.apache.archiva</groupId> <artifactId>archiva-indexer</artifactId> <version>1.3-SNAPSHOT</version> </dependency> |