[249322] Add facet version to the filter rules
diff --git a/tests/org.eclipse.wst.common.tests.validation/META-INF/MANIFEST.MF b/tests/org.eclipse.wst.common.tests.validation/META-INF/MANIFEST.MF index 76b8f76..06d117b 100644 --- a/tests/org.eclipse.wst.common.tests.validation/META-INF/MANIFEST.MF +++ b/tests/org.eclipse.wst.common.tests.validation/META-INF/MANIFEST.MF
@@ -2,13 +2,14 @@ Bundle-ManifestVersion: 2 Bundle-Name: %Bundle-Name.0 Bundle-SymbolicName: org.eclipse.wst.common.tests.validation;singleton:=true -Bundle-Version: 1.0.0 +Bundle-Version: 1.0.1 Bundle-Activator: org.eclipse.wst.common.tests.validation.Activator Require-Bundle: org.eclipse.ui, org.eclipse.core.runtime, org.eclipse.wst.validation, org.junit;bundle-version="[3.8.2,4.0.0)", - org.eclipse.core.resources + org.eclipse.core.resources, + org.eclipse.wst.common.project.facet.core;bundle-version="[1.3.0,1.4.0)" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ActivationPolicy: lazy Bundle-Vendor: %Bundle-Vendor.0
diff --git a/tests/org.eclipse.wst.common.tests.validation/plugin.xml b/tests/org.eclipse.wst.common.tests.validation/plugin.xml index f83f087..6036ded 100644 --- a/tests/org.eclipse.wst.common.tests.validation/plugin.xml +++ b/tests/org.eclipse.wst.common.tests.validation/plugin.xml
@@ -316,4 +316,27 @@ </validator> </extension> + <extension point="org.eclipse.wst.validation.validatorV2" id="T4A" name="T4A"> + <validator build="false" class="org.eclipse.wst.validation.tests.T4A" manual="false"> + <include> + <rules> + <fileext ext="test1"></fileext> + <facet id="jst.java" version="5.0"/> + </rules> + </include> + </validator> + </extension> + + <extension point="org.eclipse.wst.validation.validatorV2" id="T4B" name="T4B"> + <validator build="false" class="org.eclipse.wst.validation.tests.T4B" manual="false"> + <include> + <rules> + <fileext ext="test1"></fileext> + <facet id="jst.java" version="6.0"/> + </rules> + </include> + </validator> + </extension> + + </plugin>
diff --git a/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/TestSuite4.java b/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/TestSuite4.java new file mode 100644 index 0000000..837cf64 --- /dev/null +++ b/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/TestSuite4.java
@@ -0,0 +1,106 @@ +package org.eclipse.wst.validation.tests.testcase; + +import java.io.UnsupportedEncodingException; +import java.lang.reflect.InvocationTargetException; +import java.util.HashSet; +import java.util.Set; + +import junit.framework.Test; +import junit.framework.TestCase; +import junit.framework.TestSuite; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.wst.common.project.facet.core.FacetedProjectFramework; +import org.eclipse.wst.common.project.facet.core.IFacetedProjectWorkingCopy; +import org.eclipse.wst.common.project.facet.core.IProjectFacet; +import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion; +import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager; +import org.eclipse.wst.validation.ValidationFramework; +import org.eclipse.wst.validation.ValidationResults; +import org.eclipse.wst.validation.Validator; +import org.eclipse.wst.validation.internal.Tracing; +import org.eclipse.wst.validation.internal.ValManager; +import org.eclipse.wst.validation.internal.ValPrefManagerGlobal; + +public class TestSuite4 extends TestCase { + + private TestEnvironment _env; + private IProject _project; + + public static Test suite() { + return new TestSuite(TestSuite4.class); + } + + public TestSuite4(String name){ + super(name); + } + + + protected void setUp() throws Exception { + super.setUp(); + _env = new TestEnvironment(); + IFacetedProjectWorkingCopy project = FacetedProjectFramework.createNewProject(); + project.setProjectName("FacetProject"); + IProjectFacet pf = ProjectFacetsManager.getProjectFacet("jst.java"); + IProjectFacetVersion ipv = pf.getVersion("5.0"); + Set<IProjectFacetVersion> set = new HashSet<IProjectFacetVersion>(1); + set.add(ipv); + project.setProjectFacets(set); + project.commitChanges(null); + _project = project.getProject(); + + IPath folder = _env.addFolder(_project.getFullPath(), "source"); + ResourcesPlugin.getWorkspace().getRoot().findMember(folder); + _env.addFile(folder, "first.test1", + "info - information\n" + + "warning - warning\n" + + "error - error\n\n" + + "t1error - extra error\n" + + "t1warning - extra warning"); + + enableOnlyT4Validators(); + } + + /** + * Since other plug-ins can add and remove validators, turn off all the ones that are not part of + * these tests. + */ + private static void enableOnlyT4Validators() throws InvocationTargetException { + Validator[] vals = ValManager.getDefault().getValidatorsCopy(); + for (Validator v : vals){ + boolean enable = v.getValidatorClassname().startsWith("org.eclipse.wst.validation.tests.T4"); + v.setBuildValidation(enable); + v.setManualValidation(enable); + } + ValPrefManagerGlobal gp = ValPrefManagerGlobal.getDefault(); + gp.saveAsPrefs(vals); + TestEnvironment.saveV1Preferences(vals); + } + + protected void tearDown() throws Exception { + _project.delete(true, null); + _env.dispose(); + super.tearDown(); + } + + public void testTest1() throws CoreException, UnsupportedEncodingException, InterruptedException { + Tracing.log("TestSuite4-01: testTest1 starting"); + IProgressMonitor monitor = new NullProgressMonitor(); + ValidationFramework vf = ValidationFramework.getDefault(); + IProject[] projects = new IProject[1]; + projects[0] = _project; + ValidationResults vr = vf.validate(projects, true, false, monitor); + int errors = vr.getSeverityError(); + assertEquals("Number of errors", 1, errors); + + Tracing.log("TestSuite4-02:testTest1 finished"); + } + + + +}
diff --git a/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/ValidationTestSuite.java b/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/ValidationTestSuite.java index 3f80e79..d0dc8ef 100644 --- a/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/ValidationTestSuite.java +++ b/tests/org.eclipse.wst.common.tests.validation/src/org/eclipse/wst/validation/tests/testcase/ValidationTestSuite.java
@@ -18,6 +18,7 @@ suite.addTest(TestSuite1.suite()); suite.addTest(TestSuite2.suite()); suite.addTest(TestSuite3.suite()); + suite.addTest(TestSuite4.suite()); return suite; }
diff --git a/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T2A.java b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T2A.java index b5d8e8c..9da9a43 100644 --- a/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T2A.java +++ b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T2A.java
@@ -16,8 +16,7 @@ public void cleanup(IReporter reporter) { } - public void validate(IValidationContext helper, IReporter reporter) - throws ValidationException { + public void validate(IValidationContext helper, IReporter reporter) throws ValidationException { String[] uris = helper.getURIs(); if (uris != null)Tracing.log("T2A-01: number of urs = " + uris.length); }
diff --git a/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T4A.java b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T4A.java new file mode 100644 index 0000000..9d08d58 --- /dev/null +++ b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T4A.java
@@ -0,0 +1,20 @@ +package org.eclipse.wst.validation.tests; + +import org.eclipse.wst.common.tests.validation.Activator; + +/** + * This validator is used to test facet versions. It should be called on projects that have a version 5 java facet. + * @author karasiuk + * + */ +public class T4A extends TestValidator { + + public String getName() { + return "T4A"; + } + + public static String id(){ + return Activator.PLUGIN_ID +".T4A"; + } + +}
diff --git a/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T4B.java b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T4B.java new file mode 100644 index 0000000..5cffd21 --- /dev/null +++ b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/T4B.java
@@ -0,0 +1,20 @@ +package org.eclipse.wst.validation.tests; + +import org.eclipse.wst.common.tests.validation.Activator; + +/** + * This validator is used to test facet versions. It should be called on projects that have a version 5 java facet. + * @author karasiuk + * + */ +public class T4B extends TestValidator { + + public String getName() { + return "T4B"; + } + + public static String id(){ + return Activator.PLUGIN_ID +".T4B"; + } + +}
diff --git a/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/TestValidator.java b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/TestValidator.java index d9a7967..ce9912c 100644 --- a/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/TestValidator.java +++ b/tests/org.eclipse.wst.common.tests.validation/validators/org/eclipse/wst/validation/tests/TestValidator.java
@@ -87,7 +87,7 @@ } if (severity != -1){ - ValidatorMessage message = ValidatorMessage.create(line + "(by " + SimpleName +")", resource); + ValidatorMessage message = ValidatorMessage.create(line + "(by " + getName() +")", resource); message.setAttribute(IMarker.LINE_NUMBER, count); message.setAttribute(IMarker.SEVERITY, severity); vr.add(message);