diff options
author | Eike Stepper | 2012-07-28 07:44:30 +0000 |
---|---|---|
committer | Eike Stepper | 2012-07-28 07:44:30 +0000 |
commit | c0beeb56c4a49c3a68322e7fe2eff5944c5b624d (patch) | |
tree | 55c545b9c70e01280f3bf0b55855e8e9a672527a /plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse | |
parent | 6a38f38d30b9a782d891c56b0f673cab1d06730d (diff) | |
download | cdo-c0beeb56c4a49c3a68322e7fe2eff5944c5b624d.tar.gz cdo-c0beeb56c4a49c3a68322e7fe2eff5944c5b624d.tar.xz cdo-c0beeb56c4a49c3a68322e7fe2eff5944c5b624d.zip |
Add ignore quick fixes
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse')
4 files changed, 131 insertions, 53 deletions
diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IVersionBuilderArguments.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IVersionBuilderArguments.java index fd291b1fde..42d1e1403d 100644 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IVersionBuilderArguments.java +++ b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IVersionBuilderArguments.java @@ -22,6 +22,20 @@ public interface IVersionBuilderArguments extends Map<String, String> { public static final String DEFAULT_VALIDATOR_CLASS_NAME = "org.eclipse.emf.cdo.releng.version.digest.DigestValidator$BuildModel"; + public static final String RELEASE_PATH_ARGUMENT = "release.path"; + + public static final String VALIDATOR_CLASS_ARGUMENT = "validator.class"; + + public static final String IGNORE_DEPENDENCY_RANGES_ARGUMENT = "ignore.missing.dependency.ranges"; + + public static final String IGNORE_EXPORT_VERSIONS_ARGUMENT = "ignore.missing.export.versions"; + + public static final String IGNORE_CONTENT_REDUNDANCY_ARGUMENT = "ignore.feature.content.redundancy"; + + public static final String IGNORE_CONTENT_CHANGES_ARGUMENT = "ignore.feature.content.changes"; + + public static final String IGNORE_MALFORMED_VERSIONS_ARGUMENT = "ignore.malformed.versions"; + public String getReleasePath(); public boolean isIgnoreMissingDependencyRanges(); diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java index a4122d68f3..250e0d942a 100644 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java +++ b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java @@ -32,7 +32,9 @@ public final class Markers public static final String QUICK_FIX_PATTERN = "quickFixPattern"; - public static final String QUICK_FIX_REPLACEMENT = "quickReplacement"; + public static final String QUICK_FIX_REPLACEMENT = "quickFixReplacement"; + + public static final String QUICK_FIX_CONFIGURE_OPTION = "quickFixConfigureOption"; private static final Pattern NL_PATTERN = Pattern.compile("([\\n][\\r]?|[\\r][\\n]?)", Pattern.MULTILINE); @@ -40,16 +42,31 @@ public final class Markers { } - public static boolean hasQuickFixes(IMarker marker) + public static String getQuickFixPattern(IMarker marker) + { + return getAttribute(marker, QUICK_FIX_PATTERN); + } + + public static String getQuickFixReplacement(IMarker marker) + { + return getAttribute(marker, QUICK_FIX_REPLACEMENT); + } + + public static String getQuickFixConfigureOption(IMarker marker) + { + return getAttribute(marker, QUICK_FIX_CONFIGURE_OPTION); + } + + public static String getAttribute(IMarker marker, String attributeName) { try { - return marker.getAttribute(QUICK_FIX_PATTERN) != null; + return (String)marker.getAttribute(attributeName); } catch (CoreException ex) { Activator.log(ex); - return false; + return null; } } @@ -128,7 +145,6 @@ public final class Markers Activator.log(ex); } } - } } diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java index 37e3a73c44..c17775f713 100644 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java +++ b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java @@ -158,7 +158,10 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element IModel componentModel = getComponentModel(project); if (!arguments.isIgnoreMalformedVersionsButton()) { - checkMalformedVersions(componentModel); + if (checkMalformedVersions(componentModel)) + { + return buildDpependencies.toArray(new IProject[buildDpependencies.size()]); + } } if (componentModel instanceof IPluginModelBase) @@ -172,6 +175,11 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element { checkPackageExports((IPluginModelBase)componentModel); } + + if (hasAPIToolsMarker((IPluginModelBase)componentModel)) + { + return buildDpependencies.toArray(new IProject[buildDpependencies.size()]); + } } /* @@ -315,8 +323,13 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element Version nextFeatureVersion = getNextFeatureVersion(releaseVersion, nextImplementationVersion, change); if (elementVersion.compareTo(nextFeatureVersion) < 0) { - addVersionMarker("Version must be increased to " + nextFeatureVersion + IMarker marker = addVersionMarker("Version must be increased to " + nextFeatureVersion + " because the feature's references have changed", nextFeatureVersion); + if (marker != null) + { + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, + IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT); + } for (Entry<Element, Version> entry : warnings) { @@ -409,6 +422,27 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element return buildDpependencies.toArray(new IProject[buildDpependencies.size()]); } + private boolean hasAPIToolsMarker(IPluginModelBase pluginModel) + { + try + { + IResource manifest = pluginModel.getUnderlyingResource(); + for (IMarker marker : manifest.findMarkers(IMarker.PROBLEM, true, IResource.DEPTH_ZERO)) + { + if (marker.getType().startsWith("org.eclipse.pde.api.tools")) + { + return true; + } + } + } + catch (CoreException ex) + { + Activator.log(ex); + } + + return false; + } + private boolean initReleaseProperties(IFile propertiesFile) throws CoreException, IOException { if (propertiesFile.exists()) @@ -658,7 +692,7 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element return null; } - private void checkMalformedVersions(IModel componentModel) + private boolean checkMalformedVersions(IModel componentModel) { IResource underlyingResource = componentModel.getUnderlyingResource(); if (underlyingResource != null) @@ -695,6 +729,7 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element addMalformedVersionMarker(file, regex, new Version(expectedVersion.getMajor(), expectedVersion.getMinor(), expectedVersion.getMicro(), "qualifier")); + return true; } } } @@ -705,6 +740,8 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element } } } + + return false; } private void checkDependencyRanges(IPluginModelBase pluginModel) throws CoreException, IOException @@ -838,7 +875,13 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element { IFile file = getProject().getFile(MANIFEST_PATH); String regex = name.replaceAll("\\.", "\\\\.") + ";bundle-version=\"([^\\\"]*)\""; - Markers.addMarker(file, "'" + name + "' " + message, IMarker.SEVERITY_ERROR, regex); + + IMarker marker = Markers.addMarker(file, "'" + name + "' " + message, IMarker.SEVERITY_ERROR, regex); + if (marker != null) + { + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, + IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT); + } } catch (Exception ex) { @@ -852,7 +895,13 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element { IFile file = getProject().getFile(MANIFEST_PATH); String regex = name.replaceAll("\\.", "\\\\.") + ";version=\"([^\\\"]*)\""; - Markers.addMarker(file, "'" + name + "' " + message, IMarker.SEVERITY_ERROR, regex); + + IMarker marker = Markers.addMarker(file, "'" + name + "' " + message, IMarker.SEVERITY_ERROR, regex); + if (marker != null) + { + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, + IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT); + } } catch (Exception ex) { @@ -873,6 +922,7 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element IMarker marker = Markers.addMarker(file, message, IMarker.SEVERITY_ERROR, regex); marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, versionString); + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT); } catch (Exception ex) { @@ -889,6 +939,8 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element IMarker.SEVERITY_ERROR, regex); marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, versionString); + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, + IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT); } catch (Exception ex) { @@ -896,7 +948,7 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element } } - private void addDeviationMarker(Element element, Version releasedVersion) + private IMarker addDeviationMarker(Element element, Version releasedVersion) { String type; if (element.getType() == Element.Type.PLUGIN) @@ -910,15 +962,15 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element Version version = element.getVersion(); String message = type + " '" + element.getName() + "' has been changed from " + releasedVersion + " to " + version; - addVersionMarker(message, version, IMarker.SEVERITY_INFO); + return addVersionMarker(message, version, IMarker.SEVERITY_INFO); } - private void addVersionMarker(String message, Version version) + private IMarker addVersionMarker(String message, Version version) { - addVersionMarker(message, version, IMarker.SEVERITY_ERROR); + return addVersionMarker(message, version, IMarker.SEVERITY_ERROR); } - private void addVersionMarker(String message, Version version, int severity) + private IMarker addVersionMarker(String message, Version version, int severity) { try { @@ -940,10 +992,13 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); marker.setAttribute(Markers.QUICK_FIX_REPLACEMENT, version.toString()); } + + return marker; } catch (Exception ex) { Activator.log(ex); + return null; } } @@ -956,7 +1011,10 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element String cause = featureChild != null ? "feature '" + featureChild.getName() + "' already includes it" : " because it occurs more than once in this feature"; String msg = "Plug-in reference '" + name + "' is redundant because " + cause; - addFeatureChildMarker(file, "plugin", name, msg); + + IMarker marker = addFeatureChildMarker(file, "plugin", name, msg); + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, + IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT); } catch (Exception ex) { @@ -1002,7 +1060,9 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element + version; } - addFeatureChildMarker(file, tag, name, msg); + IMarker marker = addFeatureChildMarker(file, tag, name, msg); + marker.setAttribute(Markers.QUICK_FIX_CONFIGURE_OPTION, + IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT); } } catch (Exception ex) @@ -1011,12 +1071,14 @@ public class VersionBuilder extends IncrementalProjectBuilder implements Element } } - private void addFeatureChildMarker(IFile file, String tag, String name, String msg) throws CoreException, IOException + private IMarker addFeatureChildMarker(IFile file, String tag, String name, String msg) throws CoreException, + IOException { String regex = "[ \\t\\x0B\\f]*<" + tag + "\\s+.*?id\\s*=\\s*[\"'](" + name.replace(".", "\\.") + ").*?/>([ \\t\\x0B\\f]*[\\n\\r])*"; IMarker marker = Markers.addMarker(file, msg, IMarker.SEVERITY_WARNING, regex); marker.setAttribute(Markers.QUICK_FIX_PATTERN, regex); + return marker; } public static IModel getComponentModel(IProject project) diff --git a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilderArguments.java b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilderArguments.java index 71a8869584..23f4876759 100644 --- a/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilderArguments.java +++ b/plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilderArguments.java @@ -30,20 +30,6 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { private static final long serialVersionUID = 1L; - private static final String RELEASE_PATH_ARGUMENT = "release.path"; - - private static final String VALIDATOR_CLASS_ARGUMENT = "validator.class"; - - private static final String IGNORE_DEPENDENCY_RANGES_ARGUMENT = "ignore.missing.dependency.ranges"; - - private static final String IGNORE_EXPORT_VERSIONS_ARGUMENT = "ignore.missing.export.versions"; - - private static final String IGNORE_CONTENT_REDUNDANCY_ARGUMENT = "ignore.feature.content.redundancy"; - - private static final String IGNORE_CONTENT_CHANGES_ARGUMENT = "ignore.feature.content.changes"; - - private static final String IGNORE_MALFORMED_VERSIONS_ARGUMENT = "ignore.malformed.versions"; - public VersionBuilderArguments() { } @@ -70,48 +56,48 @@ public class VersionBuilderArguments extends HashMap<String, String> implements public String getReleasePath() { - return get(RELEASE_PATH_ARGUMENT); + return get(IVersionBuilderArguments.RELEASE_PATH_ARGUMENT); } public String getValidatorClassName() { - return get(VALIDATOR_CLASS_ARGUMENT); + return get(IVersionBuilderArguments.VALIDATOR_CLASS_ARGUMENT); } public boolean isIgnoreMissingDependencyRanges() { - return "true".equals(get(IGNORE_DEPENDENCY_RANGES_ARGUMENT)); + return "true".equals(get(IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT)); } public boolean isIgnoreMissingExportVersions() { - return "true".equals(get(IGNORE_EXPORT_VERSIONS_ARGUMENT)); + return "true".equals(get(IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT)); } public boolean isIgnoreFeatureContentRedundancy() { - return "true".equals(get(IGNORE_CONTENT_REDUNDANCY_ARGUMENT)); + return "true".equals(get(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT)); } public boolean isIgnoreFeatureContentChanges() { - return "true".equals(get(IGNORE_CONTENT_CHANGES_ARGUMENT)); + return "true".equals(get(IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT)); } public boolean isIgnoreMalformedVersionsButton() { - return "true".equals(get(IGNORE_MALFORMED_VERSIONS_ARGUMENT)); + return "true".equals(get(IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT)); } public void setReleasePath(String value) { if (value != null) { - put(RELEASE_PATH_ARGUMENT, value); + put(IVersionBuilderArguments.RELEASE_PATH_ARGUMENT, value); } else { - remove(RELEASE_PATH_ARGUMENT); + remove(IVersionBuilderArguments.RELEASE_PATH_ARGUMENT); } } @@ -119,11 +105,11 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { if (value != null) { - put(VALIDATOR_CLASS_ARGUMENT, value); + put(IVersionBuilderArguments.VALIDATOR_CLASS_ARGUMENT, value); } else { - remove(VALIDATOR_CLASS_ARGUMENT); + remove(IVersionBuilderArguments.VALIDATOR_CLASS_ARGUMENT); } } @@ -131,11 +117,11 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { if (value) { - put(IGNORE_DEPENDENCY_RANGES_ARGUMENT, Boolean.toString(true)); + put(IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT, Boolean.toString(true)); } else { - remove(IGNORE_DEPENDENCY_RANGES_ARGUMENT); + remove(IVersionBuilderArguments.IGNORE_DEPENDENCY_RANGES_ARGUMENT); } } @@ -143,11 +129,11 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { if (value) { - put(IGNORE_EXPORT_VERSIONS_ARGUMENT, Boolean.toString(true)); + put(IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT, Boolean.toString(true)); } else { - remove(IGNORE_EXPORT_VERSIONS_ARGUMENT); + remove(IVersionBuilderArguments.IGNORE_EXPORT_VERSIONS_ARGUMENT); } } @@ -155,11 +141,11 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { if (value) { - put(IGNORE_CONTENT_REDUNDANCY_ARGUMENT, Boolean.toString(true)); + put(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT, Boolean.toString(true)); } else { - remove(IGNORE_CONTENT_REDUNDANCY_ARGUMENT); + remove(IVersionBuilderArguments.IGNORE_CONTENT_REDUNDANCY_ARGUMENT); } } @@ -167,11 +153,11 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { if (value) { - put(IGNORE_CONTENT_CHANGES_ARGUMENT, Boolean.toString(true)); + put(IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT, Boolean.toString(true)); } else { - remove(IGNORE_CONTENT_CHANGES_ARGUMENT); + remove(IVersionBuilderArguments.IGNORE_CONTENT_CHANGES_ARGUMENT); } } @@ -179,11 +165,11 @@ public class VersionBuilderArguments extends HashMap<String, String> implements { if (value) { - put(IGNORE_MALFORMED_VERSIONS_ARGUMENT, Boolean.toString(true)); + put(IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT, Boolean.toString(true)); } else { - remove(IGNORE_MALFORMED_VERSIONS_ARGUMENT); + remove(IVersionBuilderArguments.IGNORE_MALFORMED_VERSIONS_ARGUMENT); } } |