Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorEike Stepper2012-07-28 07:44:30 +0000
committerEike Stepper2012-07-28 07:44:30 +0000
commitc0beeb56c4a49c3a68322e7fe2eff5944c5b624d (patch)
tree55c545b9c70e01280f3bf0b55855e8e9a672527a /plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse
parent6a38f38d30b9a782d891c56b0f673cab1d06730d (diff)
downloadcdo-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')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/IVersionBuilderArguments.java14
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/Markers.java26
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java88
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilderArguments.java56
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);
}
}

Back to the top