Author: akazakov
Date: 2011-12-14 19:54:44 -0500 (Wed, 14 Dec 2011)
New Revision: 37335
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/SuppressWarningsTests.java
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java
Log:
https://issues.jboss.org/browse/JBIDE-10187 Add support for a @SuppressWarnings
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-12-15
00:38:35 UTC (rev 37334)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2011-12-15
00:54:44 UTC (rev 37335)
@@ -122,9 +122,9 @@
suite.addTestSuite(DeploymentProblemsValidationTests.class);
suite.addTestSuite(BeansXmlValidationTest.class);
suite.addTestSuite(AnnotationsValidationTest.class);
- suite.addTestSuite(SuppressWarningsTests.class);
suite.addTestSuite(CoreValidationTest.class);
suite.addTestSuite(ELValidationTest.class);
+ suite.addTestSuite(SuppressWarningsTests.class);
suite.addTestSuite(IncrementalValidationTest.class);
// Refactoring test
Modified:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/SuppressWarningsTests.java
===================================================================
---
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/SuppressWarningsTests.java 2011-12-15
00:38:35 UTC (rev 37334)
+++
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/SuppressWarningsTests.java 2011-12-15
00:54:44 UTC (rev 37335)
@@ -13,7 +13,13 @@
import java.text.MessageFormat;
import org.eclipse.core.resources.IFile;
+import org.eclipse.jface.preference.IPersistentPreferenceStore;
+import org.eclipse.jface.preference.IPreferenceStore;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.cdi.core.preferences.CDIPreferences;
import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
+import org.jboss.tools.common.base.test.validation.TestUtil;
+import org.jboss.tools.test.util.ResourcesUtils;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
/**
@@ -22,6 +28,18 @@
*/
public class SuppressWarningsTests extends ValidationTest {
+ private void modifyPreferences() throws Exception{
+ IPreferenceStore store = CDICorePlugin.getDefault().getPreferenceStore();
+ store.putValue(CDIPreferences.PRODUCER_ANNOTATED_INJECT, CDIPreferences.WARNING);
+ ((IPersistentPreferenceStore)store).save();
+ }
+
+ private void restorePreferences() throws Exception{
+ IPreferenceStore store = CDICorePlugin.getDefault().getPreferenceStore();
+ store.putValue(CDIPreferences.PRODUCER_ANNOTATED_INJECT, CDIPreferences.ERROR);
+ ((IPersistentPreferenceStore)store).save();
+ }
+
public void testClass() throws Exception {
IFile file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/Fish.java");
AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
MessageFormat.format(CDIValidationMessages.DUPLCICATE_EL_NAME, ".*"), 8);
@@ -36,12 +54,20 @@
}
public void testField() throws Exception {
- IFile file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/Fish.java");
- AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 17);
- AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 19);
-
- file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/AnotherFish.java");
- AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 15, 17, 23);
+ try {
+ modifyPreferences();
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ IFile file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/Fish.java");
+ TestUtil.validate(file);
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 17);
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 19);
+
+ file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/AnotherFish.java");
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 15, 17, 23);
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ } finally {
+ restorePreferences();
+ }
}
public void testParam() throws Exception {
@@ -54,8 +80,25 @@
}
public void testMultipleSuppress() throws Exception {
+ try {
+ modifyPreferences();
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ IFile file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/Fish.java");
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS, 27);
+ AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 26);
+ TestUtil.validate(file);
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ } finally {
+ restorePreferences();
+ }
+ }
+
+ public void testErrorSuppress() throws Exception {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
IFile file =
tckProject.getFile("JavaSource/org/jboss/jsr299/tck/tests/jbt/validation/suppresswarnings/Fish.java");
AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.AMBIGUOUS_INJECTION_POINTS, 27);
- AbstractResourceMarkerTest.assertMarkerIsNotCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 26);
+ AbstractResourceMarkerTest.assertMarkerIsCreated(file,
CDIValidationMessages.PRODUCER_ANNOTATED_INJECT, 26);
+ TestUtil.validate(file);
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
}
}
\ No newline at end of file
Modified:
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java
===================================================================
---
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java 2011-12-15
00:38:35 UTC (rev 37334)
+++
trunk/common/plugins/org.jboss.tools.common.validation/src/org/jboss/tools/common/validation/ValidationErrorManager.java 2011-12-15
00:54:44 UTC (rev 37335)
@@ -154,15 +154,15 @@
if(location.getResource() != null && location.getResource().exists() &&
!location.getResource().equals(target)) {
newTarget = location.getResource();
}
+ IMarker marker = null;
+ int severity = getSeverity(preferenceKey, newTarget);
try {
- if(hasSuppressWarningsAnnotation(preferenceKey, location)) {
- return null;
+ if(severity!=-1 && (severity!=IMessage.NORMAL_SEVERITY ||
!hasSuppressWarningsAnnotation(preferenceKey, location))) {
+ marker = addError(message, preferenceKey, messageArguments, 0, location.getLength(),
location.getStartPosition(), newTarget, severity);
}
} catch (JavaModelException e) {
CommonPlugin.getDefault().logError(e);
}
- IMarker marker = addError(message, preferenceKey, messageArguments, 0, location
- .getLength(), location.getStartPosition(), newTarget);
if(marker != null){
try {
@@ -304,20 +304,19 @@
}
abstract protected String getPreferencePageId();
-
- /*
- * (non-Javadoc)
- * @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#addError(java.lang.String,
java.lang.String, java.lang.String[], int, int, org.eclipse.core.resources.IResource)
- */
- public IMarker addError(String message, String preferenceKey,
- String[] messageArguments, int lineNumber, int length, int offset, IResource target)
{
+
+ private int getSeverity(String preferenceKey, IResource target) {
String preferenceValue = getPreference(target.getProject(), preferenceKey);
+ int severity = -1;
+ if (!SeverityPreferences.IGNORE.equals(preferenceValue)) {
+ severity = SeverityPreferences.WARNING.equals(preferenceValue)?severity =
IMessage.NORMAL_SEVERITY:IMessage.HIGH_SEVERITY;
+ }
+ return severity;
+ }
+
+ public IMarker addError(String message, String preferenceKey, String[] messageArguments,
int lineNumber, int length, int offset, IResource target, int severity) {
IMarker marker = null;
- if (!SeverityPreferences.IGNORE.equals(preferenceValue)) {
- int severity = IMessage.HIGH_SEVERITY;
- if (SeverityPreferences.WARNING.equals(preferenceValue)) {
- severity = IMessage.NORMAL_SEVERITY;
- }
+ if (severity!=-1) {
if(shouldCheckDuplicateMarkers()) {
MarkerID id = new MarkerID(preferenceKey, length, offset,
target.getFullPath().toOSString());
if(!markers.contains(id)) {
@@ -344,6 +343,14 @@
}
return marker;
}
+
+ /*
+ * (non-Javadoc)
+ * @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#addError(java.lang.String,
java.lang.String, java.lang.String[], int, int, org.eclipse.core.resources.IResource)
+ */
+ public IMarker addError(String message, String preferenceKey, String[] messageArguments,
int lineNumber, int length, int offset, IResource target) {
+ return addError(message, preferenceKey, messageArguments, lineNumber, length, offset,
target, getSeverity(preferenceKey, target));
+ }
public IMarker addError(String message, String preferenceKey,
String[] messageArguments, int length, int offset, IResource target, int messageId) {