Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSusan Franklin2008-03-11 02:35:55 +0000
committerSusan Franklin2008-03-11 02:35:55 +0000
commit45755006d88fdf60796dc0ca6611ebbd6227925c (patch)
tree2fe5772abdcd7bfdd299312fddd882826d2f2d06 /bundles/org.eclipse.equinox.p2.ui.admin
parent4d168c7500d33b91f2ca17d8a9ee49b51cc8eb4d (diff)
downloadrt.equinox.p2-45755006d88fdf60796dc0ca6611ebbd6227925c.tar.gz
rt.equinox.p2-45755006d88fdf60796dc0ca6611ebbd6227925c.tar.xz
rt.equinox.p2-45755006d88fdf60796dc0ca6611ebbd6227925c.zip
Bug 222156 - [ui] Can't add an artifact repository with the same URL than a metadata repo
Diffstat (limited to 'bundles/org.eclipse.equinox.p2.ui.admin')
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java1
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java28
-rw-r--r--bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties1
3 files changed, 28 insertions, 2 deletions
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
index 7b30d5c23..d7cdcc66d 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/ProvAdminUIMessages.java
@@ -24,6 +24,7 @@ public class ProvAdminUIMessages extends NLS {
// load message values from bundle file
NLS.initializeMessages(BUNDLE_NAME, ProvAdminUIMessages.class);
}
+ public static String AddArtifactRepositoryDialog_DuplicateURL;
public static String AddArtifactRepositoryDialog_OperationLabel;
public static String AddProfileDialog_Title;
public static String AddRepositoryDialog_InvalidURL;
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java
index 8787e3f65..ee1c521b6 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/dialogs/AddArtifactRepositoryDialog.java
@@ -11,10 +11,13 @@
package org.eclipse.equinox.internal.p2.ui.admin.dialogs;
import java.net.URL;
+import org.eclipse.core.runtime.*;
+import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIActivator;
import org.eclipse.equinox.internal.p2.ui.admin.ProvAdminUIMessages;
+import org.eclipse.equinox.internal.provisional.p2.core.ProvisionException;
import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.AddRepositoryDialog;
-import org.eclipse.equinox.internal.provisional.p2.ui.operations.AddArtifactRepositoryOperation;
-import org.eclipse.equinox.internal.provisional.p2.ui.operations.ProvisioningOperation;
+import org.eclipse.equinox.internal.provisional.p2.ui.dialogs.DefaultURLValidator;
+import org.eclipse.equinox.internal.provisional.p2.ui.operations.*;
import org.eclipse.swt.widgets.Shell;
/**
@@ -32,4 +35,25 @@ public class AddArtifactRepositoryDialog extends AddRepositoryDialog {
protected ProvisioningOperation getOperation(URL url) {
return new AddArtifactRepositoryOperation(ProvAdminUIMessages.AddArtifactRepositoryDialog_OperationLabel, url);
}
+
+ protected DefaultURLValidator createURLValidator() {
+ return new DefaultURLValidator() {
+ protected IStatus validateRepositoryURL(URL location, boolean contactRepositories, IProgressMonitor monitor) {
+ IStatus duplicateStatus = Status.OK_STATUS;
+ URL[] knownRepositories;
+ try {
+ knownRepositories = ProvisioningUtil.getArtifactRepositories(repoFlag);
+ } catch (ProvisionException e) {
+ knownRepositories = new URL[0];
+ }
+ for (int i = 0; i < knownRepositories.length; i++) {
+ if (knownRepositories[i].toExternalForm().equalsIgnoreCase(location.toExternalForm())) {
+ duplicateStatus = new Status(IStatus.ERROR, ProvAdminUIActivator.PLUGIN_ID, LOCAL_VALIDATION_ERROR, ProvAdminUIMessages.AddArtifactRepositoryDialog_DuplicateURL, null);
+ break;
+ }
+ }
+ return duplicateStatus;
+ }
+ };
+ }
}
diff --git a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
index 6790c6c93..07184ab08 100644
--- a/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
+++ b/bundles/org.eclipse.equinox.p2.ui.admin/src/org/eclipse/equinox/internal/p2/ui/admin/messages.properties
@@ -25,6 +25,7 @@ AddRepositoryDialog_InvalidURL=Invalid URL
AddProfileDialog_Title=Add Profile
AddProfileDialog_OperationLabel=Add Profile
AddMetadataRepositoryDialog_OperationLabel=Add Metadata Repository
+AddArtifactRepositoryDialog_DuplicateURL=Duplicate URL
AddArtifactRepositoryDialog_OperationLabel=Add Artifact Repository
MetadataRepositoriesView_AddRepositoryLabel=Add repository...
MetadataRepositoriesView_AddRepositoryTooltip=Add a new metadata repository

Back to the top