Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java')
-rw-r--r--plugins/org.eclipse.emf.cdo.releng.version/src/org/eclipse/emf/cdo/releng/version/VersionBuilder.java88
1 files changed, 75 insertions, 13 deletions
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)

Back to the top