Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
Diffstat (limited to 'org.eclipse.m2e.core/src/org/eclipse/m2e/core')
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/IMavenConfiguration.java11
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java17
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceConstants.java42
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java4
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/ProblemSeverity.java51
-rw-r--r--org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java18
6 files changed, 132 insertions, 11 deletions
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/IMavenConfiguration.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/IMavenConfiguration.java
index 0ffcb5ad..bca5f987 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/IMavenConfiguration.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/embedder/IMavenConfiguration.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008-2010 Sonatype, Inc.
+ * Copyright (c) 2008-2014 Sonatype, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -11,6 +11,7 @@
package org.eclipse.m2e.core.embedder;
+import org.eclipse.core.resources.IMarker;
import org.eclipse.core.runtime.CoreException;
@@ -69,4 +70,12 @@ public interface IMavenConfiguration {
public String getWorkspaceLifecycleMappingMetadataFile();
public void setWorkspaceLifecycleMappingMetadataFile(String location) throws CoreException;
+
+ /**
+ * Returns {@link IMarker} severity of "out-of-date" project problem
+ *
+ * @return One of <code>ignore</code>, <code>warning</code> or <code>error</code>.
+ * @since 1.5.0
+ */
+ public String getOutOfDateProjectSeverity();
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java
index 31998624..226ba80a 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenConfigurationImpl.java
@@ -238,4 +238,21 @@ public class MavenConfigurationImpl implements IMavenConfiguration, IPreferenceC
}
preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()});
}
+
+ public String getOutOfDateProjectSeverity() {
+ return preferenceStore.get(MavenPreferenceConstants.P_OUT_OF_DATE_PROJECT_CONFIG_PB,
+ ProblemSeverity.error.toString(), preferencesLookup);
+ }
+
+ /**
+ * For testing purposes only
+ */
+ public void setOutOfDateProjectSeverity(String severity) throws CoreException {
+ if(severity == null) {
+ preferencesLookup[0].remove(MavenPreferenceConstants.P_OUT_OF_DATE_PROJECT_CONFIG_PB);
+ } else {
+ preferencesLookup[0].put(MavenPreferenceConstants.P_OUT_OF_DATE_PROJECT_CONFIG_PB, severity);
+ }
+ preferenceStore.applyPreferences(preferencesLookup[0], new IPreferenceFilter[] {getPreferenceFilter()});
+ }
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceConstants.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceConstants.java
index 7e545fae..7751e951 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceConstants.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceConstants.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008-2010 Sonatype, Inc.
+ * Copyright (c) 2008-2014 Sonatype, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -95,14 +95,50 @@ public interface MavenPreferenceConstants {
/** boolean **/
public static final String P_DEFAULT_POM_EDITOR_PAGE = "eclipse.m2.defaultPomEditorPage"; //$NON-NLS-1$
- /** boolean **/
+ /**
+ * boolean
+ *
+ * @deprecated Use {@link MavenPreferenceConstants#P_DUP_OF_PARENT_GROUPID_PB} instead
+ */
+ @Deprecated
public static final String P_DISABLE_GROUPID_DUP_OF_PARENT_WARNING = PREFIX
+ ".disableGroupIdDuplicateOfParentWarning"; //$NON-NLS-1$
- /** boolean **/
+ /**
+ * boolean
+ *
+ * @deprecated Use {@link MavenPreferenceConstants#P_DISABLE_VERSION_DUP_OF_PARENT_WARNING} instead
+ */
+ @Deprecated
public static final String P_DISABLE_VERSION_DUP_OF_PARENT_WARNING = PREFIX
+ ".disableVersionDuplicateOfParentWarning"; //$NON-NLS-1$
+ /**
+ * @since 1.5.0
+ **/
+ static final String PROBLEM_PREFIX = PREFIX + "problem.";
+
+ /**
+ * Valid values : ignore, warning or error
+ *
+ * @since 1.5.0
+ **/
+ public static final String P_DUP_OF_PARENT_GROUPID_PB = PROBLEM_PREFIX + "duplicateParentGroupId"; //$NON-NLS-1$
+
+ /**
+ * Valid values : ignore, warning or error
+ *
+ * @since 1.5.0
+ **/
+ public static final String P_DUP_OF_PARENT_VERSION_PB = PROBLEM_PREFIX + "duplicateParentVersion"; //$NON-NLS-1$
+
+ /**
+ * Valid values : ignore, warning or error
+ *
+ * @since 1.5.0
+ **/
+ public static final String P_OUT_OF_DATE_PROJECT_CONFIG_PB = PROBLEM_PREFIX + "outofdateProjectConfig"; //$NON-NLS-1$
+
/** string **/
public static final String P_LIFECYCLE_MAPPINGS = PREFIX + "lifecycleMappings"; //$NON-NLS-1$
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java
index 44cb40d3..4b12c601 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/MavenPreferenceInitializer.java
@@ -50,6 +50,10 @@ public class MavenPreferenceInitializer extends AbstractPreferenceInitializer {
store.putBoolean(MavenPreferenceConstants.P_SHOW_CONSOLE_ON_ERR, true);
store.putBoolean(MavenPreferenceConstants.P_SHOW_CONSOLE_ON_OUTPUT, false);
+ store.put(MavenPreferenceConstants.P_DUP_OF_PARENT_GROUPID_PB, ProblemSeverity.warning.toString());
+ store.put(MavenPreferenceConstants.P_DUP_OF_PARENT_VERSION_PB, ProblemSeverity.warning.toString());
+ store.put(MavenPreferenceConstants.P_OUT_OF_DATE_PROJECT_CONFIG_PB, ProblemSeverity.error.toString());
+
// set to null since the plugin state location is not available by the time execution reaches here
store.remove(MavenPreferenceConstants.P_WORKSPACE_MAPPINGS_LOCATION);
}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/ProblemSeverity.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/ProblemSeverity.java
new file mode 100644
index 00000000..10ca96d0
--- /dev/null
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/preferences/ProblemSeverity.java
@@ -0,0 +1,51 @@
+/*******************************************************************************
+ * Copyright (c) 2014 Red Hat, Inc.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ * Red Hat, Inc. - initial API and implementation
+ *******************************************************************************/
+
+package org.eclipse.m2e.core.internal.preferences;
+
+import org.eclipse.core.resources.IMarker;
+
+
+/**
+ * Problem Severity enum mapping {@link IMarker} severities
+ *
+ * @author Fred Bricon
+ * @since 1.5.0
+ */
+public enum ProblemSeverity {
+
+ ignore(-1), info(IMarker.SEVERITY_INFO), warning(IMarker.SEVERITY_WARNING), error(IMarker.SEVERITY_ERROR);
+
+ private int severity;
+
+ ProblemSeverity(int severity) {
+ this.severity = severity;
+ }
+
+ /**
+ * Returns matching {@link IMarker} severity value or -1 if ignore
+ *
+ * @see {@link IMarker#SEVERITY}
+ */
+ public int getSeverity() {
+ return severity;
+ }
+
+ public static ProblemSeverity get(String value) {
+ try {
+ if(value != null) {
+ return ProblemSeverity.valueOf(value);
+ }
+ } catch(IllegalArgumentException iae) {
+ }
+ return ProblemSeverity.error;
+ }
+}
diff --git a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java
index 8d549d04..4edbcd24 100644
--- a/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java
+++ b/org.eclipse.m2e.core/src/org/eclipse/m2e/core/internal/project/ProjectConfigurationManager.java
@@ -1,5 +1,5 @@
/*******************************************************************************
- * Copyright (c) 2008-2013 Sonatype, Inc.
+ * Copyright (c) 2008-2014 Sonatype, Inc. and others.
* All rights reserved. This program and the accompanying materials
* are made available under the terms of the Eclipse Public License v1.0
* which accompanies this distribution, and is available at
@@ -33,7 +33,6 @@ import org.eclipse.core.resources.ICommand;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IFolder;
-import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IProjectDescription;
import org.eclipse.core.resources.IResource;
@@ -79,6 +78,7 @@ import org.eclipse.m2e.core.internal.embedder.AbstractRunnable;
import org.eclipse.m2e.core.internal.embedder.MavenExecutionContext;
import org.eclipse.m2e.core.internal.lifecyclemapping.LifecycleMappingFactory;
import org.eclipse.m2e.core.internal.markers.IMavenMarkerManager;
+import org.eclipse.m2e.core.internal.preferences.ProblemSeverity;
import org.eclipse.m2e.core.internal.project.registry.ProjectRegistryManager;
import org.eclipse.m2e.core.project.IMavenProjectChangedListener;
import org.eclipse.m2e.core.project.IMavenProjectFacade;
@@ -961,11 +961,15 @@ public class ProjectConfigurationManager implements IProjectConfigurationManager
}
if(facade != null) {
- LifecycleMappingConfiguration oldConfiguration = LifecycleMappingConfiguration.restore(facade, monitor);
- if(oldConfiguration != null
- && LifecycleMappingFactory.isLifecycleMappingChanged(facade, oldConfiguration, monitor)) {
- mavenMarkerManager.addMarker(facade.getProject(), IMavenConstants.MARKER_CONFIGURATION_ID,
- Messages.ProjectConfigurationUpdateRequired, -1, IMarker.SEVERITY_ERROR);
+ ProblemSeverity outOfDateSeverity = ProblemSeverity.get(mavenConfiguration.getOutOfDateProjectSeverity());
+ mavenMarkerManager.deleteMarkers(facade.getProject(), IMavenConstants.MARKER_CONFIGURATION_ID);
+ if(!ProblemSeverity.ignore.equals(outOfDateSeverity)) {
+ LifecycleMappingConfiguration oldConfiguration = LifecycleMappingConfiguration.restore(facade, monitor);
+ if(oldConfiguration != null
+ && LifecycleMappingFactory.isLifecycleMappingChanged(facade, oldConfiguration, monitor)) {
+ mavenMarkerManager.addMarker(facade.getProject(), IMavenConstants.MARKER_CONFIGURATION_ID,
+ Messages.ProjectConfigurationUpdateRequired, -1, outOfDateSeverity.getSeverity());
+ }
}
} else {
IMavenProjectFacade oldFacade = event.getOldMavenProject();

Back to the top