Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVikas Chandra2019-07-03 10:08:03 +0000
committerVikas Chandra2019-07-03 10:08:03 +0000
commit1aace0178242bc1548108225851b5caf9fe7f1bf (patch)
tree1a867efd75b12d8922fa40c01424f329c689390a
parent6585c61531c770829adf4cf5c7dc772d292ba2aa (diff)
downloadeclipse.pde.ui-1aace0178242bc1548108225851b5caf9fe7f1bf.tar.gz
eclipse.pde.ui-1aace0178242bc1548108225851b5caf9fe7f1bf.tar.xz
eclipse.pde.ui-1aace0178242bc1548108225851b5caf9fe7f1bf.zip
Bug 243878 - first API addition causes cascade of errors
Change-Id: Iad1672a4231ec79867a88bc9ce269195953a170c Signed-off-by: Vikas Chandra <Vikas.Chandra@in.ibm.com>
-rw-r--r--apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java35
-rw-r--r--apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/MarkerMessages.java3
-rw-r--r--apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java62
-rw-r--r--apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/markermessages.properties1
4 files changed, 95 insertions, 6 deletions
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java
index 937b605171..8f73fcdc01 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/ApiMarkerResolutionGenerator.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2018 IBM Corporation and others.
+ * Copyright (c) 2008, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -16,6 +16,8 @@ package org.eclipse.pde.api.tools.ui.internal.markers;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Path;
@@ -81,11 +83,20 @@ public class ApiMarkerResolutionGenerator implements IMarkerResolutionGenerator2
new ConfigureProblemSeverityForAPIToolsResolution(marker) };
}
case IApiMarkerConstants.SINCE_TAG_MARKER_ID: {
- return new IMarkerResolution[] {
+ IMarkerResolution[] res = hasVersionProblems() ?
+ new IMarkerResolution[] {
new ConfigureProblemSeverityForAPIToolsResolution(marker),
- new SinceTagResolution(marker),
- new FilterProblemResolution(marker),
- new FilterProblemWithCommentResolution(marker) };
+ new SinceTagAfterVersionUpdateResolution(marker),
+ new SinceTagResolution(marker),
+ new FilterProblemResolution(marker),
+ new FilterProblemWithCommentResolution(marker) }:
+ new IMarkerResolution[] {
+ new ConfigureProblemSeverityForAPIToolsResolution(marker),
+ new SinceTagResolution(marker),
+ new FilterProblemResolution(marker),
+ new FilterProblemWithCommentResolution(marker)
+ };
+ return res;
}
case IApiMarkerConstants.VERSION_NUMBERING_MARKER_ID: {
return new IMarkerResolution[] {
@@ -177,4 +188,18 @@ public class ApiMarkerResolutionGenerator implements IMarkerResolutionGenerator2
return false;
}
+
+ private boolean hasVersionProblems() {
+ IMarker markerVersion = null;
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ try {
+ IMarker[] findMarkers = root.findMarkers(IApiMarkerConstants.VERSION_NUMBERING_PROBLEM_MARKER, false,
+ IResource.DEPTH_INFINITE);
+ if (findMarkers.length == 1) {
+ markerVersion = findMarkers[0];
+ }
+ } catch (CoreException e) {
+ }
+ return markerVersion != null;
+ }
}
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/MarkerMessages.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/MarkerMessages.java
index 7eca075449..f6f533bed2 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/MarkerMessages.java
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/MarkerMessages.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008, 2018 IBM Corporation and others.
+ * Copyright (c) 2008, 2019 IBM Corporation and others.
*
* This program and the accompanying materials
* are made available under the terms of the Eclipse Public License 2.0
@@ -66,6 +66,7 @@ public class MarkerMessages extends NLS {
public static String RemoveUnsupportedTagOperation_removeing_unsupported_tag;
public static String SinceTagResolution_add_since_tag;
+ public static String SinceTagResolution_add_since_tag_after_version_update;
public static String SinceTagResolution_change_since_tag;
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java
new file mode 100644
index 0000000000..5e3e0cf4ae
--- /dev/null
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/SinceTagAfterVersionUpdateResolution.java
@@ -0,0 +1,62 @@
+/*******************************************************************************
+ * Copyright (c) 2019 IBM Corporation and others.
+ *
+ * This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License 2.0
+ * which accompanies this distribution, and is available at
+ * https://www.eclipse.org/legal/epl-2.0/
+ *
+ * SPDX-License-Identifier: EPL-2.0
+ *
+ * Contributors:
+ * IBM Corporation - initial API and implementation
+ *******************************************************************************/
+package org.eclipse.pde.api.tools.ui.internal.markers;
+
+import org.eclipse.core.resources.IMarker;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IWorkspaceRoot;
+import org.eclipse.core.resources.ResourcesPlugin;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.osgi.util.NLS;
+import org.eclipse.pde.api.tools.internal.provisional.IApiMarkerConstants;
+
+public class SinceTagAfterVersionUpdateResolution extends SinceTagResolution {
+
+ IMarker markerVersion = null;
+ public SinceTagAfterVersionUpdateResolution(IMarker marker) {
+ super(marker);
+ updateVersionMarker();
+
+ }
+
+ private void updateVersionMarker() {
+ IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ try {
+ IMarker[] findMarkers = root.findMarkers(IApiMarkerConstants.VERSION_NUMBERING_PROBLEM_MARKER, false,
+ IResource.DEPTH_INFINITE);
+ if (findMarkers.length == 1) {
+ markerVersion = findMarkers[0];
+ }
+ } catch (CoreException e) {
+
+ }
+ }
+
+ @Override
+ public String getLabel() {
+ return NLS.bind(MarkerMessages.SinceTagResolution_add_since_tag_after_version_update, markerVersion.getAttribute(IApiMarkerConstants.MARKER_ATTR_VERSION, null));
+ }
+ @Override
+ public void run(final IMarker marker) {
+
+
+
+ if (markerVersion != null) {
+ new VersionNumberingResolution(markerVersion).run(markerVersion);
+ this.newVersionValue = markerVersion.getAttribute(IApiMarkerConstants.MARKER_ATTR_VERSION, null);
+ }
+ super.run(marker);
+ }
+
+}
diff --git a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/markermessages.properties b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/markermessages.properties
index 48564828f5..a26ebf99da 100644
--- a/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/markermessages.properties
+++ b/apitools/org.eclipse.pde.api.tools.ui/src/org/eclipse/pde/api/tools/ui/internal/markers/markermessages.properties
@@ -57,6 +57,7 @@ RemoveFilterProblemResolution_removes_selected_problem_filter=Removes the unused
RemoveUnsupportedAnnotationOperation_remove_unsupported_annotations=Remove unsupported annotations
RemoveUnsupportedTagOperation_removeing_unsupported_tag=Removing Unsupported API Javadoc tag
SinceTagResolution_add_since_tag=Add the missing @since tag with version {0}
+SinceTagResolution_add_since_tag_after_version_update=Add the missing @since tag after updating version to {0}
SinceTagResolution_change_since_tag=Change @since tag value to be {0}
UnknownAnnotationResolution_0=Corrects missing imports and adds a build-time reference to API Tools annotations on the build path so that they are visible at compile time, but avoids a bundle dependency on 'org.eclipse.pde.api.tools.annotations' at run time.<br><br>Adds this entry to 'build.properties':<br><code>additional.bundles = org.eclipse.pde.api.tools.annotations</code>
UnknownAnnotationResolution_1=Fix project setup and import {0} ({1})

Back to the top