Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorDJ Houghton2010-08-26 12:56:02 +0000
committerDJ Houghton2010-08-26 12:56:02 +0000
commit8c91ab7a6145a1176d8f593f209369a559aba8a9 (patch)
treeb3d00dc7b4109806a9f5dd846fab7b340d64d50d
parentcd254bc15261f58490302ec42031775abc7f593f (diff)
downloadrt.equinox.p2-8c91ab7a6145a1176d8f593f209369a559aba8a9.tar.gz
rt.equinox.p2-8c91ab7a6145a1176d8f593f209369a559aba8a9.tar.xz
rt.equinox.p2-8c91ab7a6145a1176d8f593f209369a559aba8a9.zip
Bug 244628 - [api] [repository] artifact repos do not support bulk remove
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepository.java14
-rw-r--r--bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java19
-rw-r--r--bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/CachingArtifactRepository.java10
-rw-r--r--bundles/org.eclipse.equinox.p2.engine/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactRepository.java16
-rw-r--r--bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/spi/AbstractArtifactRepository.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractWrappedArtifactRepository.java8
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java10
-rw-r--r--bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/TestArtifactRepository.java10
-rw-r--r--bundles/org.eclipse.equinox.p2.updatesite/META-INF/MANIFEST.MF2
-rw-r--r--bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/artifact/UpdateSiteArtifactRepository.java8
15 files changed, 116 insertions, 5 deletions
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF
index 2cce6bc62..8ce0a38ab 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.artifact.repository;singleton:=true
-Bundle-Version: 1.1.0.qualifier
+Bundle-Version: 1.1.100.qualifier
Bundle-Activator: org.eclipse.equinox.internal.p2.artifact.repository.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepository.java
index 928d34b19..c726f294f 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/CompositeArtifactRepository.java
@@ -246,6 +246,13 @@ public class CompositeArtifactRepository extends AbstractArtifactRepository impl
/**
* Composite repositories should be unable to directly modify their child repositories
*/
+ public void removeDescriptors(IArtifactKey[] keys) {
+ throw new UnsupportedOperationException(Messages.exception_unsupportedRemoveFromComposite);
+ }
+
+ /**
+ * Composite repositories should be unable to directly modify their child repositories
+ */
public void removeDescriptor(IArtifactDescriptor descriptor) {
throw new UnsupportedOperationException(Messages.exception_unsupportedRemoveFromComposite);
}
@@ -253,6 +260,13 @@ public class CompositeArtifactRepository extends AbstractArtifactRepository impl
/**
* Composite repositories should be unable to directly modify their child repositories
*/
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ throw new UnsupportedOperationException(Messages.exception_unsupportedRemoveFromComposite);
+ }
+
+ /**
+ * Composite repositories should be unable to directly modify their child repositories
+ */
public synchronized void removeAll() {
throw new UnsupportedOperationException(Messages.exception_unsupportedRemoveFromComposite);
}
diff --git a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
index 465b29d0f..7e7494c34 100644
--- a/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.artifact.repository/src/org/eclipse/equinox/internal/p2/artifact/repository/simple/SimpleArtifactRepository.java
@@ -885,6 +885,25 @@ public class SimpleArtifactRepository extends AbstractArtifactRepository impleme
save();
}
+ public synchronized void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ boolean changed = false;
+ for (IArtifactDescriptor descriptor : descriptors)
+ changed |= doRemoveArtifact(descriptor);
+ if (changed)
+ save();
+ }
+
+ public synchronized void removeDescriptors(IArtifactKey[] keys) {
+ boolean changed = false;
+ for (IArtifactKey key : keys) {
+ IArtifactDescriptor[] descriptors = getArtifactDescriptors(key);
+ for (IArtifactDescriptor descriptor : descriptors)
+ changed |= doRemoveArtifact(descriptor);
+ }
+ if (changed)
+ save();
+ }
+
public synchronized void removeDescriptor(IArtifactKey key) {
IArtifactDescriptor[] toRemove = getArtifactDescriptors(key);
boolean changed = false;
diff --git a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/CachingArtifactRepository.java b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/CachingArtifactRepository.java
index 574a85657..05720ff83 100644
--- a/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/CachingArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.directorywatcher/src/org/eclipse/equinox/internal/provisional/p2/directorywatcher/CachingArtifactRepository.java
@@ -156,6 +156,16 @@ public class CachingArtifactRepository implements IArtifactRepository, IFileArti
doRemoveArtifact(toRemove[i]);
}
+ public synchronized void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ for (IArtifactDescriptor descriptor : descriptors)
+ doRemoveArtifact(descriptor);
+ }
+
+ public synchronized void removeDescriptors(IArtifactKey[] keys) {
+ for (IArtifactKey key : keys)
+ removeDescriptor(key);
+ }
+
/**
* Removes the given descriptor and returns <code>true</code> if and only if the
* descriptor existed in the repository, and was successfully removed.
diff --git a/bundles/org.eclipse.equinox.p2.engine/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.engine/META-INF/MANIFEST.MF
index ed9ab240c..eb461ba05 100644
--- a/bundles/org.eclipse.equinox.p2.engine/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.engine/META-INF/MANIFEST.MF
@@ -20,7 +20,7 @@ Require-Bundle: org.eclipse.equinox.common,
org.eclipse.equinox.registry,
org.eclipse.equinox.p2.metadata.repository;bundle-version="1.0.100",
org.eclipse.core.jobs;bundle-version="[3.4.0,4.0.0)",
- org.eclipse.equinox.p2.repository;bundle-version="[2.0.0,2.1.0)",
+ org.eclipse.equinox.p2.repository;bundle-version="[2.0.0,2.2.0)",
org.eclipse.equinox.p2.metadata;bundle-version="[2.0.0,2.2.0)",
org.eclipse.equinox.p2.core;bundle-version="[2.0.0,2.1.0)"
Eclipse-RegisterBuddy: org.eclipse.equinox.p2.metadata.repository
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF
index 84f75ec97..a3effadd6 100644
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.extensionlocation/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.extensionlocation;singleton:=true
-Bundle-Version: 1.2.0.qualifier
+Bundle-Version: 1.2.100.qualifier
Bundle-Activator: org.eclipse.equinox.internal.p2.extensionlocation.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
index 984f56314..5bdb8ad1f 100644
--- a/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.extensionlocation/src/org/eclipse/equinox/internal/p2/extensionlocation/ExtensionLocationArtifactRepository.java
@@ -167,6 +167,14 @@ public class ExtensionLocationArtifactRepository extends AbstractRepository<IArt
throw new UnsupportedOperationException();
}
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ throw new UnsupportedOperationException();
+ }
+
+ public void removeDescriptors(IArtifactKey[] keys) {
+ throw new UnsupportedOperationException();
+ }
+
public boolean contains(IArtifactDescriptor descriptor) {
ensureInitialized();
return artifactRepository.contains(descriptor);
diff --git a/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF
index 63428ef07..2fdf3fce4 100644
--- a/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.repository/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.repository;singleton:=true
-Bundle-Version: 2.0.0.qualifier
+Bundle-Version: 2.1.0.qualifier
Bundle-Activator: org.eclipse.equinox.internal.p2.repository.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactRepository.java b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactRepository.java
index ae46654d5..3e68f2b16 100644
--- a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/IArtifactRepository.java
@@ -167,6 +167,22 @@ public interface IArtifactRepository extends IRepository<IArtifactKey> {
public void removeDescriptor(IArtifactKey key);
/**
+ * Remove the given list of artifact descriptors and their corresponding content
+ * in this repository.
+ * @param descriptors the list of descriptors to remove
+ * @since 2.1
+ */
+ public void removeDescriptors(IArtifactDescriptor[] descriptors);
+
+ /**
+ * Remove the given list of keys and all related content and descriptors from this
+ * repository.
+ * @param keys
+ * @since 2.1
+ */
+ public void removeDescriptors(IArtifactKey[] keys);
+
+ /**
* Executes a runnable against this repository. It is up to the repository
* implementor to determine what "batch process" means, for example, it may mean
* that the repository index is not stored until after the runnable completes.
diff --git a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/spi/AbstractArtifactRepository.java b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/spi/AbstractArtifactRepository.java
index 692c66fab..60626e4d7 100644
--- a/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/spi/AbstractArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.repository/src/org/eclipse/equinox/p2/repository/artifact/spi/AbstractArtifactRepository.java
@@ -63,10 +63,18 @@ public abstract class AbstractArtifactRepository extends AbstractRepository<IArt
assertModifiable();
}
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ assertModifiable();
+ }
+
public void removeDescriptor(IArtifactKey key) {
assertModifiable();
}
+ public void removeDescriptors(IArtifactKey[] keys) {
+ assertModifiable();
+ }
+
public void removeAll() {
assertModifiable();
}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractWrappedArtifactRepository.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractWrappedArtifactRepository.java
index e66b2f641..a1402b87e 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractWrappedArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/AbstractWrappedArtifactRepository.java
@@ -79,6 +79,14 @@ public class AbstractWrappedArtifactRepository implements IArtifactRepository {
delegate.removeDescriptor(key);
}
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ delegate.removeDescriptors(descriptors);
+ }
+
+ public void removeDescriptors(IArtifactKey[] keys) {
+ delegate.removeDescriptors(keys);
+ }
+
public String getDescription() {
return delegate.getDescription();
}
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
index 0a3815173..0d2cd95f1 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/TestArtifactRepository.java
@@ -167,6 +167,16 @@ public class TestArtifactRepository extends AbstractArtifactRepository {
removeDescriptor(descriptor.getArtifactKey());
}
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ for (IArtifactDescriptor descriptor : descriptors)
+ removeDescriptor(descriptor);
+ }
+
+ public void removeDescriptors(IArtifactKey[] keys) {
+ for (IArtifactKey key : keys)
+ removeDescriptor(key);
+ }
+
public void removeDescriptor(IArtifactKey key) {
for (IArtifactDescriptor nextDescriptor : artifactDescriptors) {
if (key.equals(nextDescriptor.getArtifactKey()))
diff --git a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/TestArtifactRepository.java b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/TestArtifactRepository.java
index 7b1ae7bea..6b50cf744 100644
--- a/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/TestArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.tests/src/org/eclipse/equinox/p2/tests/publisher/TestArtifactRepository.java
@@ -209,6 +209,16 @@ public class TestArtifactRepository implements IArtifactRepository {
}
}
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ for (IArtifactDescriptor descriptor : descriptors)
+ removeDescriptor(descriptor);
+ }
+
+ public void removeDescriptors(IArtifactKey[] keys) {
+ for (IArtifactKey key : keys)
+ removeDescriptor(key);
+ }
+
public String getDescription() {
return description;
}
diff --git a/bundles/org.eclipse.equinox.p2.updatesite/META-INF/MANIFEST.MF b/bundles/org.eclipse.equinox.p2.updatesite/META-INF/MANIFEST.MF
index 8273b9e72..0c80433f3 100644
--- a/bundles/org.eclipse.equinox.p2.updatesite/META-INF/MANIFEST.MF
+++ b/bundles/org.eclipse.equinox.p2.updatesite/META-INF/MANIFEST.MF
@@ -2,7 +2,7 @@ Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: %pluginName
Bundle-SymbolicName: org.eclipse.equinox.p2.updatesite;singleton:=true
-Bundle-Version: 1.0.200.qualifier
+Bundle-Version: 1.0.300.qualifier
Bundle-Activator: org.eclipse.equinox.internal.p2.updatesite.Activator
Bundle-Vendor: %providerName
Bundle-Localization: plugin
diff --git a/bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/artifact/UpdateSiteArtifactRepository.java b/bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/artifact/UpdateSiteArtifactRepository.java
index 414c28492..1d9733b96 100644
--- a/bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/artifact/UpdateSiteArtifactRepository.java
+++ b/bundles/org.eclipse.equinox.p2.updatesite/src/org/eclipse/equinox/internal/p2/updatesite/artifact/UpdateSiteArtifactRepository.java
@@ -81,10 +81,18 @@ public class UpdateSiteArtifactRepository implements IArtifactRepository {
throw new UnsupportedOperationException("Repository not modifiable: " + location); //$NON-NLS-1$
}
+ public void removeDescriptors(IArtifactDescriptor[] descriptors) {
+ throw new UnsupportedOperationException("Repository not modifiable: " + location); //$NON-NLS-1$
+ }
+
public void removeDescriptor(IArtifactKey key) {
throw new UnsupportedOperationException("Repository not modifiable: " + location); //$NON-NLS-1$
}
+ public void removeDescriptors(IArtifactKey[] keys) {
+ throw new UnsupportedOperationException("Repository not modifiable: " + location); //$NON-NLS-1$
+ }
+
public String getDescription() {
return delegate.getDescription();
}

Back to the top