JBoss Tools SVN: r27729 - in trunk/cdi/tests/org.jboss.tools.cdi.core.test: projects/CDITest1/bin and 15 other directories.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-12-24 17:34:36 -0500 (Fri, 24 Dec 2010)
New Revision: 27729
Added:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestNormalScope.validation
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.validation
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest3/src/cdi/test3/TestBean3.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.classpath
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.project
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.settings/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.settings/org.eclipse.jdt.core.prefs
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/bin/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/test4/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/test4/TestBean4.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.classpath
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.project
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.settings/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.settings/org.eclipse.jdt.core.prefs
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/bin/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/test5/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/test5/TestBean5.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DependentProjectValidationTest.java
Removed:
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest1/bin/cdi/
trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest3/bin/cdi/
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/DependentProjectTest.java
Log:
https://issues.jboss.org/browse/JBIDE-7946
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestNormalScope.validation
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestNormalScope.validation (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestNormalScope.validation 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,22 @@
+package test;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.enterprise.context.NormalScope;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+@NormalScope
+@Inherited
+@Target({ TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface TestScope {
+
+}
\ No newline at end of file
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,22 @@
+package test;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Scope;
+
+@Scope
+@Inherited
+@Target({ TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface TestScope {
+
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.validation
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.validation (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest2/src/test/TestScope.validation 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,22 @@
+package test;
+
+import static java.lang.annotation.ElementType.FIELD;
+import static java.lang.annotation.ElementType.METHOD;
+import static java.lang.annotation.ElementType.TYPE;
+import static java.lang.annotation.RetentionPolicy.RUNTIME;
+
+import java.lang.annotation.Documented;
+import java.lang.annotation.Inherited;
+import java.lang.annotation.Retention;
+import java.lang.annotation.Target;
+
+import javax.inject.Scope;
+
+@Scope
+@Inherited
+@Target({ TYPE, METHOD, FIELD })
+@Retention(RUNTIME)
+@Documented
+public @interface TestScope {
+
+}
\ No newline at end of file
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest3/src/cdi/test3/TestBean3.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest3/src/cdi/test3/TestBean3.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest3/src/cdi/test3/TestBean3.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,16 @@
+package cdi.test3;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import test.TestScope;
+
+public class TestBean3 {
+
+ @Inject boolean test;
+
+ @TestScope
+ @Produces boolean foo() {
+ return true;
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest3/src/cdi/test3/TestBean3.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.classpath
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.classpath (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.classpath 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry combineaccessrules="false" exported="true" kind="src" path="/CDITest2"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.project
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.project (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.project 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>CDITest4</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.tools.jst.web.kb.kbbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.tools.cdi.core.cdibuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.jboss.tools.jst.web.kb.kbnature</nature>
+ <nature>org.jboss.tools.cdi.core.cdinature</nature>
+ </natures>
+</projectDescription>
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.settings/org.eclipse.jdt.core.prefs 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,12 @@
+#Tue Dec 21 19:01:41 MSK 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/test4/TestBean4.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/test4/TestBean4.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/test4/TestBean4.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,16 @@
+package cdi.test4;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import test.TestScope;
+
+public class TestBean4 {
+
+ @Inject int test;
+
+ @TestScope
+ @Produces int foo() {
+ return 0;
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest4/src/cdi/test4/TestBean4.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.classpath
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.classpath (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.classpath 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+ <classpathentry kind="src" path="src"/>
+ <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
+ <classpathentry combineaccessrules="false" kind="src" path="/CDITest4"/>
+ <classpathentry kind="output" path="bin"/>
+</classpath>
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.classpath
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.project
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.project (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.project 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>CDITest5</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.tools.jst.web.kb.kbbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.jboss.tools.cdi.core.cdibuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ <nature>org.jboss.tools.jst.web.kb.kbnature</nature>
+ <nature>org.jboss.tools.cdi.core.cdinature</nature>
+ </natures>
+</projectDescription>
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.project
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.settings/org.eclipse.jdt.core.prefs
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.settings/org.eclipse.jdt.core.prefs (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.settings/org.eclipse.jdt.core.prefs 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,12 @@
+#Tue Dec 21 19:01:41 MSK 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.6
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/.settings/org.eclipse.jdt.core.prefs
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/test5/TestBean5.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/test5/TestBean5.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/test5/TestBean5.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,16 @@
+package cdi.test5;
+
+import javax.enterprise.inject.Produces;
+import javax.inject.Inject;
+
+import test.TestScope;
+
+public class TestBean5 {
+
+ @Inject boolean test;
+
+ @TestScope
+ @Produces boolean foo() {
+ return true;
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/projects/CDITest5/src/cdi/test5/TestBean5.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
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 2010-12-24 21:18:57 UTC (rev 27728)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/CDICoreAllTests.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -44,6 +44,7 @@
import org.jboss.tools.cdi.core.test.tck.validation.BeansXmlValidationTest;
import org.jboss.tools.cdi.core.test.tck.validation.CoreValidationTest;
import org.jboss.tools.cdi.core.test.tck.validation.DefenitionErrorsValidationTest;
+import org.jboss.tools.cdi.core.test.tck.validation.DependentProjectValidationTest;
import org.jboss.tools.cdi.core.test.tck.validation.DeploymentProblemsValidationTests;
/**
@@ -93,6 +94,7 @@
suiteAll.addTestSuite(DependentProjectTest.class);
suiteAll.addTestSuite(EnableCDISupportForWarTest.class);
suiteAll.addTestSuite(EnableCDISupportForJarTest.class);
+ suiteAll.addTestSuite(DependentProjectValidationTest.class);
suiteAll.addTest(new CDICoreTestSetup(suite));
return suiteAll;
Modified: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java 2010-12-24 21:18:57 UTC (rev 27728)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/DependentProjectTest.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -150,5 +150,4 @@
JobUtils.waitForIdle();
ResourcesUtils.setBuildAutomatically(saveAutoBuild);
}
-
-}
+}
\ No newline at end of file
Added: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DependentProjectValidationTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DependentProjectValidationTest.java (rev 0)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DependentProjectValidationTest.java 2010-12-24 22:34:36 UTC (rev 27729)
@@ -0,0 +1,122 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.cdi.core.test.tck.validation;
+
+import java.io.IOException;
+import java.text.MessageFormat;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.NullProgressMonitor;
+import org.eclipse.core.runtime.Path;
+import org.jboss.tools.cdi.internal.core.validation.CDIValidationMessages;
+import org.jboss.tools.test.util.JobUtils;
+import org.jboss.tools.test.util.ResourcesUtils;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class DependentProjectValidationTest extends ValidationTest {
+
+ protected static String PLUGIN_ID = "org.jboss.tools.cdi.core.test";
+
+ IProject project1 = null;
+ IProject project2 = null;
+ IProject project3 = null;
+ IProject project4 = null;
+ IProject project5 = null;
+
+ public void setUp() throws Exception {
+ project1 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest1");
+ project1.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ project2 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest2");
+ project2.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ project3 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest3");
+ project3.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ project4 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest4");
+ project4.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ project5 = ResourcesUtils.importProject(PLUGIN_ID, "/projects/CDITest5");
+ project5.refreshLocal(IResource.DEPTH_INFINITE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+ }
+
+ public void testDependentProjects() throws CoreException, IOException {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+
+ IFile testBean3 = project3.getFile("src/cdi/test3/TestBean3.java");
+ assertMarkerIsNotCreated(testBean3, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "boolean", "TestBean3.foo()"), 10);
+
+ IFile testBean4 = project4.getFile("src/cdi/test4/TestBean4.java");
+ assertMarkerIsNotCreated(testBean4, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "int", "TestBean4.foo()"), 10);
+
+ IFile testBean5 = project5.getFile("src/cdi/test5/TestBean5.java");
+ assertMarkerIsNotCreated(testBean5, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "boolean", "TestBean5.foo()"), 10);
+
+ IFile scope = project2.getFile(new Path("src/test/TestScope.java"));
+ IFile normalScope = project2.getFile(new Path("src/test/TestNormalScope.validation"));
+ scope.setContents(normalScope.getContents(), IFile.FORCE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+ project2.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ testBean3 = project3.getFile("src/cdi/test3/TestBean3.java");
+ assertMarkerIsCreated(testBean3, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "boolean", "TestBean3.foo()"), 10);
+
+ testBean4 = project4.getFile("src/cdi/test4/TestBean4.java");
+ assertMarkerIsCreated(testBean4, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "int", "TestBean4.foo()"), 10);
+
+ testBean5 = project5.getFile("src/cdi/test5/TestBean5.java");
+ assertMarkerIsCreated(testBean5, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "boolean", "TestBean5.foo()"), 10);
+
+ normalScope = project2.getFile(new Path("src/test/TestScope.java"));
+ scope = project2.getFile(new Path("src/test/TestScope.validation"));
+ normalScope.setContents(scope.getContents(), IFile.FORCE, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+ project2.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, new NullProgressMonitor());
+ JobUtils.waitForIdle();
+
+ testBean3 = project3.getFile("src/cdi/test3/TestBean3.java");
+ assertMarkerIsNotCreated(testBean3, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "boolean", "TestBean3.foo()"), 10);
+
+ testBean4 = project4.getFile("src/cdi/test4/TestBean4.java");
+ assertMarkerIsNotCreated(testBean4, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "int", "TestBean4.foo()"), 10);
+
+ testBean5 = project5.getFile("src/cdi/test5/TestBean5.java");
+ assertMarkerIsNotCreated(testBean5, MessageFormat.format(CDIValidationMessages.UNPROXYABLE_BEAN_PRIMITIVE_TYPE, "boolean", "TestBean5.foo()"), 10);
+
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ JobUtils.waitForIdle();
+ }
+
+ public void tearDown() throws Exception {
+ boolean saveAutoBuild = ResourcesUtils.setBuildAutomatically(false);
+ JobUtils.waitForIdle();
+ project1.delete(true, true, null);
+ project2.delete(true, true, null);
+ project3.delete(true, true, null);
+ project4.delete(true, true, null);
+ project5.delete(true, true, null);
+ JobUtils.waitForIdle();
+ ResourcesUtils.setBuildAutomatically(saveAutoBuild);
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/DependentProjectValidationTest.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
13 years, 5 months
JBoss Tools SVN: r27728 - trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-12-24 16:18:57 -0500 (Fri, 24 Dec 2010)
New Revision: 27728
Modified:
trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test/
Log:
added target folder to svn.ignore
Property changes on: trunk/jst/plugins/org.jboss.tools.jst.jsp.base.test
___________________________________________________________________
Name: svn:ignore
+ target
13 years, 5 months
JBoss Tools SVN: r27727 - trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-12-24 16:16:21 -0500 (Fri, 24 Dec 2010)
New Revision: 27727
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
Log:
https://issues.jboss.org/browse/JBIDE-7946
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java 2010-12-24 21:15:06 UTC (rev 27726)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java 2010-12-24 21:16:21 UTC (rev 27727)
@@ -49,9 +49,7 @@
public void registerFile(IFile file) {
synchronized (registeredResources) {
-// if (!registeredResources.contains(file)) {
- registeredResources.add(file);
-// }
+ registeredResources.add(file);
}
}
}
\ No newline at end of file
13 years, 5 months
JBoss Tools SVN: r27726 - in trunk: jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-12-24 16:15:06 -0500 (Fri, 24 Dec 2010)
New Revision: 27726
Modified:
trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
Log:
https://issues.jboss.org/browse/JBIDE-7946
Modified: trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
+++ trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java 2010-12-24 21:15:06 UTC (rev 27726)
@@ -99,7 +99,6 @@
@Override
public void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
super.init(project, validationHelper, context, manager, reporter);
-// cdiProject = CDICorePlugin.getCDIProject(project, false);
projectName = project.getName();
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java 2010-12-24 19:22:08 UTC (rev 27725)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java 2010-12-24 21:15:06 UTC (rev 27726)
@@ -37,6 +37,7 @@
public SimpleValidatingProjectTree(IValidatingProjectSet brunch) {
this.brunch = brunch;
brunches.put(brunch.getRootProject(), brunch);
+ validatingProjects.add(brunch.getRootProject());
}
/* (non-Javadoc)
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java 2010-12-24 19:22:08 UTC (rev 27725)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java 2010-12-24 21:15:06 UTC (rev 27726)
@@ -49,9 +49,9 @@
public void registerFile(IFile file) {
synchronized (registeredResources) {
- if (!registeredResources.contains(file)) {
+// if (!registeredResources.contains(file)) {
registeredResources.add(file);
- }
+// }
}
}
}
\ No newline at end of file
13 years, 5 months
JBoss Tools SVN: r27725 - in trunk: cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation and 10 other directories.
by jbosstools-commits@lists.jboss.org
Author: akazakov
Date: 2010-12-24 14:22:08 -0500 (Fri, 24 Dec 2010)
New Revision: 27725
Added:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IProjectValidationContext.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectTree.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextManager.java
Removed:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContext.java
Modified:
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/BeansXmlValidationDelegate.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectSet.java
trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/CoreValidationTest.java
trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java
trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/ELValidatorTest.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/IKbProject.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ContextValidationHelper.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidatorContext.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/LinkCollection.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ProjectValidationContext.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatingProjectSet.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationContext.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectSet.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextProvider.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationErrorManager.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamProject.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamProjectPropertyValidator.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ELValidatorWrapper.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ValidatorSupport.java
Log:
https://issues.jboss.org/browse/JBIDE-7946 https://issues.jboss.org/browse/JBIDE-7961
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/AnnotationValidationDelegate.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -11,7 +11,6 @@
package org.jboss.tools.cdi.internal.core.validation;
-import java.text.MessageFormat;
import java.util.Set;
import org.eclipse.core.resources.IResource;
@@ -160,15 +159,13 @@
* @param qualifier
*/
public void validateScopeType(IScope scope) {
- if(scope == null) {
+ if(scope==null) {
return;
}
IResource resource = scope.getResource();
- if (resource == null || !resource.getName().toLowerCase().endsWith(".java")) {
- // validate sources only
+ if(!validator.shouldValidateResourceOfElement(resource)) {
return;
}
-
try {
validateScopeAnnotationTypeAnnotations(scope, resource);
} catch (JavaModelException e) {
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/BeansXmlValidationDelegate.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/BeansXmlValidationDelegate.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/BeansXmlValidationDelegate.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -186,7 +186,7 @@
IType type = getType(beansXml, typeNode, typeValidator.getUnknownTypeErrorMessage());
if(type!=null) {
if(!type.isBinary()) {
- validator.getValidationContext().addLinkedCoreResource(beansXml.getFullPath().toOSString(), type.getPath(), false);
+ validator.getValidationContext().addLinkedCoreResource(CDICoreValidator.SHORT_ID, beansXml.getFullPath().toOSString(), type.getPath(), false);
}
if(!typeValidator.validateKindOfType(type)) {
validator.addError(typeValidator.getIllegalTypeErrorMessage(), CDIPreferences.ILLEGAL_TYPE_NAME_IN_BEANS_XML,
@@ -272,7 +272,7 @@
Set<IFolder> sources = EclipseResourceUtil.getSourceFolders(beansXml.getProject());
for (IFolder source : sources) {
IPath path = source.getFullPath().append(packagePath + ".java"); //$NON-NLS-1$
- validator.getValidationContext().addLinkedCoreResource(beansXml.getFullPath().toOSString(), path, false);
+ validator.getValidationContext().addLinkedCoreResource(CDICoreValidator.SHORT_ID, beansXml.getFullPath().toOSString(), path, false);
}
}
}
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDICoreValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -92,7 +92,9 @@
import org.jboss.tools.common.text.ITextSourceReference;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.jst.web.kb.validation.IValidator;
import org.jboss.tools.jst.web.kb.validation.ValidationUtil;
@@ -105,11 +107,15 @@
ICDIProject cdiProject;
String projectName;
- CDIProjectSet projectSet;
+ IValidatingProjectTree projectTree;
+ IValidatingProjectSet projectSet;
+ Set<IFolder> sourceFolders = null;
private BeansXmlValidationDelegate beansXmlValidator = new BeansXmlValidationDelegate(this);
private AnnotationValidationDelegate annotationValidator = new AnnotationValidationDelegate(this);
+ static final String SHORT_ID = "jboss.cdi.core"; //$NON-NLS-1$
+
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#getMarkerType()
@@ -135,9 +141,9 @@
* org.jboss.tools.jst.web.kb.validation.IValidator#getValidatingProjects
* (org.eclipse.core.resources.IProject)
*/
- public IValidatingProjectSet getValidatingProjects(IProject project) {
- projectSet = new CDIProjectSet(project);
- return projectSet;
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
+ projectTree = new CDIProjectTree(project);
+ return projectTree;
}
/*
@@ -166,40 +172,30 @@
/*
* (non-Javadoc)
- *
- * @see
- * org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager
- * #init(org.eclipse.core.resources.IProject,
- * org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
- * org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
- * org.eclipse.wst.validation.internal.provisional.core.IReporter,
- * org.jboss.tools.jst.web.kb.validation.IValidationContext)
+ * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
@Override
- public void init(IProject project, ContextValidationHelper validationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator manager,
+ public void init(IProject rootProject, ContextValidationHelper validationHelper, IProjectValidationContext context, org.eclipse.wst.validation.internal.provisional.core.IValidator manager,
IReporter reporter) {
- super.init(project, validationHelper, manager, reporter);
+ super.init(rootProject, validationHelper, context, manager, reporter);
setMessageIdQuickFixAttributeName(MESSAGE_ID_ATTRIBUTE_NAME);
- if(projectSet==null) {
- getValidatingProjects(project);
+ projectTree = validationHelper.getValidationContextManager().getValidatingProjectTree(this);
+ projectSet = projectTree.getBrunches().get(rootProject);
+ CDICoreNature nature = CDICorePlugin.getCDI(projectSet.getRootProject(), false);
+ if(nature!=null) {
+ cdiProject = nature.getDelegate();
}
- cdiProject = projectSet.getRootCdiProject();
projectName = projectSet.getRootProject().getName();
+ sourceFolders = null;
}
/*
* (non-Javadoc)
- *
- * @see
- * org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set,
- * org.eclipse.core.resources.IProject,
- * org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
- * org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
- * org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set, org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter)
+ public IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager, IReporter reporter)
throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ init(project, validationHelper, context, manager, reporter);
displaySubtask(CDIValidationMessages.SEARCHING_RESOURCES);
if (cdiProject == null) {
@@ -218,27 +214,27 @@
Set<String> newElNamesOfChangedFile = getELNamesByResource(currentFile.getFullPath());
for (String newElName : newElNamesOfChangedFile) {
// Collect resources that had EL names (in previous validation session) declared in this changed resource.
- Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(newElName, true);
+ Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(SHORT_ID, newElName, true);
if(linkedResources!=null) {
resources.addAll(linkedResources);
}
}
// Get old EL names which were linked with this resource in previous validation session.
- Set<String> oldElNamesOfChangedFile = validationContext.getVariableNamesByCoreResource(currentFile.getFullPath(), true);
+ Set<String> oldElNamesOfChangedFile = validationContext.getVariableNamesByCoreResource(SHORT_ID, currentFile.getFullPath(), true);
if(oldElNamesOfChangedFile!=null) {
for (String name : oldElNamesOfChangedFile) {
- Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(name, true);
+ Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(SHORT_ID, name, true);
if(linkedResources!=null) {
resources.addAll(linkedResources);
}
// Save old (from previous validation session) EL names. We need to validate all the resources which use this old EL name in case the name has been changed.
- validationContext.addVariableNameForELValidation(name);
+ validationContext.addVariableNameForELValidation(SHORT_ID, name);
}
}
// Get all the paths of related resources for given file. These
// links were saved in previous validation process.
- Set<String> oldReletedResources = getValidationContext().getVariableNamesByCoreResource(currentFile.getFullPath(), false);
+ Set<String> oldReletedResources = getValidationContext().getVariableNamesByCoreResource(SHORT_ID, currentFile.getFullPath(), false);
if (oldReletedResources != null) {
for (String resourcePath : oldReletedResources) {
if(resourcePath.startsWith("/")) {
@@ -248,21 +244,24 @@
}
}
}
+
+ Set<IFile> filesToValidate = new HashSet<IFile>();
+ for (IPath linkedResource : resources) {
+ IFile file = root.getFile(linkedResource);
+ if(file!=null && file.isAccessible()) {
+ IProject pr = file.getProject();
+ if(pr!=null && !validationHelper.getValidationContextManager().projectHasBeenValidated(this, pr)) {
+ filesToValidate.add(file);
+// removeAllMessagesFromResource(file);
+ }
+ }
+ }
+
// Validate all collected linked resources.
// Remove all links between collected resources because they will be
// linked again during validation.
- getValidationContext().removeLinkedCoreResources(resources);
+ getValidationContext().removeLinkedCoreResources(SHORT_ID, resources);
- IFile[] filesToValidate = new IFile[resources.size()];
- int i = 0;
- // We have to remove markers from all collected source files first
- for (IPath linkedResource : resources) {
- filesToValidate[i] = root.getFile(linkedResource);
- if(filesToValidate[i].isAccessible()) {
- removeAllMessagesFromResource(filesToValidate[i++]);
- }
- }
- i = 0;
// Then we can validate them
for (IFile file : filesToValidate) {
validateResource(file);
@@ -273,55 +272,81 @@
/*
* (non-Javadoc)
- *
- * @see
- * org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse
- * .core.resources.IProject,
- * org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper,
- * org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager,
- * org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validateAll(IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter)
+ public IStatus validateAll(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager, IReporter reporter)
throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ init(project, validationHelper, context, manager, reporter);
if (cdiProject == null) {
return OK_STATUS;
}
displaySubtask(CDIValidationMessages.VALIDATING_PROJECT, new String[] { projectName });
- removeAllMessagesFromResource(cdiProject.getNature().getProject());
+
+ Set<IFile> filesToValidate = new HashSet<IFile>();
+
IBean[] beans = cdiProject.getBeans();
for (IBean bean : beans) {
- validateBean(bean);
+ IResource resource = bean.getResource();
+ if(resource!=null && !bean.getBeanClass().isReadOnly() && notValidatedYet(resource)) {
+ filesToValidate.add((IFile)resource);
+ }
}
IStereotype[] stereotypes = cdiProject.getStereotypes();
for (IStereotype stereotype : stereotypes) {
- validateStereotype(stereotype);
+ IResource resource = stereotype.getResource();
+ if(shouldValidateResourceOfElement(resource) && notValidatedYet(resource)) {
+ filesToValidate.add((IFile)resource);
+ }
}
IQualifier[] qualifiers = cdiProject.getQualifiers();
for (IQualifier qualifier : qualifiers) {
- validateQualifier(qualifier);
+ IResource resource = qualifier.getResource();
+ if(shouldValidateResourceOfElement(resource) && notValidatedYet(resource)) {
+ filesToValidate.add((IFile)resource);
+ }
}
IInterceptorBinding[] bindings = cdiProject.getInterceptorBindings();
for (IInterceptorBinding binding : bindings) {
- validateInterceptorBinding(binding);
+ IResource resource = binding.getResource();
+ if(shouldValidateResourceOfElement(resource) && notValidatedYet(resource)) {
+ filesToValidate.add((IFile)resource);
+ }
}
Set<String> scopes = cdiProject.getScopeNames();
- for (String scope: scopes) {
- annotationValidator.validateScopeType(cdiProject.getScope(scope));
+ for (String scopeName: scopes) {
+ IScope scope = cdiProject.getScope(scopeName);
+ IResource resource = scope.getResource();
+ if(shouldValidateResourceOfElement(resource) && notValidatedYet(resource)) {
+ filesToValidate.add((IFile)resource);
+ }
}
List<IFile> beansXmls = getAllBeansXmls();
for (IFile beansXml : beansXmls) {
- beansXmlValidator.validateBeansXml(beansXml);
+ if(notValidatedYet(beansXml)) {
+ filesToValidate.add(beansXml);
+ }
}
+ for (IFile file : filesToValidate) {
+ validateResource(file);
+ }
+
return OK_STATUS;
}
+ private boolean notValidatedYet(IResource resource) {
+ if(resource==null) {
+ System.out.println("!!!");
+ }
+ IProject pr = resource.getProject();
+ return !coreHelper.getValidationContextManager().projectHasBeenValidated(this, pr);
+ }
+
/**
* Validates a resource.
*
@@ -332,7 +357,11 @@
return;
}
displaySubtask(CDIValidationMessages.VALIDATING_RESOURCE, new String[] {file.getProject().getName(), file.getName()});
+ coreHelper.getValidationContextManager().addValidatedProject(this, file.getProject());
+ // We should remove markers from the source file at first
+ removeAllMessagesFromResource(file);
+
if("beans.xml".equalsIgnoreCase(file.getName()) && CDIPreferences.shouldValidateBeansXml(file.getProject())) {
// TODO should we check the path of the beans.xml? Or it's better to check the every beans.xml even if it is not in META-INF or WEB-INF.
beansXmlValidator.validateBeansXml(file);
@@ -355,12 +384,10 @@
}
}
- Set<IFolder> sourceFolders = null;
-
Set<IFolder> getSourceFoldersForProjectsSet() {
if(sourceFolders==null) {
sourceFolders = new HashSet<IFolder>();
- List<IProject> projects = projectSet.getAllProjests();
+ Set<IProject> projects = projectSet.getAllProjects();
for (IProject project : projects) {
sourceFolders.addAll(EclipseResourceUtil.getSourceFolders(project));
}
@@ -383,12 +410,15 @@
beansXmls.add((IFile)beansXml);
}
}
- // From WEB-INF folder
- IVirtualComponent com = ComponentCore.createComponent(validatingProject);
- if(com!=null) {
- IVirtualFile beansXml = com.getRootFolder().getFile(new Path("/WEB-INF/beans.xml")); //$NON-NLS-1$
- if(beansXml!=null && beansXml.getUnderlyingFile().isAccessible()) {
- beansXmls.add(beansXml.getUnderlyingFile());
+ Set<IProject> allProjects = projectSet.getAllProjects();
+ for (IProject project : allProjects) {
+ // From WEB-INF folder
+ IVirtualComponent com = ComponentCore.createComponent(project);
+ if(com!=null) {
+ IVirtualFile beansXml = com.getRootFolder().getFile(new Path("/WEB-INF/beans.xml")); //$NON-NLS-1$
+ if(beansXml!=null && beansXml.getUnderlyingFile().isAccessible()) {
+ beansXmls.add(beansXml.getUnderlyingFile());
+ }
}
}
return beansXmls;
@@ -411,7 +441,7 @@
for (IScopeDeclaration scopeDeclaration : scopeDeclarations) {
IScope scope = scopeDeclaration.getScope();
if (!scope.getSourceType().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(beanPath, scope.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, beanPath, scope.getResource().getFullPath(), false);
}
}
addLinkedStereotypes(beanPath, bean);
@@ -419,7 +449,7 @@
for (IQualifierDeclaration qualifierDeclaration : qualifierDeclarations) {
IQualifier qualifier = qualifierDeclaration.getQualifier();
if (!qualifier.getSourceType().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(beanPath, qualifier.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, beanPath, qualifier.getResource().getFullPath(), false);
}
}
@@ -435,7 +465,7 @@
for (IInjectionPoint point : points) {
IType type = getTypeOfInjection(point);
if(type!=null && !type.isBinary()) {
- getValidationContext().addLinkedCoreResource(beanPath, type.getPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, beanPath, type.getPath(), false);
}
validateInjectionPoint(point);
}
@@ -473,8 +503,8 @@
String name = bean.getName();
if(name!=null && !name.startsWith("/")) {
// Collect all relations between the bean and other CDI elements.
- getValidationContext().addVariableNameForELValidation(name);
- getValidationContext().addLinkedCoreResource(name, bean.getSourcePath(), true);
+ getValidationContext().addVariableNameForELValidation(SHORT_ID, name);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, name, bean.getSourcePath(), true);
/*
* 5.3.1. Ambiguous EL names
* - All unresolvable ambiguous EL names are detected by the container when the application is initialized.
@@ -557,7 +587,7 @@
for (IStereotypeDeclaration stereotypeDeclaration : stereotypeDeclarations) {
IStereotype stereotype = stereotypeDeclaration.getStereotype();
if (!stereotype.getSourceType().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(beanPath, stereotype.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, beanPath, stereotype.getResource().getFullPath(), false);
}
}
}
@@ -567,7 +597,7 @@
for (IInterceptorBindingDeclaration bindingDeclaration : bindingDeclarations) {
IInterceptorBinding binding = bindingDeclaration.getInterceptorBinding();
if (!binding.getSourceType().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(beanPath, binding.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, beanPath, binding.getResource().getFullPath(), false);
}
}
}
@@ -653,7 +683,7 @@
IBean specializedBean = bean.getSpecializedBean();
if(specializedBean!=null) {
if(!specializedBean.getBeanClass().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(bean.getSourcePath().toOSString(), specializedBean.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, bean.getSourcePath().toOSString(), specializedBean.getResource().getFullPath(), false);
}
String beanClassName = bean.getBeanClass().getElementName();
@@ -708,8 +738,8 @@
sb.append(", ").append(specializingBean.getSimpleJavaName());
moreThanTwo = true;
if(!specializingBean.getBeanClass().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(specializingBean.getResource().getFullPath().toOSString(), bean.getSourcePath(), false);
- getValidationContext().addLinkedCoreResource(bean.getSourcePath().toOSString(), specializingBean.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, specializingBean.getResource().getFullPath().toOSString(), bean.getSourcePath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, bean.getSourcePath().toOSString(), specializingBean.getResource().getFullPath(), false);
}
}
}
@@ -999,7 +1029,7 @@
addError(bindedErrorMessage, preferencesKey, declaration, bean.getResource(), id);
}
} else if (iMethod != method.getMethod() && !iMethod.isBinary()) {
- getValidationContext().addLinkedCoreResource(bean.getSourcePath().toOSString(), iMethod.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, bean.getSourcePath().toOSString(), iMethod.getResource().getFullPath(), false);
}
}
}
@@ -1173,7 +1203,7 @@
addError(bindedErrorMessage, CDIPreferences.ILLEGAL_PRODUCER_METHOD_IN_SESSION_BEAN, producer.getProducesAnnotation(), producer.getResource(), ILLEGAL_PRODUCER_METHOD_IN_SESSION_BEAN_ID);
saveAllSuperTypesAsLinkedResources(classBean);
} else if (method != producerMethod.getMethod() && !method.isReadOnly()) {
- getValidationContext().addLinkedCoreResource(classBean.getSourcePath().toOSString(), method.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, classBean.getSourcePath().toOSString(), method.getResource().getFullPath(), false);
}
}
@@ -1251,7 +1281,7 @@
for (IParametedType type : types) {
IType superType = type.getType();
if(superType!=null && !superType.isBinary() && superType.getResource()!=null && superType!=bean.getBeanClass()) {
- getValidationContext().addLinkedCoreResource(bean.getSourcePath().toOSString(), superType.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, bean.getSourcePath().toOSString(), superType.getResource().getFullPath(), false);
}
}
}
@@ -1332,7 +1362,7 @@
Set<IBean> allBeans = cdiProject.getBeans(false, injection);
for (IBean bean : allBeans) {
if(!bean.getBeanClass().isReadOnly()) {
- getValidationContext().addLinkedCoreResource(injection.getSourcePath().toOSString(), bean.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, injection.getSourcePath().toOSString(), bean.getResource().getFullPath(), false);
}
}
if(type!=null && beans.isEmpty() && !instance) {
@@ -1878,7 +1908,7 @@
Set<IParametedType> decoratedParametedTypes = decorator.getDecoratedTypes();
List<String> supers = null;
if(!delegateType.isReadOnly()) {
- getValidationContext().addLinkedCoreResource(decorator.getResource().getFullPath().toOSString(), delegateType.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, decorator.getResource().getFullPath().toOSString(), delegateType.getResource().getFullPath(), false);
}
for (IParametedType decoratedParametedType : decoratedParametedTypes) {
IType decoratedType = decoratedParametedType.getType();
@@ -1886,7 +1916,7 @@
continue;
}
if(!decoratedType.isReadOnly()) {
- getValidationContext().addLinkedCoreResource(decorator.getResource().getFullPath().toOSString(), decoratedType.getResource().getFullPath(), false);
+ getValidationContext().addLinkedCoreResource(SHORT_ID, decorator.getResource().getFullPath().toOSString(), decoratedType.getResource().getFullPath(), false);
}
String decoratedTypeName = decoratedType.getFullyQualifiedName();
// Ignore the type of the decorator class bean
@@ -2045,6 +2075,17 @@
}
}
+ boolean shouldValidateResourceOfElement(IResource resource) {
+ if (resource == null) {
+ return false;
+ }
+ if (resource == null || !resource.getName().toLowerCase().endsWith(".java")) {
+ // validate sources only
+ return false;
+ }
+ return true;
+ }
+
/**
* Validates a stereotype.
*
@@ -2056,13 +2097,11 @@
// behavior)
// - stereotype declares any other qualifier annotation
// - stereotype is annotated @Typed
-
- if (stereotype == null) {
+ if(stereotype==null) {
return;
}
IResource resource = stereotype.getResource();
- if (resource == null || !resource.getName().toLowerCase().endsWith(".java")) {
- // validate sources only
+ if(!shouldValidateResourceOfElement(resource)) {
return;
}
addLinkedStereotypes(stereotype.getResource().getFullPath().toOSString(), stereotype);
@@ -2117,8 +2156,12 @@
}
}
+ boolean shouldValidateAnnotation(ICDIAnnotation annotation) {
+ return annotation!=null && annotation.getSourceType() != null && !annotation.getSourceType().isReadOnly();
+ }
+
private void validateInterceptorBinding(IInterceptorBinding binding) {
- if(binding==null || (binding.getSourceType() == null && binding.getSourceType().isReadOnly())) {
+ if(binding==null || !shouldValidateAnnotation(binding)) {
return;
}
@@ -2147,8 +2190,7 @@
return;
}
IResource resource = qualifier.getResource();
- if (resource == null || !resource.getName().toLowerCase().endsWith(".java")) {
- // validate sources only
+ if(!shouldValidateResourceOfElement(resource)) {
return;
}
/*
Modified: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectSet.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectSet.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectSet.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -11,7 +11,7 @@
package org.jboss.tools.cdi.internal.core.validation;
-import java.util.ArrayList;
+import java.util.HashSet;
import java.util.Set;
import org.eclipse.core.resources.IProject;
@@ -34,7 +34,7 @@
* @param project
*/
public CDIProjectSet(IProject project) {
- allProjects = new ArrayList<IProject>();
+ allProjects = new HashSet<IProject>();
allProjects.add(project);
CDICoreNature sp = CDICorePlugin.getCDI(project, false);
if(sp!=null) {
@@ -67,6 +67,23 @@
return project;
}
+ private Set<CDICoreNature> getRootProjects(CDICoreNature project) {
+ Set<CDICoreNature> result = new HashSet<CDICoreNature>();
+ Set<CDICoreNature> dependentProjects = project.getDependentProjects();
+ if(dependentProjects.isEmpty()) {
+ result.add(project);
+ } else if(dependentProjects.size()==1) {
+ result = getRootProjects(dependentProjects.iterator().next());
+ } else {
+ for (CDICoreNature nature : dependentProjects) {
+ if(!result.contains(nature)) {
+ result.addAll(getRootProjects(nature));
+ }
+ }
+ }
+ return result;
+ }
+
private void addIncludedProjects(CDICoreNature project) {
Set<CDICoreNature> includedCdiProjects = project.getCDIProjects();
for (CDICoreNature cdiCoreNature : includedCdiProjects) {
Added: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java
===================================================================
--- trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java (rev 0)
+++ trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -0,0 +1,137 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.cdi.internal.core.validation;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.jboss.tools.cdi.core.CDICoreNature;
+import org.jboss.tools.cdi.core.CDICorePlugin;
+import org.jboss.tools.jst.web.kb.IKbProject;
+import org.jboss.tools.jst.web.kb.KbProjectFactory;
+import org.jboss.tools.jst.web.kb.internal.KbProject;
+import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
+
+/**
+ * Represents a tree of dependent CDI projects.
+ *
+ * @author Alexey Kazakov
+ */
+public class CDIProjectTree implements IValidatingProjectTree {
+
+ private Map<IProject, IValidatingProjectSet> brunches = new HashMap<IProject, IValidatingProjectSet>();
+ private Set<IProject> validatingProjects = new HashSet<IProject>();
+ private Set<IProject> allProjects = new HashSet<IProject>();
+
+ /**
+ * @param project
+ */
+ public CDIProjectTree(IProject project) {
+ addProject(project);
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#addProject(org.eclipse.core.resources.IProject)
+ */
+ public void addProject(IProject project) {
+ if(project!=null) {
+ allProjects.add(project);
+ if(!validatingProjects.contains(project)) {
+ validatingProjects.add(project);
+ CDICoreNature currentNature = CDICorePlugin.getCDI(project, false);
+ if(currentNature!=null) {
+ Set<CDICoreNature> roots = getRootProjects(currentNature);
+ for (CDICoreNature root : roots) {
+ IProject rootProject = root.getProject();
+ if(rootProject!=null && rootProject.isAccessible()) {
+ Set<IProject> requiredProjects = collectRequiredProjects(root);
+ IKbProject kbProject = KbProjectFactory.getKbProject(rootProject, false);
+ IProjectValidationContext rootContext;
+ if(kbProject!=null) {
+ rootContext = kbProject.getValidationContext();
+ } else {
+ KbProject.checkKBBuilderInstalled(rootProject);
+ rootContext = root.getValidationContext();
+ }
+ requiredProjects.add(root.getProject());
+ IValidatingProjectSet brunch = new ValidatingProjectSet(root.getProject(), requiredProjects, rootContext);
+ brunches.put(rootProject, brunch);
+ allProjects.addAll(brunch.getAllProjects());
+ }
+ }
+ }
+ }
+ }
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#getBrunches()
+ */
+ public Map<IProject, IValidatingProjectSet> getBrunches() {
+ return brunches;
+ }
+
+ /**
+ * @return the validatingProjects
+ */
+ public Set<IProject> getValidatingProjects() {
+ return validatingProjects;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#getAllProjects()
+ */
+ public Set<IProject> getAllProjects() {
+ return allProjects;
+ }
+
+ private Set<CDICoreNature> getRootProjects(CDICoreNature project) {
+ Set<CDICoreNature> result = new HashSet<CDICoreNature>();
+ Set<CDICoreNature> dependentProjects = project.getDependentProjects();
+ if(dependentProjects.isEmpty()) {
+ result.add(project);
+ } else if(dependentProjects.size()==1) {
+ result = getRootProjects(dependentProjects.iterator().next());
+ } else {
+ for (CDICoreNature nature : dependentProjects) {
+ if(!result.contains(nature)) {
+ result.addAll(getRootProjects(nature));
+ }
+ }
+ }
+ return result;
+ }
+
+ private Set<IProject> collectRequiredProjects(CDICoreNature project) {
+ return collectRequiredProjects(new HashSet<IProject>(), project);
+ }
+
+ private Set<IProject> collectRequiredProjects(Set<IProject> dependsOn, CDICoreNature project) {
+ Set<CDICoreNature> cdiProjects = project.getCDIProjects();
+ for (CDICoreNature cdiCoreNature : cdiProjects) {
+ IProject includedProject = cdiCoreNature.getProject();
+ if(!dependsOn.contains(includedProject)) {
+ dependsOn.add(includedProject);
+ collectRequiredProjects(dependsOn, cdiCoreNature);
+ }
+ }
+ return dependsOn;
+ }
+}
\ No newline at end of file
Property changes on: trunk/cdi/plugins/org.jboss.tools.cdi.core/src/org/jboss/tools/cdi/internal/core/validation/CDIProjectTree.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/CoreValidationTest.java
===================================================================
--- trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/CoreValidationTest.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/cdi/tests/org.jboss.tools.cdi.core.test/src/org/jboss/tools/cdi/core/test/tck/validation/CoreValidationTest.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -58,6 +58,6 @@
*/
public void testAllRelatedProjectsIncluded() {
CDIProjectSet set = new CDIProjectSet(tckProject);
- assertTrue("TCKProject is not included in the set of CDI projects", set.getAllProjests().contains(tckProject));
+ assertTrue("TCKProject is not included in the set of CDI projects", set.getAllProjects().contains(tckProject));
}
}
\ No newline at end of file
Modified: trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java
===================================================================
--- trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/esb/plugins/org.jboss.tools.esb.validator/src/org/jboss/tools/esb/validator/ESBCoreValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -1,9 +1,7 @@
package org.jboss.tools.esb.validator;
-import java.util.ArrayList;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.StringTokenizer;
@@ -28,10 +26,12 @@
import org.jboss.tools.esb.core.model.impl.BusinessRulesProcessor;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
import org.jboss.tools.jst.web.kb.internal.validation.ProjectValidationContext;
+import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.jst.web.kb.validation.IValidator;
import org.jboss.tools.jst.web.model.project.ext.store.XMLValueInfo;
@@ -44,7 +44,7 @@
static String ATTR_ATTRIBUTE = "attribute"; //$NON-NLS-1$
String projectName;
- Map<IProject, IValidationContext> contexts = new HashMap<IProject, IValidationContext>();
+ Map<IProject, IProjectValidationContext> contexts = new HashMap<IProject, IProjectValidationContext>();
/*
* (non-Javadoc)
@@ -59,16 +59,18 @@
return ID;
}
- public IValidatingProjectSet getValidatingProjects(IProject project) {
- IValidationContext rootContext = contexts.get(project);
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
+ IProjectValidationContext rootContext = contexts.get(project);
if(rootContext == null) {
rootContext = new ProjectValidationContext();
contexts.put(project, rootContext);
}
- List<IProject> projects = new ArrayList<IProject>();
+ Set<IProject> projects = new HashSet<IProject>();
projects.add(project);
- return new ValidatingProjectSet(project, projects, rootContext);
+
+ IValidatingProjectSet projectSet = new ValidatingProjectSet(project, projects, rootContext);
+ return new SimpleValidatingProjectTree(projectSet);
}
public boolean shouldValidate(IProject project) {
@@ -92,19 +94,23 @@
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter, org.jboss.tools.jst.web.kb.validation.IValidationContext)
+ * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
@Override
- public void init(IProject project, ContextValidationHelper validationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
- super.init(project, validationHelper, manager, reporter);
+ public void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
+ super.init(project, validationHelper, context, manager, reporter);
// cdiProject = CDICorePlugin.getCDIProject(project, false);
projectName = project.getName();
}
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set, org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
public IStatus validate(Set<IFile> changedFiles, IProject project,
- ContextValidationHelper validationHelper, ValidatorManager manager,
+ ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager,
IReporter reporter) throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ init(project, validationHelper, context, manager, reporter);
for (IFile file: changedFiles) {
String name = file.getName();
@@ -124,10 +130,14 @@
validateActions(object, file);
}
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
public IStatus validateAll(IProject project,
- ContextValidationHelper validationHelper, ValidatorManager manager,
+ ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager,
IReporter reporter) throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ init(project, validationHelper, context, manager, reporter);
displaySubtask(ESBValidatorMessages.VALIDATING_PROJECT, new String[]{projectName});
String esbContentFolder = null;
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/web/validation/ELValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -62,11 +62,13 @@
import org.jboss.tools.jst.web.kb.PageContextFactory;
import org.jboss.tools.jst.web.kb.internal.KbProject;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
+import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
import org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.jst.web.kb.validation.IValidator;
/**
@@ -118,11 +120,11 @@
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter, org.jboss.tools.jst.web.kb.validation.IValidationContext)
+ * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
@Override
- public void init(IProject project, ContextValidationHelper validationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
- super.init(project, validationHelper, manager, reporter);
+ public void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
+ super.init(project, validationHelper, context, manager, reporter);
resolvers = ELResolverFactoryManager.getInstance().getResolvers(project);
mainFactory = ELParserUtil.getDefaultFactory();
validateVars = JSFSeverityPreferences.ENABLE.equals(JSFSeverityPreferences.getInstance().getProjectPreference(validatingProject, JSFSeverityPreferences.CHECK_VARS));
@@ -131,10 +133,10 @@
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set, org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter, org.jboss.tools.jst.web.kb.validation.IValidationContext)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set, org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter) throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ public IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager, IReporter reporter) throws ValidationException {
+ init(project, validationHelper, context, manager, reporter);
webRootFolder = null;
initRevalidationFlag();
IWorkspaceRoot wsRoot = ResourcesPlugin.getWorkspace().getRoot();
@@ -192,10 +194,10 @@
/*
* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidator#validateAll()
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validateAll(IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter) throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ public IStatus validateAll(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager, IReporter reporter) throws ValidationException {
+ init(project, validationHelper, context, manager, reporter);
webRootFolder = null;
initRevalidationFlag();
Set<IFile> files = validationHelper.getProjectSetRegisteredFiles();
@@ -481,15 +483,16 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidator#getValidatingProjects(org.eclipse.core.resources.IProject)
*/
- public IValidatingProjectSet getValidatingProjects(IProject project) {
- List<IProject> projects = new ArrayList<IProject>();
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
+ Set<IProject> projects = new HashSet<IProject>();
projects.add(project);
IKbProject kbProject = KbProjectFactory.getKbProject(project, false);
if(kbProject!=null) {
- IValidationContext rootContext = kbProject.getValidationContext();
- return new ValidatingProjectSet(project, projects, rootContext);
+ IProjectValidationContext rootContext = kbProject.getValidationContext();
+ IValidatingProjectSet projectSet = new ValidatingProjectSet(project, projects, rootContext);
+ return new SimpleValidatingProjectTree(projectSet);
}
- return null;
+ return new SimpleValidatingProjectTree(project);
}
/*
Modified: trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/ELValidatorTest.java
===================================================================
--- trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/ELValidatorTest.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jsf/tests/org.jboss.tools.jsf.test/src/org/jboss/tools/jsf/test/validation/ELValidatorTest.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -23,8 +23,10 @@
import org.jboss.tools.jsf.web.validation.ELValidator;
import org.jboss.tools.jsf.web.validation.JSFValidationMessages;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
+import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
import org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidator;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
@@ -275,7 +277,8 @@
WorkbenchReporter reporter = new WorkbenchReporter(project, new NullProgressMonitor());
long current = System.currentTimeMillis();
- validator.validate(files, project, helper, manager, reporter);
+ IProjectValidationContext context = new SimpleValidatingProjectTree(project).getBrunches().values().iterator().next().getRootContext();
+ validator.validate(files, project, helper, context, manager, reporter);
long result = System.currentTimeMillis() - current;
return result;
} finally {
@@ -295,7 +298,8 @@
ValidatorManager manager = new ValidatorManager();
WorkbenchReporter reporter = new WorkbenchReporter(project, new NullProgressMonitor());
- validator.init(project, getHelper(fileNames), manager, reporter);
+ IProjectValidationContext context = new SimpleValidatingProjectTree(project).getBrunches().values().iterator().next().getRootContext();
+ validator.init(project, getHelper(fileNames), context, manager, reporter);
return validator;
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/IKbProject.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/IKbProject.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/IKbProject.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -12,7 +12,7 @@
import org.eclipse.core.resources.IProjectNature;
import org.jboss.tools.jst.web.kb.taglib.ITagLibrary;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
/**
*
@@ -41,5 +41,5 @@
/**
* @return validation context which is associated with this KB project.
*/
- IValidationContext getValidationContext();
+ IProjectValidationContext getValidationContext();
}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/KbProject.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -54,7 +54,7 @@
import org.jboss.tools.jst.web.kb.internal.validation.ProjectValidationContext;
import org.jboss.tools.jst.web.kb.taglib.ICustomTagLibrary;
import org.jboss.tools.jst.web.kb.taglib.ITagLibrary;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.w3c.dom.Element;
/**
@@ -428,7 +428,7 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.IKbProject#getValidationContext()
*/
- public IValidationContext getValidationContext() {
+ public IProjectValidationContext getValidationContext() {
if(validationContext == null) {
validationContext = new ProjectValidationContext();
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ContextValidationHelper.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ContextValidationHelper.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ContextValidationHelper.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -10,10 +10,8 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.internal.validation;
-import java.util.HashMap;
import java.util.HashSet;
import java.util.List;
-import java.util.Map;
import java.util.Set;
import org.eclipse.core.resources.IFile;
@@ -24,8 +22,8 @@
import org.eclipse.core.runtime.Path;
import org.eclipse.ui.editors.text.TextFileDocumentProvider;
import org.eclipse.wst.validation.internal.operations.WorkbenchContext;
-import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
+import org.jboss.tools.jst.web.kb.validation.IValidationContextManager;
import org.jboss.tools.jst.web.kb.validation.IValidator;
/**
@@ -34,9 +32,8 @@
*/
public class ContextValidationHelper extends WorkbenchContext {
- protected IValidationContext validationContext;
+ protected IValidationContextManager validationContextManager;
protected TextFileDocumentProvider documentProvider = new TextFileDocumentProvider();
- protected Map<IProject, IValidationContext> contexts;
/*
* (non-Javadoc)
@@ -44,8 +41,7 @@
*/
@Override
public void initialize() {
- validationContext = null;
- contexts = new HashMap<IProject, IValidationContext>();
+ validationContextManager = null;
}
/*
@@ -56,15 +52,14 @@
public void registerResource(IResource resource) {
if(resource instanceof IFile) {
IFile file = (IFile)resource;
- IValidationContext context = contexts.get(file.getProject());
- if(context==null) {
- context = new ValidationContext(file.getProject());
- contexts.put(file.getProject(), context);
+ if(validationContextManager == null) {
+ validationContextManager = new ValidationContext(file.getProject());
}
+ validationContextManager.addProject(file.getProject());
if(!file.exists()) {
- context.addRemovedFile(file);
+ validationContextManager.addRemovedFile(file);
} else {
- context.registerFile(file);
+ validationContextManager.registerFile(file);
}
}
}
@@ -73,22 +68,17 @@
* @return Set of changed resources
*/
public Set<IFile> getChangedFiles() {
- List<IValidator> validators = getValidationContext().getValidators();
- Set<IProject> projects = new HashSet<IProject>();
- for (IValidator validator : validators) {
- IValidatingProjectSet set = validator.getValidatingProjects(getProject());
- projects.addAll(set.getAllProjests());
- }
Set<IFile> result = new HashSet<IFile>();
String[] uris = getURIs();
IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot();
+ Set<IProject> projects = getAllProjects();
for (int i = 0; i < uris.length; i++) {
IFile currentFile = root.getFile(new Path(uris[i]));
if(projects.contains(currentFile.getProject())) {
result.add(currentFile);
}
}
- Set<IFile> removedFiles = getValidationContext().getRemovedFiles();
+ Set<IFile> removedFiles = getValidationContextManager().getRemovedFiles();
for (IFile file : removedFiles) {
if(projects.contains(file.getProject())) {
result.add(file);
@@ -99,13 +89,8 @@
public Set<IFile> getProjectSetRegisteredFiles() {
Set<IFile> result = new HashSet<IFile>();
- List<IValidator> validators = getValidationContext().getValidators();
- Set<IProject> projects = new HashSet<IProject>();
- for (IValidator validator : validators) {
- IValidatingProjectSet set = validator.getValidatingProjects(getProject());
- projects.addAll(set.getAllProjests());
- }
- Set<IFile> files = validationContext.getRegisteredFiles();
+ Set<IFile> files = validationContextManager.getRegisteredFiles();
+ Set<IProject> projects = getAllProjects();
for (IFile file : files) {
if(projects.contains(file.getProject())) {
result.add(file);
@@ -114,17 +99,27 @@
return result;
}
- public IValidationContext getValidationContext() {
- if(validationContext==null) {
- validationContext = new ValidationContext(getProject());
+ private Set<IProject> getAllProjects() {
+ List<IValidator> validators = getValidationContextManager().getValidators();
+ Set<IProject> projects = new HashSet<IProject>();
+ for (IValidator validator : validators) {
+ IValidatingProjectTree tree = validator.getValidatingProjects(getProject());
+ projects.addAll(tree.getAllProjects());
}
- return validationContext;
+ return projects;
}
- public void setValidationContext(IValidationContext context) {
- validationContext = context;
+ public IValidationContextManager getValidationContextManager() {
+ if(validationContextManager==null) {
+ validationContextManager = new ValidationContext(getProject());
+ }
+ return validationContextManager;
}
+ public void setValidationContextManager(IValidationContextManager context) {
+ validationContextManager = context;
+ }
+
public TextFileDocumentProvider getDocumentProvider() {
return documentProvider;
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidatorContext.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidatorContext.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidatorContext.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -31,6 +31,10 @@
private Map<ELReference, Set<String>> variableNamesByEl = new HashMap<ELReference, Set<String>>();
private Map<IPath, Set<ELReference>> elsByResource = new HashMap<IPath, Set<ELReference>>();
+ public ELValidatorContext(String id) {
+ super(id);
+ }
+
/**
* Save link between EL and variable name.
* @param variableName
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/LinkCollection.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/LinkCollection.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/LinkCollection.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -30,7 +30,12 @@
protected Map<String, Set<IPath>> resourcesByDeclaringVariableName = new HashMap<String, Set<IPath>>();
protected Map<IPath, Set<String>> declaringVariableNamesByResource = new HashMap<IPath, Set<String>>();
protected Set<IPath> unnamedResources = new HashSet<IPath>();
+ private String id;
+ public LinkCollection(String id) {
+ this.id = id;
+ }
+
protected int modifications = 0;
/**
@@ -271,17 +276,6 @@
modifications = 0;
}
- private boolean checkDeclaration(IPath resource, String variableName) {
- Set<IPath> paths = resourcesByDeclaringVariableName.get(variableName);
- if(paths!=null) {
- for (IPath path : paths) {
- if(path.equals(resource)) {
- return true;
- }
- }
- }
- return false;
- }
/**
* Load the collection from XML
* @param root
@@ -308,7 +302,23 @@
modifications = 0;
}
+ private boolean checkDeclaration(IPath resource, String variableName) {
+ Set<IPath> paths = resourcesByDeclaringVariableName.get(variableName);
+ if(paths!=null) {
+ for (IPath path : paths) {
+ if(path.equals(resource)) {
+ return true;
+ }
+ }
+ }
+ return false;
+ }
+
public int getModificationsSinceLastStore() {
return modifications;
}
+
+ public String getId() {
+ return id;
+ }
}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ProjectValidationContext.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ProjectValidationContext.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ProjectValidationContext.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -10,18 +10,17 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.internal.validation;
+import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
+import java.util.Map;
import java.util.Set;
import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.IPath;
import org.jboss.tools.common.el.core.ELReference;
import org.jboss.tools.common.xml.XMLUtilities;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
-import org.jboss.tools.jst.web.kb.validation.IValidator;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.w3c.dom.Element;
/**
@@ -29,96 +28,121 @@
* validation invoking.
* @author Alexey Kazakov
*/
-public class ProjectValidationContext implements IValidationContext {
+public class ProjectValidationContext implements IProjectValidationContext {
// We should load/save these collections between eclipse sessions.
- private LinkCollection coreLinks = new LinkCollection();
- private ELValidatorContext elLinks = new ELValidatorContext();
+ private Map<String, LinkCollection> coreLinks = new HashMap<String, LinkCollection>();
+ private Map<String, ELValidatorContext> elLinks = new HashMap<String, ELValidatorContext>();
- private Set<IFile> removedFiles = new HashSet<IFile>();
- private Set<IFile> registeredResources = new HashSet<IFile>();
- private Set<String> oldVariableNamesForELValidation = new HashSet<String>();
+ private Map<String, Set<String>> oldVariableNamesForELValidation = new HashMap<String, Set<String>>();
- int modifications = 0;
+ private ValidationResourceRegister validationResourceRegister;
+ private LinkCollection getCoreLinks(String validatorId) {
+ LinkCollection linkCollection = coreLinks.get(validatorId);
+ if(linkCollection==null) {
+ linkCollection = new LinkCollection(validatorId);
+ coreLinks.put(validatorId, linkCollection);
+ }
+ return linkCollection;
+ }
+
+ private ELValidatorContext getElLinks(String validatorId) {
+ ELValidatorContext linkCollection = elLinks.get(validatorId);
+ if(linkCollection==null) {
+ linkCollection = new ELValidatorContext(validatorId);
+ elLinks.put(validatorId, linkCollection);
+ }
+ return linkCollection;
+ }
+
+ private Set<String> getOldVariableNamesForELValidation(String validatorId) {
+ Set<String> linkCollection = oldVariableNamesForELValidation.get(validatorId);
+ if(linkCollection==null) {
+ linkCollection = new HashSet<String>();
+ oldVariableNamesForELValidation.put(validatorId, linkCollection);
+ }
+ return linkCollection;
+ }
+
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addLinkedCoreResource(java.lang.String, org.eclipse.core.runtime.IPath, boolean)
*/
- public void addLinkedCoreResource(String variableName, IPath linkedResourcePath, boolean declaration) {
- coreLinks.addLinkedResource(variableName, linkedResourcePath, declaration);
+ public void addLinkedCoreResource(String validatorId, String variableName, IPath linkedResourcePath, boolean declaration) {
+ getCoreLinks(validatorId).addLinkedResource(variableName, linkedResourcePath, declaration);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeLinkedCoreResource(java.lang.String, org.eclipse.core.runtime.IPath)
*/
- public void removeLinkedCoreResource(String name, IPath linkedResourcePath) {
- coreLinks.removeLinkedResource(name, linkedResourcePath);
+ public void removeLinkedCoreResource(String validatorId, String name, IPath linkedResourcePath) {
+ getCoreLinks(validatorId).removeLinkedResource(name, linkedResourcePath);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeLinkedCoreResources(java.util.Set)
*/
- public void removeLinkedCoreResources(Set<IPath> resources) {
- coreLinks.removeLinkedResources(resources);
+ public void removeLinkedCoreResources(String validatorId, Set<IPath> resources) {
+ getCoreLinks(validatorId).removeLinkedResources(resources);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeLinkedCoreResource(org.eclipse.core.runtime.IPath)
*/
- public void removeLinkedCoreResource(IPath resource) {
- coreLinks.removeLinkedResource(resource);
+ public void removeLinkedCoreResource(String validatorId, IPath resource) {
+ getCoreLinks(validatorId).removeLinkedResource(resource);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getCoreResourcesByVariableName(java.lang.String, boolean)
*/
- public Set<IPath> getCoreResourcesByVariableName(String variableName, boolean declaration) {
- return coreLinks.getResourcesByVariableName(variableName, declaration);
+ public Set<IPath> getCoreResourcesByVariableName(String validatorId, String variableName, boolean declaration) {
+ return getCoreLinks(validatorId).getResourcesByVariableName(variableName, declaration);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getVariableNamesByCoreResource(org.eclipse.core.runtime.IPath, boolean)
*/
- public Set<String> getVariableNamesByCoreResource(IPath fullPath, boolean declaration) {
- return coreLinks.getVariableNamesByResource(fullPath, declaration);
+ public Set<String> getVariableNamesByCoreResource(String validatorId, IPath fullPath, boolean declaration) {
+ return getCoreLinks(validatorId).getVariableNamesByResource(fullPath, declaration);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addUnnamedCoreResource(org.eclipse.core.runtime.IPath)
*/
- public void addUnnamedCoreResource(IPath fullPath) {
- coreLinks.addUnnamedResource(fullPath);
+ public void addUnnamedCoreResource(String validatorId, IPath fullPath) {
+ getCoreLinks(validatorId).addUnnamedResource(fullPath);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getUnnamedCoreResources()
*/
- public Set<IPath> getUnnamedCoreResources() {
- return coreLinks.getUnnamedResources();
+ public Set<IPath> getUnnamedCoreResources(String validatorId) {
+ return getCoreLinks(validatorId).getUnnamedResources();
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeUnnamedCoreResource(org.eclipse.core.runtime.IPath)
*/
- public void removeUnnamedCoreResource(IPath fullPath) {
- coreLinks.removeUnnamedResource(fullPath);
+ public void removeUnnamedCoreResource(String validatorId, IPath fullPath) {
+ getCoreLinks(validatorId).removeUnnamedResource(fullPath);
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addUnnamedElResource(org.eclipse.core.runtime.IPath)
*/
- public void addUnnamedElResource(IPath fullPath) {
- elLinks.addUnnamedResource(fullPath);
+ public void addUnnamedElResource(String validatorId, IPath fullPath) {
+ getElLinks(validatorId).addUnnamedResource(fullPath);
}
/*
@@ -126,7 +150,11 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getUnnamedElResources()
*/
public Set<IPath> getUnnamedElResources() {
- return elLinks.getUnnamedResources();
+ Set<IPath> result = new HashSet<IPath>();
+ for (ELValidatorContext elLinksCollection : elLinks.values()) {
+ result.addAll(elLinksCollection.getUnnamedResources());
+ }
+ return result;
}
/*
@@ -134,15 +162,17 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeUnnamedElResource(org.eclipse.core.runtime.IPath)
*/
public void removeUnnamedElResource(IPath fullPath) {
- elLinks.removeUnnamedResource(fullPath);
+ for (ELValidatorContext links : elLinks.values()) {
+ links.removeUnnamedResource(fullPath);
+ }
}
/*
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addVariableNameForELValidation(java.lang.String)
*/
- public void addVariableNameForELValidation(String name) {
- oldVariableNamesForELValidation.add(name);
+ public void addVariableNameForELValidation(String validatorId, String name) {
+ getOldVariableNamesForELValidation(validatorId).add(name);
}
/*
@@ -150,7 +180,9 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeLinkedEls(java.util.Set)
*/
public void removeLinkedEls(Set<IFile> resorces) {
- elLinks.removeLinkedEls(resorces);
+ for (ELValidatorContext links : elLinks.values()) {
+ links.removeLinkedEls(resorces);
+ }
}
/*
@@ -159,27 +191,31 @@
*/
public Set<ELReference> getElsForValidation(Set<IFile> changedFiles, boolean onlyChangedVariables) {
Set<ELReference> result = new HashSet<ELReference>();
- // Collect all ELs which use new variables names
- for(IResource resource : changedFiles) {
- Set<String> newNames = getVariableNamesByCoreResource(resource.getFullPath(), true);
- if(newNames!=null) {
- for (String newName : newNames) {
- if(!onlyChangedVariables || !oldVariableNamesForELValidation.contains(newName)) {
- Set<ELReference> els = elLinks.getElsByVariableName(newName);
+ for (String id : elLinks.keySet()) {
+ ELValidatorContext elLinksCollection = getElLinks(id);
+ Set<String> oldVariableNamesForELValidation = getOldVariableNamesForELValidation(id);
+ // Collect all ELs which use new variables names
+ for(IResource resource : changedFiles) {
+ Set<String> newNames = getVariableNamesByCoreResource(id, resource.getFullPath(), true);
+ if(newNames!=null) {
+ for (String newName : newNames) {
+ if(!onlyChangedVariables || ! oldVariableNamesForELValidation.contains(newName)) {
+ Set<ELReference> els = elLinksCollection.getElsByVariableName(newName);
+ if(els!=null) {
+ result.addAll(els);
+ }
+ }
+ }
+ }
+ for (String oldName :oldVariableNamesForELValidation) {
+ if(!onlyChangedVariables || newNames==null || !newNames.contains(oldName)) {
+ Set<ELReference> els = elLinksCollection.getElsByVariableName(oldName);
if(els!=null) {
result.addAll(els);
}
}
}
}
- for (String oldName : oldVariableNamesForELValidation) {
- if(!onlyChangedVariables || newNames==null || !newNames.contains(oldName)) {
- Set<ELReference> els = elLinks.getElsByVariableName(oldName);
- if(els!=null) {
- result.addAll(els);
- }
- }
- }
}
return result;
}
@@ -189,43 +225,15 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#clearAll()
*/
public void clearAll() {
- removedFiles.clear();
- synchronized (registeredResources) {
- registeredResources.clear();
+ for (LinkCollection links : coreLinks.values()) {
+ links.clearAll();
}
- oldVariableNamesForELValidation.clear();
- coreLinks.clearAll();
- elLinks.clearAll();
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#clearAllResourceLinks()
- */
- public void clearAllResourceLinks() {
- oldVariableNamesForELValidation.clear();
- coreLinks.clearAll();
- elLinks.clearAll();
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#clearRegisteredFiles()
- */
- public void clearRegisteredFiles() {
- removedFiles.clear();
- synchronized (registeredResources) {
- registeredResources.clear();
+ coreLinks.clear();
+ for (ELValidatorContext links : elLinks.values()) {
+ links.clearAll();
}
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#clearElResourceLinks()
- */
- public void clearElResourceLinks() {
+ elLinks.clear();
oldVariableNamesForELValidation.clear();
- elLinks.clearAll();
}
/*
@@ -241,7 +249,9 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addLinkedEl(java.lang.String, org.jboss.tools.jst.web.kb.validation.ELReference)
*/
public void addLinkedEl(String variableName, ELReference el) {
- elLinks.addLinkedEl(variableName, el);
+ for (ELValidatorContext elLinksCollection : elLinks.values()) {
+ elLinksCollection.addLinkedEl(variableName, el);
+ }
}
/*
@@ -249,7 +259,9 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#removeLinkedEl(java.lang.String, org.jboss.tools.jst.web.kb.validation.ELReference)
*/
public void removeLinkedEl(String name, ELReference el) {
- elLinks.removeLinkedEl(name, el);
+ for (ELValidatorContext elLinksCollection : elLinks.values()) {
+ elLinksCollection.removeLinkedEl(name, el);
+ }
}
/*
@@ -257,7 +269,11 @@
* @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getElsByVariableName(java.lang.String)
*/
public Set<ELReference> getElsByVariableName(String variableName) {
- return elLinks.getElsByVariableName(variableName);
+ Set<ELReference> result = new HashSet<ELReference>();
+ for (ELValidatorContext elLinksCollection : elLinks.values()) {
+ result.addAll(elLinksCollection.getElsByVariableName(variableName));
+ }
+ return result;
}
/*
@@ -266,11 +282,16 @@
*/
public void store(Element root) {
Element validation = XMLUtilities.createElement(root, "validation"); //$NON-NLS-1$
- Element core = XMLUtilities.createElement(validation, "core"); //$NON-NLS-1$
- coreLinks.store(core);
- Element el = XMLUtilities.createElement(validation, "el"); //$NON-NLS-1$
- elLinks.store(el);
- modifications = 0;
+ for (LinkCollection links : coreLinks.values()) {
+ Element core = XMLUtilities.createElement(validation, "core"); //$NON-NLS-1$
+ core.setAttribute("validator-id", links.getId()); //$NON-NLS-1$
+ links.store(core);
+ }
+ for (ELValidatorContext links : elLinks.values()) {
+ Element el = XMLUtilities.createElement(validation, "el"); //$NON-NLS-1$
+ el.setAttribute("validator-id", links.getId()); //$NON-NLS-1$
+ links.store(el);
+ }
}
/*
@@ -280,75 +301,46 @@
public void load(Element root) {
Element validation = XMLUtilities.getUniqueChild(root, "validation"); //$NON-NLS-1$
if(validation == null) return;
- Element core = XMLUtilities.getUniqueChild(validation, "core"); //$NON-NLS-1$
- if(core != null) {
- coreLinks.load(core);
+ Element[] cores = XMLUtilities.getChildren(validation, "core"); //$NON-NLS-1$
+ for (Element core : cores) {
+ String id = core.getAttribute("validator-id"); //$NON-NLS-1$
+ if(id!=null && id.trim().length()>0) {
+ getCoreLinks(id).load(core);
+ }
}
- Element el = XMLUtilities.getUniqueChild(validation, "el"); //$NON-NLS-1$
- if(el != null) {
- elLinks.load(el);
+ Element[] els = XMLUtilities.getChildren(validation, "el"); //$NON-NLS-1$
+ for (Element el : els) {
+ String id = el.getAttribute("validator-id"); //$NON-NLS-1$
+ if(id!=null && id.trim().length()>0) {
+ getElLinks(id).load(el);
+ }
}
- modifications = 0;
}
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getRemovedFiles()
- */
- public Set<IFile> getRemovedFiles() {
- return removedFiles;
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addRemovedFile(org.eclipse.core.resources.IFile)
- */
- public void addRemovedFile(IFile file) {
- removedFiles.add(file);
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getRegisteredFiles()
- */
- public Set<IFile> getRegisteredFiles() {
- Set<IFile> copy = new HashSet<IFile>();
- synchronized (registeredResources) {
- copy.addAll(registeredResources);
+ public int getModificationsSinceLastStore() {
+ int result = 0;
+ for (LinkCollection links : coreLinks.values()) {
+ result = result + links.getModificationsSinceLastStore();
}
- return copy;
- }
-
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#registerFile(org.eclipse.core.resources.IFile)
- */
- public void registerFile(IFile file) {
- synchronized (registeredResources) {
- if(!registeredResources.contains(file)) {
- registeredResources.add(file);
- modifications++;
- }
+ for (ELValidatorContext links : elLinks.values()) {
+ result = result + links.getModificationsSinceLastStore();
}
+ return result;
}
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getRootProject()
+ * @see org.jboss.tools.jst.web.kb.validation.IProjectValidationContext#setValidationResourceRegister(org.jboss.tools.jst.web.kb.internal.validation.ValidationResourceRegister)
*/
- public IProject getRootProject() {
- return null;
+ public void setValidationResourceRegister(ValidationResourceRegister validationResourceRegister) {
+ this.validationResourceRegister = validationResourceRegister;
}
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getValidators()
+ * @see org.jboss.tools.jst.web.kb.validation.IProjectValidationContext#getValidationResourceRegister()
*/
- public List<IValidator> getValidators() {
- return null;
+ public ValidationResourceRegister getValidationResourceRegister() {
+ return validationResourceRegister;
}
-
- public int getModificationsSinceLastStore() {
- return modifications + coreLinks.getModificationsSinceLastStore() + elLinks.getModificationsSinceLastStore();
- }
}
\ No newline at end of file
Added: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java (rev 0)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -0,0 +1,86 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.jst.web.kb.internal.validation;
+
+import java.util.HashMap;
+import java.util.HashSet;
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
+
+/**
+ * Represents a validating project tree with the only brunch.
+ * @author Alexey Kazakov
+ */
+public class SimpleValidatingProjectTree implements IValidatingProjectTree, IValidatingProjectSet {
+
+ private Map<IProject, IValidatingProjectSet> brunches = new HashMap<IProject, IValidatingProjectSet>();
+ private IValidatingProjectSet brunch;
+ private Set<IProject> validatingProjects = new HashSet<IProject>();
+
+ public SimpleValidatingProjectTree(IProject project) {
+ addProject(project);
+ }
+
+ public SimpleValidatingProjectTree(IValidatingProjectSet brunch) {
+ this.brunch = brunch;
+ brunches.put(brunch.getRootProject(), brunch);
+ }
+
+ /* (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#getBrunches()
+ */
+ public Map<IProject, IValidatingProjectSet> getBrunches() {
+ return brunches;
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getRootProject()
+ */
+ public IProject getRootProject() {
+ return brunch.getRootProject();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getAllProjests()
+ */
+ public Set<IProject> getAllProjects() {
+ return brunch.getAllProjects();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getRootContext()
+ */
+ public IProjectValidationContext getRootContext() {
+ return brunch.getRootContext();
+ }
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree#addProject(org.eclipse.core.resources.IProject)
+ */
+ public void addProject(IProject project) {
+ if(project!=null && !validatingProjects.contains(project)) {
+ Set<IProject> allProjects = new HashSet<IProject>();
+ allProjects.add(project);
+ IValidatingProjectSet brunch = new ValidatingProjectSet(project, allProjects, new ProjectValidationContext());
+ brunches.put(brunch.getRootProject(), brunch);
+ validatingProjects.add(project);
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/SimpleValidatingProjectTree.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatingProjectSet.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatingProjectSet.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatingProjectSet.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -10,11 +10,11 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.internal.validation;
-import java.util.List;
+import java.util.Set;
import org.eclipse.core.resources.IProject;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
/**
* @author Alexey Kazakov
@@ -22,8 +22,8 @@
public class ValidatingProjectSet implements IValidatingProjectSet {
protected IProject rootProject;
- protected List<IProject> allProjects;
- protected IValidationContext rootContext;
+ protected Set<IProject> allProjects;
+ protected IProjectValidationContext rootContext;
protected ValidatingProjectSet() {
}
@@ -33,7 +33,7 @@
* @param allProjects
* @param rootContext
*/
- public ValidatingProjectSet(IProject rootProject, List<IProject> allProjects, IValidationContext rootContext) {
+ public ValidatingProjectSet(IProject rootProject, Set<IProject> allProjects, IProjectValidationContext rootContext) {
this.rootProject = rootProject;
this.allProjects = allProjects;
this.rootContext = rootContext;
@@ -42,14 +42,14 @@
/* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getAllProjests()
*/
- public List<IProject> getAllProjests() {
+ public Set<IProject> getAllProjects() {
return allProjects;
}
/* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet#getRootContext()
*/
- public IValidationContext getRootContext() {
+ public IProjectValidationContext getRootContext() {
return rootContext;
}
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationContext.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationContext.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationContext.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -11,8 +11,8 @@
package org.jboss.tools.jst.web.kb.internal.validation;
import java.util.ArrayList;
-import java.util.Collections;
import java.util.HashMap;
+import java.util.HashSet;
import java.util.List;
import java.util.Map;
import java.util.Set;
@@ -24,24 +24,24 @@
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IExtensionPoint;
import org.eclipse.core.runtime.IExtensionRegistry;
-import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.Platform;
-import org.jboss.tools.common.el.core.ELReference;
import org.jboss.tools.jst.web.kb.WebKbPlugin;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
+import org.jboss.tools.jst.web.kb.validation.IValidationContextManager;
import org.jboss.tools.jst.web.kb.validation.IValidator;
-import org.w3c.dom.Element;
/**
* @author Alexey Kazakov
*/
-public class ValidationContext implements IValidationContext {
+public class ValidationContext implements IValidationContextManager {
- private IValidationContext rootContext;
- private IProject rootProject;
+ private ValidationResourceRegister validationResourceRegister;
+ private Map<IValidator, IValidatingProjectTree> projectTree = new HashMap<IValidator, IValidatingProjectTree>();
private static List<IValidator> ALL_VALIDATORS;
private List<IValidator> validators = new ArrayList<IValidator>();
+ private Map<IValidator, Set<IProject>> validatedProjects = new HashMap<IValidator, Set<IProject>>();
public ValidationContext(IProject project) {
if(ALL_VALIDATORS == null) {
@@ -83,21 +83,42 @@
for (IValidator validator : ALL_VALIDATORS) {
if(validator.shouldValidate(project)) {
validators.add(validator);
+ IValidatingProjectTree prTree = validator.getValidatingProjects(project);
+ projectTree.put(validator, prTree);
}
}
- for (IValidator validator : validators) {
- IValidatingProjectSet prSet = validator.getValidatingProjects(project);
- IProject vProject = prSet.getRootProject();
- if(vProject!=project) {
- rootProject = vProject;
- rootContext = prSet.getRootContext();
- } else if(rootContext==null) {
- rootContext = prSet.getRootContext();
+ }
+
+ private ValidationResourceRegister getValidationResourceRegister() {
+ if(validationResourceRegister==null && !projectTree.isEmpty()) {
+ // Initialize the register
+ for (IValidatingProjectTree tree : projectTree.values()) {
+ boolean inited = false;
+ if(!tree.getBrunches().isEmpty()) {
+ for (IValidatingProjectSet brunch : tree.getBrunches().values()) {
+ IProjectValidationContext context = brunch.getRootContext();
+ ValidationResourceRegister register = context.getValidationResourceRegister();
+ if(register==null) {
+ if(validationResourceRegister==null) {
+ validationResourceRegister = new ValidationResourceRegister();
+ }
+ context.setValidationResourceRegister(validationResourceRegister);
+ } else {
+ validationResourceRegister = register;
+ inited = true;
+ break;
+ }
+ }
+ }
+ if(inited) {
+ break;
+ }
}
}
- if(rootProject==null) {
- rootProject = project;
+ if(validationResourceRegister==null) {
+ validationResourceRegister = new ValidationResourceRegister();
}
+ return validationResourceRegister;
}
/*
@@ -108,230 +129,124 @@
return validators;
}
- /*
- * (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#addLinkedCoreResource(java.lang.String, org.eclipse.core.runtime.IPath, boolean)
- */
- public void addLinkedCoreResource(String variableName, IPath linkedResourcePath, boolean declaration) {
- rootContext.addLinkedCoreResource(variableName, linkedResourcePath, declaration);
- }
-
/* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#addLinkedEl(java.lang.String, org.jboss.tools.seam.internal.core.validation.ELReference)
- */
- public void addLinkedEl(String variableName, ELReference el) {
- rootContext.addLinkedEl(variableName, el);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#addRemovedFile(org.eclipse.core.resources.IFile)
- */
- public void addRemovedFile(IFile file) {
- if(rootContext!=null) {
- rootContext.addRemovedFile(file);
- }
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#addUnnamedCoreResource(org.eclipse.core.runtime.IPath)
- */
- public void addUnnamedCoreResource(IPath fullPath) {
- rootContext.addUnnamedCoreResource(fullPath);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#addUnnamedElResource(org.eclipse.core.runtime.IPath)
- */
- public void addUnnamedElResource(IPath fullPath) {
- rootContext.addUnnamedElResource(fullPath);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#addVariableNameForELValidation(java.lang.String)
- */
- public void addVariableNameForELValidation(String name) {
- rootContext.addVariableNameForELValidation(name);
- }
-
- /* (non-Javadoc)
* @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#clearAll()
*/
public void clearAll() {
- rootContext.clearAll();
+ clearRegisteredFiles();
+ for (IValidatingProjectTree tree : projectTree.values()) {
+ for (IValidatingProjectSet brunch : tree.getBrunches().values()) {
+ brunch.getRootContext().clearAll();
+ }
+ }
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#clearAllResourceLinks()
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#clearRegisteredFiles()
*/
- public void clearAllResourceLinks() {
- rootContext.clearAllResourceLinks();
+ public void clearRegisteredFiles() {
+ getValidationResourceRegister().clear();
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#clearElResourceLinks()
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getRemovedFiles()
*/
- public void clearElResourceLinks() {
- rootContext.clearElResourceLinks();
+ public Set<IFile> getRemovedFiles() {
+ return getValidationResourceRegister().getRemovedFiles();
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#clearOldVariableNameForElValidation()
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#addRemovedFile(org.eclipse.core.resources.IFile)
*/
- public void clearOldVariableNameForElValidation() {
- rootContext.clearOldVariableNameForElValidation();
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#clearRegisteredFiles()
- */
- public void clearRegisteredFiles() {
- if(rootContext!=null) {
- rootContext.clearRegisteredFiles();
+ public void addRemovedFile(IFile file) {
+ getValidationResourceRegister().addRemovedFile(file);
+ for (IValidatingProjectTree tree : projectTree.values()) {
+ tree.addProject(file.getProject());
}
}
/*
* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getCoreResourcesByVariableName(java.lang.String, boolean)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getRegisteredFiles()
*/
- public Set<IPath> getCoreResourcesByVariableName(String variableName, boolean declaration) {
- return rootContext.getCoreResourcesByVariableName(variableName, declaration);
+ public Set<IFile> getRegisteredFiles() {
+ return getValidationResourceRegister().getRegisteredFiles();
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getElsByVariableName(java.lang.String)
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#registerFile(org.eclipse.core.resources.IFile)
*/
- public Set<ELReference> getElsByVariableName(String variableName) {
- return rootContext.getElsByVariableName(variableName);
+ public void registerFile(IFile file) {
+ getValidationResourceRegister().registerFile(file);
}
/*
* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getElsForValidation(java.util.Set, boolean)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContextManager#getValidatingProjectTree(org.jboss.tools.jst.web.kb.validation.IValidator)
*/
- public Set<ELReference> getElsForValidation(Set<IFile> changedFiles, boolean onlyChangedVariables) {
- return rootContext.getElsForValidation(changedFiles, onlyChangedVariables);
+ public IValidatingProjectTree getValidatingProjectTree(IValidator validator) {
+ return projectTree.get(validator);
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getRegisteredFiles()
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContextManager#addProject(org.eclipse.core.resources.IProject)
*/
- public Set<IFile> getRegisteredFiles() {
- if(rootContext==null) {
- return Collections.emptySet();
+ public void addProject(IProject project) {
+ for (IValidator validator : validators) {
+ projectTree.get(validator).addProject(project);
}
- return rootContext.getRegisteredFiles();
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getRemovedFiles()
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContextManager#getRootProjects()
*/
- public Set<IFile> getRemovedFiles() {
- if(rootContext==null) {
- return Collections.emptySet();
+ public Set<IProject> getRootProjects() {
+ Set<IProject> roots = new HashSet<IProject>();
+ for (IValidatingProjectTree tree : projectTree.values()) {
+ for (IValidatingProjectSet brunch : tree.getBrunches().values()) {
+ roots.add(brunch.getRootProject());
+ }
}
- return rootContext.getRemovedFiles();
+ return roots;
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getUnnamedCoreResources()
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContextManager#clearAllResourceLinks()
*/
- public Set<IPath> getUnnamedCoreResources() {
- return rootContext.getUnnamedCoreResources();
+ public void clearAllResourceLinks() {
+ for (IValidatingProjectTree tree : projectTree.values()) {
+ for (IValidatingProjectSet brunch : tree.getBrunches().values()) {
+ brunch.getRootContext().clearAll();
+ }
+ }
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getUnnamedElResources()
- */
- public Set<IPath> getUnnamedElResources() {
- return rootContext.getUnnamedElResources();
- }
-
/*
* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#getVariableNamesByCoreResource(org.eclipse.core.runtime.IPath, boolean)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContextManager#addValidatedProject(org.jboss.tools.jst.web.kb.validation.IValidator, org.eclipse.core.resources.IProject)
*/
- public Set<String> getVariableNamesByCoreResource(IPath fullPath, boolean declaration) {
- return rootContext.getVariableNamesByCoreResource(fullPath, declaration);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#load(org.w3c.dom.Element)
- */
- public void load(Element root) {
- rootContext.load(root);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#registerFile(org.eclipse.core.resources.IFile)
- */
- public void registerFile(IFile file) {
- if(rootContext!=null) {
- rootContext.registerFile(file);
+ public void addValidatedProject(IValidator validator, IProject project) {
+ Set<IProject> projects = validatedProjects.get(validator);
+ if(projects==null) {
+ projects = new HashSet<IProject>();
+ validatedProjects.put(validator, projects);
}
+ projects.add(project);
}
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeLinkedCoreResource(org.eclipse.core.runtime.IPath)
- */
- public void removeLinkedCoreResource(IPath resource) {
- rootContext.removeLinkedCoreResource(resource);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeLinkedCoreResource(java.lang.String, org.eclipse.core.runtime.IPath)
- */
- public void removeLinkedCoreResource(String name, IPath linkedResourcePath) {
- rootContext.removeLinkedCoreResource(name, linkedResourcePath);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeLinkedCoreResources(java.util.Set)
- */
- public void removeLinkedCoreResources(Set<IPath> resources) {
- rootContext.removeLinkedCoreResources(resources);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeLinkedEl(java.lang.String, org.jboss.tools.seam.internal.core.validation.ELReference)
- */
- public void removeLinkedEl(String name, ELReference el) {
- rootContext.removeLinkedEl(name, el);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeLinkedEls(java.util.Set)
- */
- public void removeLinkedEls(Set<IFile> resorces) {
- rootContext.removeLinkedEls(resorces);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeUnnamedCoreResource(org.eclipse.core.runtime.IPath)
- */
- public void removeUnnamedCoreResource(IPath fullPath) {
- rootContext.removeUnnamedCoreResource(fullPath);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#removeUnnamedElResource(org.eclipse.core.runtime.IPath)
- */
- public void removeUnnamedElResource(IPath fullPath) {
- rootContext.removeUnnamedElResource(fullPath);
- }
-
- /* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidationContext#store(org.w3c.dom.Element)
- */
- public void store(Element root) {
- rootContext.store(root);
- }
-
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidationContext#getRootProject()
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationContextManager#projectHasBeenValidated(org.jboss.tools.jst.web.kb.validation.IValidator, org.eclipse.core.resources.IProject)
*/
- public IProject getRootProject() {
- return rootProject;
+ public boolean projectHasBeenValidated(IValidator validator, IProject project) {
+ Set<IProject> projects = validatedProjects.get(validator);
+ return projects==null?false:projects.contains(project);
}
}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationErrorManager.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -32,7 +32,7 @@
import org.jboss.tools.common.text.ITextSourceReference;
import org.jboss.tools.jst.web.kb.KbMessages;
import org.jboss.tools.jst.web.kb.WebKbPlugin;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidationErrorManager;
/**
@@ -52,7 +52,7 @@
protected IReporter reporter;
protected IProject validatingProject;
protected String markerId;
- protected IValidationContext validationContext;
+ protected IProjectValidationContext validationContext;
protected TextFileDocumentProvider documentProvider;
private String messageIdQuickFixAttributeName;
@@ -71,17 +71,21 @@
this.messageIdQuickFixAttributeName = messageIdQuickFixAttributeName;
}
- public void init(IProject project, ContextValidationHelper validationHelper, IValidator manager, IReporter reporter) {
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
+ public void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext validationContext, IValidator manager, IReporter reporter) {
setProject(project);
setCoreHelper(validationHelper);
setValidationManager(manager);
setReporter(reporter);
- setValidationContext(validationHelper.getValidationContext());
+ setValidationContext(validationContext);
setMarkerId(org.jboss.tools.jst.web.kb.validation.IValidator.MARKED_RESOURCE_MESSAGE_GROUP);
}
- public void init(IProject project, ContextValidationHelper validationHelper, IValidator manager, IReporter reporter, String messageIdQuickFixAttributeName) {
- this.init(project, validationHelper, manager, reporter);
+ public void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext validationContext, IValidator manager, IReporter reporter, String messageIdQuickFixAttributeName) {
+ this.init(project, validationHelper, validationContext, manager, reporter);
setMessageIdQuickFixAttributeName(messageIdQuickFixAttributeName);
}
@@ -123,7 +127,7 @@
/**
* @param validationContext the validationContext to set
*/
- public void setValidationContext(IValidationContext validationContext) {
+ public void setValidationContext(IProjectValidationContext validationContext) {
this.validationContext = validationContext;
}
@@ -212,7 +216,7 @@
return this.getClass();
}
- public IValidationContext getValidationContext() {
+ public IProjectValidationContext getValidationContext() {
return validationContext;
}
Added: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java (rev 0)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -0,0 +1,57 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.jst.web.kb.internal.validation;
+
+import java.util.HashSet;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+
+/**
+ * @author Alexey Kazakov
+ */
+public class ValidationResourceRegister {
+ private Set<IFile> removedFiles = new HashSet<IFile>();
+ private Set<IFile> registeredResources = new HashSet<IFile>();
+
+ public void clear() {
+ synchronized (removedFiles) {
+ removedFiles.clear();
+ }
+ synchronized (registeredResources) {
+ registeredResources.clear();
+ }
+ }
+
+ public Set<IFile> getRemovedFiles() {
+ return removedFiles;
+ }
+
+ public void addRemovedFile(IFile file) {
+ removedFiles.add(file);
+ }
+
+ public Set<IFile> getRegisteredFiles() {
+ Set<IFile> copy = new HashSet<IFile>();
+ synchronized (registeredResources) {
+ copy.addAll(registeredResources);
+ }
+ return copy;
+ }
+
+ public void registerFile(IFile file) {
+ synchronized (registeredResources) {
+ if (!registeredResources.contains(file)) {
+ registeredResources.add(file);
+ }
+ }
+ }
+}
\ No newline at end of file
Property changes on: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidationResourceRegister.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -25,6 +25,8 @@
import org.eclipse.wst.validation.internal.provisional.core.IValidationContext;
import org.eclipse.wst.validation.internal.provisional.core.IValidatorJob;
import org.jboss.tools.jst.web.kb.WebKbPlugin;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IValidationContextManager;
import org.jboss.tools.jst.web.kb.validation.IValidator;
/**
@@ -63,33 +65,33 @@
if(project==null) {
return OK_STATUS;
}
- IProject rootProject = validationHelper.getValidationContext().getRootProject();
+ IValidationContextManager validationContextManager = validationHelper.getValidationContextManager();
+ Set<IProject> rootProjects = validationContextManager.getRootProjects();
IStatus status = OK_STATUS;
synchronized (validatingProjects) {
- if(validatingProjects.contains(rootProject)) {
- return OK_STATUS;
+ for (IProject rootProject : rootProjects) {
+ if(validatingProjects.contains(rootProject)) {
+ return OK_STATUS;
+ }
+ validatingProjects.add(rootProject);
}
- validatingProjects.add(rootProject);
}
synchronized (validatingProjects) {
- org.jboss.tools.jst.web.kb.validation.IValidationContext validationContext = null;
try {
- validationContext = new ValidationContext(project);
- validationHelper.setValidationContext(validationContext);
-
- List<IValidator> validators = validationHelper.getValidationContext().getValidators();
Set<IFile> changedFiles = validationHelper.getChangedFiles();
if(!changedFiles.isEmpty()) {
- status = validate(validators, changedFiles, rootProject, validationHelper, reporter);
- } else if(!validationContext.getRegisteredFiles().isEmpty()) {
- validationContext.clearAllResourceLinks();
- status = validateAll(validators, rootProject, validationHelper, reporter);
+ status = validate(changedFiles, validationHelper, reporter);
+ } else if(!validationContextManager.getRegisteredFiles().isEmpty()) {
+ validationContextManager.clearAllResourceLinks();
+ status = validateAll(validationHelper, reporter);
}
} finally {
- if(validationContext!=null) {
- validationContext.clearRegisteredFiles();
+ if(validationContextManager!=null) {
+ validationContextManager.clearRegisteredFiles();
}
- validatingProjects.remove(rootProject);
+ for (IProject rootProject : rootProjects) {
+ validatingProjects.remove(rootProject);
+ }
}
}
return status;
@@ -98,14 +100,38 @@
}
}
- private IStatus validate(List<IValidator> validators, Set<IFile> changedFiles, IProject rootProject, ContextValidationHelper validationHelper, IReporter reporter) throws ValidationException {
+ private IStatus validate(Set<IFile> changedFiles, ContextValidationHelper validationHelper, IReporter reporter) throws ValidationException {
+ IValidationContextManager validationContextManager = validationHelper.getValidationContextManager();
+ List<IValidator> validators = validationContextManager.getValidators();
+ Set<IProject> rootProjects = validationContextManager.getRootProjects();
removeMarkers(changedFiles);
for (IValidator validator : validators) {
- validator.validate(changedFiles, rootProject, validationHelper, this, reporter);
+ for (IProject rootProject : rootProjects) {
+ IValidatingProjectSet projectBrunch = validationHelper.getValidationContextManager().getValidatingProjectTree(validator).getBrunches().get(rootProject);
+ if(projectBrunch!=null) {
+ validator.validate(changedFiles, rootProject, validationHelper, projectBrunch.getRootContext(), this, reporter);
+ }
+ }
}
return OK_STATUS;
}
+ private IStatus validateAll(ContextValidationHelper validationHelper, IReporter reporter) throws ValidationException {
+ IValidationContextManager validationContextManager = validationHelper.getValidationContextManager();
+ List<IValidator> validators = validationContextManager.getValidators();
+ Set<IProject> rootProjects = validationContextManager.getRootProjects();
+ removeMarkers(validationHelper.getProjectSetRegisteredFiles());
+ for (IValidator validator : validators) {
+ for (IProject rootProject : rootProjects) {
+ IValidatingProjectSet projectBrunch = validationHelper.getValidationContextManager().getValidatingProjectTree(validator).getBrunches().get(rootProject);
+ if(projectBrunch!=null) {
+ validator.validateAll(rootProject, validationHelper, projectBrunch.getRootContext(), this, reporter);
+ }
+ }
+ }
+ return OK_STATUS;
+ }
+
private void removeMarkers(Set<IFile> files) {
try {
for (IFile file : files) {
@@ -118,14 +144,6 @@
}
}
- private IStatus validateAll(List<IValidator> validators, IProject rootProject, ContextValidationHelper validationHelper, IReporter reporter) throws ValidationException {
- removeMarkers(validationHelper.getProjectSetRegisteredFiles());
- for (IValidator validator : validators) {
- validator.validateAll(rootProject, validationHelper, this, reporter);
- }
- return OK_STATUS;
- }
-
/*
* (non-Javadoc)
* @see org.eclipse.wst.validation.internal.provisional.core.IValidator#cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)
Copied: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IProjectValidationContext.java (from rev 27711, trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContext.java)
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IProjectValidationContext.java (rev 0)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IProjectValidationContext.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -0,0 +1,142 @@
+/*******************************************************************************
+ * Copyright (c) 2009 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.jst.web.kb.validation;
+
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.IPath;
+import org.jboss.tools.common.el.core.ELReference;
+import org.jboss.tools.jst.web.kb.internal.validation.ValidationResourceRegister;
+import org.w3c.dom.Element;
+
+/**
+ * Contains information for validators that must be saved between validation invoking.
+ * @author Alexey Kazakov
+ */
+public interface IProjectValidationContext {
+
+ /**
+ * Save link between core resource and variable name.
+ * It's needed for incremental validation because we must save all linked resources of changed java file.
+ */
+ void addLinkedCoreResource(String validatorId, String variableName, IPath linkedResourcePath, boolean declaration);
+
+ /**
+ * Removes link between core resource and variable name.
+ * @param oldVariableName
+ * @param linkedResourcePath
+ */
+ void removeLinkedCoreResource(String validatorId, String name, IPath linkedResourcePath);
+
+ /**
+ * Removes link between core resources and variable names.
+ * @param linkedResources
+ */
+ void removeLinkedCoreResources(String validatorId, Set<IPath> resources);
+
+ /**
+ * Removes link between core resource and variable names.
+ * @param linkedResource
+ */
+ void removeLinkedCoreResource(String validatorId, IPath resource);
+
+ Set<IPath> getCoreResourcesByVariableName(String validatorId, String variableName, boolean declaration);
+
+ Set<String> getVariableNamesByCoreResource(String validatorId, IPath fullPath, boolean declaration);
+
+ /**
+ * Adds core resource without any link to any context variable name.
+ * @param fullPath
+ */
+ void addUnnamedCoreResource(String validatorId, IPath fullPath);
+
+ /**
+ * @return Set of coreresources without any link to any context variable name.
+ * @param fullPath
+ */
+ Set<IPath> getUnnamedCoreResources(String validatorId);
+
+ /**
+ * Removes unnamed EL resource.
+ * @param fullPath
+ */
+ void removeUnnamedCoreResource(String validatorId, IPath fullPath);
+
+ /**
+ * @return Set of EL resources without any link to any context variable name.
+ * @param fullPath
+ */
+ Set<IPath> getUnnamedElResources();
+
+ /**
+ * Removes unnamed EL resource.
+ * @param fullPath
+ */
+ void removeUnnamedElResource(IPath fullPath);
+
+ /**
+ * We should validate all EL resources which use these names.
+ * @param name
+ */
+ void addVariableNameForELValidation(String validatorId, String name);
+
+ void removeLinkedEls(Set<IFile> resorces);
+
+ /**
+ * Get ELs which should be validated
+ * @param changedFiles
+ * @param onlyChangedVariables
+ * @return
+ */
+ Set<ELReference> getElsForValidation(Set<IFile> changedFiles, boolean onlyChangedVariables);
+
+ void clearAll();
+
+ void clearOldVariableNameForElValidation();
+
+ /**
+ * Save link between EL and variable name.
+ * @param variableName
+ * @param el
+ */
+ void addLinkedEl(String variableName, ELReference el);
+
+ /**
+ * Removes link between EL and variable name.
+ * @param name
+ * @param el
+ */
+ void removeLinkedEl(String name, ELReference el);
+
+ /**
+ * Return ELs with given variable name
+ * @param variableName
+ * @return
+ */
+ Set<ELReference> getElsByVariableName(String variableName);
+
+ /**
+ * Stores context to XML element
+ * @param root
+ */
+ void store(Element root);
+
+ /**
+ * Loads context from XML element
+ * @param root
+ */
+ void load(Element root);
+
+ void setValidationResourceRegister(ValidationResourceRegister validationResourceRegister);
+
+ ValidationResourceRegister getValidationResourceRegister();
+}
\ No newline at end of file
Property changes on: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IProjectValidationContext.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectSet.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectSet.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectSet.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -10,7 +10,7 @@
******************************************************************************/
package org.jboss.tools.jst.web.kb.validation;
-import java.util.List;
+import java.util.Set;
import org.eclipse.core.resources.IProject;
@@ -26,12 +26,12 @@
IProject getRootProject();
/**
- * @return all projects of the set.
+ * @return all the projects of the set.
*/
- List<IProject> getAllProjests();
+ Set<IProject> getAllProjects();
/**
* @return Root validating context which is associated with the root project.
*/
- IValidationContext getRootContext();
+ IProjectValidationContext getRootContext();
}
\ No newline at end of file
Added: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectTree.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectTree.java (rev 0)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectTree.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -0,0 +1,44 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.jst.web.kb.validation;
+
+import java.util.Map;
+import java.util.Set;
+
+import org.eclipse.core.resources.IProject;
+
+/**
+ * Represents a tree of related projects which are being validated.
+ *
+ * @author Alexey Kazakov
+ */
+public interface IValidatingProjectTree {
+
+ /**
+ * Returns the the map of chains of dependent projects. We can call treat such chains of projects as brunches of the tree.
+ * Each chain ends with a root project which depends (directly or indirectly) on all the project in the brunch there is not other projects which depends on it.
+ * Map key is a root project, map value is a brunch for the root project.
+ *
+ * @return
+ */
+ Map<IProject, IValidatingProjectSet> getBrunches();
+
+ /**
+ * @return all the projects of the tree.
+ */
+ Set<IProject> getAllProjects();
+
+ /**
+ * Add brunches for of the project.
+ * @param project
+ */
+ void addProject(IProject project);
+}
\ No newline at end of file
Property changes on: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidatingProjectTree.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Deleted: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContext.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContext.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContext.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -1,170 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2009 Red Hat, Inc.
- * Distributed under license by Red Hat, Inc. All rights reserved.
- * This program is 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.jboss.tools.jst.web.kb.validation;
-
-import java.util.List;
-import java.util.Set;
-
-import org.eclipse.core.resources.IFile;
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.runtime.IPath;
-import org.jboss.tools.common.el.core.ELReference;
-import org.w3c.dom.Element;
-
-/**
- * Contains information for validators that must be saved between validation invoking.
- * @author Alexey Kazakov
- */
-public interface IValidationContext {
-
- /**
- * @return IProject which holds this context. One context could store information for a few dependent projects.
- * But the only one project should store a context for all dependent projects. Such root project will be returned by this method.
- */
- IProject getRootProject();
-
- /**
- * Save link between core resource and variable name.
- * It's needed for incremental validation because we must save all linked resources of changed java file.
- */
- void addLinkedCoreResource(String variableName, IPath linkedResourcePath, boolean declaration);
-
- /**
- * Removes link between core resource and variable name.
- * @param oldVariableName
- * @param linkedResourcePath
- */
- void removeLinkedCoreResource(String name, IPath linkedResourcePath);
-
- /**
- * Removes link between core resources and variable names.
- * @param linkedResources
- */
- void removeLinkedCoreResources(Set<IPath> resources);
-
- /**
- * Removes link between core resource and variable names.
- * @param linkedResource
- */
- void removeLinkedCoreResource(IPath resource);
-
- Set<IPath> getCoreResourcesByVariableName(String variableName, boolean declaration);
-
- Set<String> getVariableNamesByCoreResource(IPath fullPath, boolean declaration);
-
- /**
- * Adds core resource without any link to any context variable name.
- * @param fullPath
- */
- void addUnnamedCoreResource(IPath fullPath);
-
- /**
- * @return Set of coreresources without any link to any context variable name.
- * @param fullPath
- */
- Set<IPath> getUnnamedCoreResources();
-
- /**
- * Removes unnamed EL resource.
- * @param fullPath
- */
- void removeUnnamedCoreResource(IPath fullPath);
-
- /**
- * Adds EL resource without any link to any context variable name.
- * @param fullPath
- */
- void addUnnamedElResource(IPath fullPath);
-
- /**
- * @return Set of EL resources without any link to any context variable name.
- * @param fullPath
- */
- Set<IPath> getUnnamedElResources();
-
- /**
- * Removes unnamed EL resource.
- * @param fullPath
- */
- void removeUnnamedElResource(IPath fullPath);
-
- /**
- * We should validate all EL resources which use these names.
- * @param name
- */
- void addVariableNameForELValidation(String name);
-
- void removeLinkedEls(Set<IFile> resorces);
-
- /**
- * Get ELs which should be validated
- * @param changedFiles
- * @param onlyChangedVariables
- * @return
- */
- Set<ELReference> getElsForValidation(Set<IFile> changedFiles, boolean onlyChangedVariables);
-
- void clearAll();
-
- void clearAllResourceLinks();
-
- void clearRegisteredFiles();
-
- void clearElResourceLinks();
-
- void clearOldVariableNameForElValidation();
-
- /**
- * Save link between EL and variable name.
- * @param variableName
- * @param el
- */
- void addLinkedEl(String variableName, ELReference el);
-
- /**
- * Removes link between EL and variable name.
- * @param name
- * @param el
- */
- void removeLinkedEl(String name, ELReference el);
-
- /**
- * Return ELs with given variable name
- * @param variableName
- * @return
- */
- Set<ELReference> getElsByVariableName(String variableName);
-
- /**
- * Stores context to XML element
- * @param root
- */
- void store(Element root);
-
- /**
- * Loads context from XML element
- * @param root
- */
- void load(Element root);
-
- Set<IFile> getRemovedFiles();
-
- void addRemovedFile(IFile file);
-
- Set<IFile> getRegisteredFiles();
-
- void registerFile(IFile file);
-
- /**
- * @return a list of validators which are associated with this context.
- */
- List<IValidator> getValidators();
-}
\ No newline at end of file
Added: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextManager.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextManager.java (rev 0)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextManager.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -0,0 +1,52 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.jst.web.kb.validation;
+
+import java.util.List;
+import java.util.Set;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+
+/**
+ * @author Alexey Kazakov
+ */
+public interface IValidationContextManager {
+
+ IValidatingProjectTree getValidatingProjectTree(IValidator validator);
+
+ void addProject(IProject project);
+
+ void clearAll();
+
+ void clearRegisteredFiles();
+
+ void clearAllResourceLinks();
+
+ Set<IFile> getRemovedFiles();
+
+ void addRemovedFile(IFile file);
+
+ Set<IFile> getRegisteredFiles();
+
+ void registerFile(IFile file);
+
+ /**
+ * @return a list of validators which are associated with this context.
+ */
+ List<IValidator> getValidators();
+
+ Set<IProject> getRootProjects();
+
+ void addValidatedProject(IValidator validator, IProject project);
+
+ boolean projectHasBeenValidated(IValidator validator, IProject project);
+}
\ No newline at end of file
Property changes on: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextManager.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextProvider.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextProvider.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationContextProvider.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -19,6 +19,6 @@
/**
* @return validation context
*/
- public IValidationContext getValidationContext();
+ public IProjectValidationContext getValidationContext();
}
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationErrorManager.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationErrorManager.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidationErrorManager.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -32,7 +32,7 @@
* @param manager
* @param reporter
*/
- void init(IProject project, ContextValidationHelper validationHelper, IValidator manager, IReporter reporter);
+ void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext validationContext, IValidator manager, IReporter reporter);
/**
* Adds a marker to the resource
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidator.java
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/validation/IValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -36,14 +36,14 @@
* @return
* @throws ValidationException
*/
- IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter) throws ValidationException;
+ IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, IProjectValidationContext validationContext, ValidatorManager manager, IReporter reporter) throws ValidationException;
/**
* Full Validation
* @return
* @throws ValidationException
*/
- IStatus validateAll(IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter) throws ValidationException;
+ IStatus validateAll(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext validationContext, ValidatorManager manager, IReporter reporter) throws ValidationException;
/**
* @return unique ID of the validator
@@ -54,7 +54,7 @@
* @param project
* @return a set of projects which should be validated with given project.
*/
- IValidatingProjectSet getValidatingProjects(IProject project);
+ IValidatingProjectTree getValidatingProjects(IProject project);
/**
* @param project
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamProject.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamProject.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/ISeamProject.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -16,7 +16,7 @@
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.IPath;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.seam.core.event.ISeamProjectChangeListener;
import org.jboss.tools.seam.core.project.facet.SeamRuntime;
@@ -146,7 +146,7 @@
/**
* @return validation context
*/
- public IValidationContext getValidationContext();
+ public IProjectValidationContext getValidationContext();
/**
* Adds component into project
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamCoreValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -10,11 +10,9 @@
******************************************************************************/
package org.jboss.tools.seam.internal.core.validation;
-import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.HashSet;
-import java.util.List;
import java.util.Set;
import org.eclipse.core.resources.IContainer;
@@ -45,10 +43,12 @@
import org.jboss.tools.jst.web.kb.KbProjectFactory;
import org.jboss.tools.jst.web.kb.internal.KbProject;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
+import org.jboss.tools.jst.web.kb.internal.validation.SimpleValidatingProjectTree;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatingProjectSet;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
-import org.jboss.tools.jst.web.kb.validation.IValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.jst.web.kb.validation.IValidator;
import org.jboss.tools.jst.web.kb.validation.ValidationUtil;
import org.jboss.tools.jst.web.model.project.ext.store.XMLValueInfo;
@@ -105,6 +105,7 @@
public static final int UNKNOWN_COMPONENT_PROPERTY_ID = 14;
private ISeamProject seamProject;
+ private SeamProjectsSet set;
private String projectName;
/*
@@ -128,14 +129,16 @@
* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.validation.IValidator#getValidatingProjects(org.eclipse.core.resources.IProject)
*/
- public IValidatingProjectSet getValidatingProjects(IProject project) {
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
return getSeamValidatingProjects(project);
}
- public static IValidatingProjectSet getSeamValidatingProjects(IProject project) {
+ private static final String SHORT_ID = "jboss.seam.core"; //$NON-NLS-1$
+
+ public static IValidatingProjectTree getSeamValidatingProjects(IProject project) {
SeamProjectsSet set = new SeamProjectsSet(project);
IProject war = set.getWarProject();
- IValidationContext rootContext = null;
+ IProjectValidationContext rootContext = null;
if(war!=null && war.isAccessible()) {
IKbProject kbProject = KbProjectFactory.getKbProject(war, false);
if(kbProject!=null) {
@@ -156,14 +159,15 @@
}
}
- List<IProject> projects = new ArrayList<IProject>();
+ Set<IProject> projects = new HashSet<IProject>();
IProject[] array = set.getAllProjects();
for (int i = 0; i < array.length; i++) {
if(array[i].isAccessible()) {
projects.add(array[i]);
}
}
- return new ValidatingProjectSet(war, projects, rootContext);
+ IValidatingProjectSet projectSet = new ValidatingProjectSet(war, projects, rootContext);
+ return new SimpleValidatingProjectTree(projectSet);
}
/*
@@ -193,10 +197,10 @@
* @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter, org.jboss.tools.jst.web.kb.validation.IValidationContext)
*/
@Override
- public void init(IProject project, ContextValidationHelper validationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
- super.init(project, validationHelper, manager, reporter);
+ public void init(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext validationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
+ super.init(project, validationHelper, validationContext, manager, reporter);
- SeamProjectsSet set = new SeamProjectsSet(project);
+ set = new SeamProjectsSet(project);
IProject warProject = set.getWarProject();
// Fix for JBIDE-7622: set these variables to null due to prevent wrong project validations --->>>
@@ -216,10 +220,10 @@
/*
* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set, org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter, org.jboss.tools.jst.web.kb.validation.IValidationContext)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validate(java.util.Set, org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter) throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ public IStatus validate(Set<IFile> changedFiles, IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager, IReporter reporter) throws ValidationException {
+ init(project, validationHelper, context, manager, reporter);
if(seamProject==null) {
return OK_STATUS;
}
@@ -245,20 +249,20 @@
resources.add(currentFile.getFullPath());
// Get new variable names from model
Set<String> newVariableNamesOfChangedFile = getVariablesNameByResource(currentFile.getFullPath());
- Set<String> oldDeclarationsOfChangedFile = validationContext.getVariableNamesByCoreResource(currentFile.getFullPath(), true);
+ Set<String> oldDeclarationsOfChangedFile = validationContext.getVariableNamesByCoreResource(SHORT_ID, currentFile.getFullPath(), true);
for (String newVariableName : newVariableNamesOfChangedFile) {
// Collect resources with new variable name.
- Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(newVariableName, false);
+ Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(SHORT_ID, newVariableName, false);
if(linkedResources!=null) {
resources.addAll(linkedResources);
}
resources.addAll(getAllResourceOfComponent(currentFile.getFullPath()));
}
// Get old variable names which were linked with this resource.
- Set<String> oldVariablesNamesOfChangedFile = validationContext.getVariableNamesByCoreResource(currentFile.getFullPath(), false);
+ Set<String> oldVariablesNamesOfChangedFile = validationContext.getVariableNamesByCoreResource(SHORT_ID, currentFile.getFullPath(), false);
if(oldVariablesNamesOfChangedFile!=null) {
for (String name : oldVariablesNamesOfChangedFile) {
- Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(name, false);
+ Set<IPath> linkedResources = validationContext.getCoreResourcesByVariableName(SHORT_ID, name, false);
if(linkedResources!=null) {
resources.addAll(linkedResources);
}
@@ -267,7 +271,7 @@
// Save old declarations for EL validation. We need to validate all EL resources which use this variable name but only if the variable has been changed.
if(oldDeclarationsOfChangedFile!=null) {
for (String name : oldDeclarationsOfChangedFile) {
- validationContext.addVariableNameForELValidation(name);
+ validationContext.addVariableNameForELValidation(SHORT_ID, name);
}
}
newResources.add(currentFile.getFullPath());
@@ -275,7 +279,7 @@
}
// Validate all collected linked resources.
// Remove all links between collected resources and variables names because they will be linked again during validation.
- validationContext.removeLinkedCoreResources(resources);
+ validationContext.removeLinkedCoreResources(SHORT_ID, resources);
IFile[] filesToValidate = new IFile[resources.size()];
int i = 0;
@@ -295,7 +299,7 @@
// If changed files are *.java or component.xml then re-validate all unnamed resources.
if(validateUnnamedResources) {
- Set<IPath> unnamedResources = validationContext.getUnnamedCoreResources();
+ Set<IPath> unnamedResources = validationContext.getUnnamedCoreResources(SHORT_ID);
newResources.addAll(unnamedResources);
for (IPath path : newResources) {
IFile file = root.getFile(path);
@@ -317,14 +321,18 @@
/*
* (non-Javadoc)
- * @see org.jboss.tools.seam.internal.core.validation.ISeamValidator#validateAll()
+ * @see org.jboss.tools.jst.web.kb.validation.IValidator#validateAll(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validateAll(IProject project, ContextValidationHelper validationHelper, ValidatorManager manager, IReporter reporter) throws ValidationException {
- init(project, validationHelper, manager, reporter);
+ public IStatus validateAll(IProject project, ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager, IReporter reporter) throws ValidationException {
+ init(project, validationHelper, context, manager, reporter);
if(seamProject==null) {
return OK_STATUS;
}
- removeAllMessagesFromResource(seamProject.getProject());
+
+ for (IProject iProject : set.getAllProjects()) {
+ removeAllMessagesFromResource(iProject);
+ }
+
ISeamComponent[] components = seamProject.getComponents();
for (ISeamComponent component : components) {
if(reporter.isCancelled()) {
@@ -440,14 +448,14 @@
if(!firstDuplicateVariableWasMarked) {
firstDuplicateVariableWasMarked = true;
// mark original factory
- validationContext.addLinkedCoreResource(factoryName, factory.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, factoryName, factory.getSourcePath(), true);
location = SeamUtil.getLocationOfName(factory);
this.addError(SeamValidationMessages.DUPLICATE_VARIABLE_NAME, SeamPreferences.DUPLICATE_VARIABLE_NAME, new String[]{factoryName}, location, factory.getResource());
}
// Mark duplicate variable.
if(!SeamUtil.isJar(variable.getSourcePath())) {
IResource resource = SeamUtil.getComponentResourceWithName(variable);
- validationContext.addLinkedCoreResource(factoryName, resource.getFullPath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, factoryName, resource.getFullPath(), true);
location = SeamUtil.getLocationOfName(variable);
this.addError(SeamValidationMessages.DUPLICATE_VARIABLE_NAME, SeamPreferences.DUPLICATE_VARIABLE_NAME, new String[]{factoryName}, location, resource);
}
@@ -479,7 +487,7 @@
if(unknownVariable && validateUnknownName && voidReturnType) {
// mark unknown factory name
// save link to factory resource
- validationContext.addLinkedCoreResource(factoryName, factory.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, factoryName, factory.getSourcePath(), true);
this.addError(SeamValidationMessages.UNKNOWN_FACTORY_NAME, SeamPreferences.UNKNOWN_FACTORY_NAME, new String[]{factoryName}, SeamUtil.getLocationOfName(factory), factory.getResource());
}
}
@@ -555,14 +563,14 @@
boolean sourceJavaDeclaration = !type.isBinary();
if(sourceJavaDeclaration) {
// Save link between component name and java source file.
- validationContext.addLinkedCoreResource(componentName, declaration.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, componentName, declaration.getSourcePath(), true);
// Save link between component name and all supers of java declaration.
try {
IType[] superTypes = TypeInfoCollector.getSuperTypes(type).getSuperTypes();
for (int i = 0; superTypes != null && i < superTypes.length; i++) {
if(!superTypes[i].isBinary()) {
IPath path = superTypes[i].getResource().getFullPath();
- validationContext.addLinkedCoreResource(componentName, path, true);
+ validationContext.addLinkedCoreResource(SHORT_ID, componentName, path, true);
}
}
} catch (JavaModelException e) {
@@ -624,7 +632,7 @@
//do not check files declared in another project
// if(declaration.getSeamProject() != seamProject) continue;
- validationContext.addLinkedCoreResource(componentName, declaration.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, componentName, declaration.getSourcePath(), true);
String precedence = declaration.getPrecedence();
if(firstNamedDeclaration == null && declaration.getName()!=null) {
@@ -716,7 +724,7 @@
}
return;
} else if(!type.isBinary()) {
- validationContext.addLinkedCoreResource(componentName, type.getResource().getFullPath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, componentName, type.getResource().getFullPath(), true);
}
} catch (JavaModelException e) {
SeamCorePlugin.getDefault().logError(SeamCoreMessages.SEAM_CORE_VALIDATOR_ERROR_VALIDATING_SEAM_CORE, e);
@@ -855,7 +863,7 @@
// Validate @In
if(bijection.isOfType(BijectedAttributeType.IN)) {
// save link between java source and variable name
- validationContext.addLinkedCoreResource(name, declaration.getSourcePath(), false);
+ validationContext.addLinkedCoreResource(SHORT_ID, name, declaration.getSourcePath(), false);
Set<ISeamContextVariable> variables = declaration.getVariablesByName(name);
if(variables == null || variables.isEmpty()) variables = seamProject.getVariablesByName(name);
@@ -876,7 +884,7 @@
}
} else {
// save link between java source and variable name
- validationContext.addLinkedCoreResource(name, declaration.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, name, declaration.getSourcePath(), true);
}
}
@@ -884,7 +892,7 @@
String dataModelName = bijection.getValue();
String selectionName = bijection.getName();
// save link between java source and variable name
- validationContext.addLinkedCoreResource(selectionName, declaration.getSourcePath(), false);
+ validationContext.addLinkedCoreResource(SHORT_ID, selectionName, declaration.getSourcePath(), false);
if(dataModelName==null) {
// here must be the only one @DataModel in the component
Set<IBijectedAttribute> dataBinders = declaration.getBijectedAttributesByType(BijectedAttributeType.DATA_BINDER);
@@ -897,7 +905,7 @@
}
} else {
// save link between java source and Data Model name
- validationContext.addLinkedCoreResource(dataModelName, declaration.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, dataModelName, declaration.getSourcePath(), true);
Set<IBijectedAttribute> dataBinders = declaration.getBijectedAttributesByName(dataModelName);
if(dataBinders!=null) {
for (IBijectedAttribute dataBinder : dataBinders) {
@@ -926,7 +934,7 @@
SeamCorePlugin.getPluginLog().logError(e);
}
}
- validationContext.removeUnnamedCoreResource(declaration.getSourcePath());
+ validationContext.removeUnnamedCoreResource(SHORT_ID, declaration.getSourcePath());
}
private void validateDestroyMethod(ISeamComponent component) {
@@ -940,7 +948,7 @@
IMethod javaMethod = (IMethod)method.getSourceMember();
String methodName = javaMethod.getElementName();
if(javaDeclaration.getSourcePath().equals(javaMethod.getPath())) {
- validationContext.addLinkedCoreResource(component.getName(), javaDeclaration.getSourcePath(), true);
+ validationContext.addLinkedCoreResource(SHORT_ID, component.getName(), javaDeclaration.getSourcePath(), true);
ITextSourceReference methodNameLocation = getNameLocation(method);
addError(SeamValidationMessages.DESTROY_METHOD_BELONGS_TO_STATELESS_SESSION_BEAN, SeamPreferences.DESTROY_METHOD_BELONGS_TO_STATELESS_SESSION_BEAN, new String[]{methodName}, methodNameLocation, method.getResource(), DESTROY_METHOD_BELONGS_TO_STATELESS_SESSION_BEAN_MESSAGE_ID);
}
@@ -957,11 +965,11 @@
if(declaration.getSourcePath().equals(javaMethod.getPath())) {
ITextSourceReference methodNameLocation = getNameLocation(method);
addError(message, preferenceKey, new String[]{methodName}, methodNameLocation, method.getResource(), message_id);
- validationContext.addUnnamedCoreResource(declaration.getSourcePath());
+ validationContext.addUnnamedCoreResource(SHORT_ID, declaration.getSourcePath());
}
}
} else {
- validationContext.removeUnnamedCoreResource(declaration.getSourcePath());
+ validationContext.removeUnnamedCoreResource(SHORT_ID, declaration.getSourcePath());
}
}
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -17,7 +17,8 @@
import org.jboss.tools.common.el.core.parser.ELParserUtil;
import org.jboss.tools.jsf.web.validation.ELValidator;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
-import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
@@ -40,7 +41,7 @@
* @see org.jboss.tools.jsf.web.validation.ELValidator#getValidatingProjects(org.eclipse.core.resources.IProject)
*/
@Override
- public IValidatingProjectSet getValidatingProjects(IProject project) {
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
try {
if(!project.hasNature(ISeamProject.NATURE_ID)) {
return super.getValidatingProjects(project);
@@ -65,14 +66,15 @@
return false;
}
- /* (non-Javadoc)
- * @see org.jboss.tools.jsf.web.validation.ELValidator#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jsf.web.validation.ELValidator#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
@Override
public void init(IProject project,
- ContextValidationHelper validationHelper, IValidator manager,
+ ContextValidationHelper validationHelper, IProjectValidationContext context, IValidator manager,
IReporter reporter) {
- super.init(project, validationHelper, manager, reporter);
+ super.init(project, validationHelper, context, manager, reporter);
mainFactory = ELParserUtil.getJbossFactory();
}
}
\ No newline at end of file
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamProjectPropertyValidator.java
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamProjectPropertyValidator.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamProjectPropertyValidator.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -38,6 +38,7 @@
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
import org.jboss.tools.jst.web.kb.internal.validation.ProblemMessage;
import org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidationErrorManager;
import org.jboss.tools.seam.core.ISeamProject;
import org.jboss.tools.seam.core.SeamCorePlugin;
@@ -96,18 +97,21 @@
protected Class getMarkerOwner() {
return SeamProjectPropertyValidator.this.getClass();
}
-
- /* (non-Javadoc)
- * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
+
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
@Override
public void init(IProject project,
ContextValidationHelper validationHelper,
+ IProjectValidationContext context,
IValidator manager, IReporter reporter) {
setProject(project);
setValidationManager(manager);
setReporter(reporter);
setMarkerId(SeamValidationErrorManager.MARKED_SEAM_PROJECT_MESSAGE_GROUP);
+ setValidationContext(context);
}
@Override
@@ -115,7 +119,7 @@
return ValidationErrorManager.DEFAULT_VALIDATION_MARKER;
}
};
- errorManager.init(project, null, this, reporter);
+ errorManager.init(project, null, null, this, reporter);
if(seamProject!=null) {
validateSeamProject(seamProject);
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ELValidatorWrapper.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ELValidatorWrapper.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ELValidatorWrapper.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -1,6 +1,5 @@
package org.jboss.tools.seam.core.test.validation;
-import java.text.MessageFormat;
import java.util.List;
import org.eclipse.core.resources.IFile;
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/SeamProjectPropertyValidatorWrapper.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -16,7 +16,8 @@
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
import org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
-import org.jboss.tools.jst.web.kb.validation.IValidatingProjectSet;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
+import org.jboss.tools.jst.web.kb.validation.IValidatingProjectTree;
import org.jboss.tools.jst.web.kb.validation.IValidationErrorManager;
import org.jboss.tools.jst.web.kb.validation.IValidator;
import org.jboss.tools.seam.internal.core.validation.SeamProjectPropertyValidator;
@@ -67,7 +68,7 @@
}
public IStatus validate(Set<IFile> changedFiles, IProject project,
- ContextValidationHelper validationHelper, ValidatorManager manager,
+ ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager,
IReporter reporter) throws ValidationException {
errorManager = new SeamValidationErrorManager() {
/* (non-Javadoc)
@@ -80,11 +81,12 @@
/* (non-Javadoc)
* @see org.jboss.tools.jst.web.kb.internal.validation.ValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
-
public void init(IProject project,
ContextValidationHelper validationHelper,
+ IProjectValidationContext validationContext,
org.eclipse.wst.validation.internal.provisional.core.IValidator manager, IReporter reporter) {
setProject(project);
+ setValidationContext(validationContext);
setValidationManager(manager);
setReporter(reporter);
setMarkerId(SeamValidationErrorManager.MARKED_SEAM_PROJECT_MESSAGE_GROUP);
@@ -101,9 +103,8 @@
}
public IStatus validateAll(IProject project,
- ContextValidationHelper validationHelper, ValidatorManager manager,
+ ContextValidationHelper validationHelper, IProjectValidationContext context, ValidatorManager manager,
IReporter reporter) throws ValidationException {
- // TODO Auto-generated method stub
return null;
}
@@ -111,8 +112,7 @@
return "id";
}
- public IValidatingProjectSet getValidatingProjects(IProject project) {
- // TODO Auto-generated method stub
+ public IValidatingProjectTree getValidatingProjects(IProject project) {
return null;
}
@@ -128,14 +128,19 @@
return this;
}
+ /*
+ * (non-Javadoc)
+ * @see org.jboss.tools.jst.web.kb.validation.IValidationErrorManager#init(org.eclipse.core.resources.IProject, org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper, org.jboss.tools.jst.web.kb.validation.IProjectValidationContext, org.eclipse.wst.validation.internal.provisional.core.IValidator, org.eclipse.wst.validation.internal.provisional.core.IReporter)
+ */
public void init(
IProject project,
ContextValidationHelper validationHelper,
+ IProjectValidationContext validationContext,
org.eclipse.wst.validation.internal.provisional.core.IValidator manager,
IReporter reporter) {
ContextValidationHelper vh = new ContextValidationHelper();
vh.initialize();
- errorManager.init(project, vh, manager, reporter);
+ errorManager.init(project, vh, validationContext, manager, reporter);
}
public IMarker addError(String message, String preferenceKey,
Modified: trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ValidatorSupport.java
===================================================================
--- trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ValidatorSupport.java 2010-12-24 17:12:21 UTC (rev 27724)
+++ trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/validation/ValidatorSupport.java 2010-12-24 19:22:08 UTC (rev 27725)
@@ -9,14 +9,16 @@
import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.wst.validation.internal.core.ValidationException;
import org.eclipse.wst.validation.internal.provisional.core.IMessage;
import org.eclipse.wst.validation.internal.provisional.core.IReporter;
import org.jboss.tools.jst.web.kb.internal.validation.ContextValidationHelper;
import org.jboss.tools.jst.web.kb.internal.validation.ValidatorManager;
+import org.jboss.tools.jst.web.kb.validation.IProjectValidationContext;
import org.jboss.tools.jst.web.kb.validation.IValidator;
+import org.jboss.tools.seam.core.SeamProjectsSet;
+import org.jboss.tools.seam.internal.core.validation.SeamCoreValidator;
public class ValidatorSupport implements IReporter, IValidatorSupport {
@@ -30,14 +32,15 @@
this.validator = validator;
}
-
/* (non-Javadoc)
* @see org.jboss.tools.seam.core.test.validation.IValidatorSupport#validate()
*/
public void validate() throws ValidationException {
ContextValidationHelper helper = new ContextValidationHelper();
helper.setProject(this.project);
- validator.validate(files, project, helper, new ValidatorManager(), this);
+ IProjectValidationContext context = SeamCoreValidator.getSeamValidatingProjects(project).getBrunches().values().iterator().next().getRootContext();
+ SeamProjectsSet set = new SeamProjectsSet(project);
+ validator.validate(files, project, helper, context, new ValidatorManager(), this);
}
/* (non-Javadoc)
13 years, 5 months
JBoss Tools SVN: r27724 - trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-24 12:12:21 -0500 (Fri, 24 Dec 2010)
New Revision: 27724
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF
Log:
corrected version ranges of required bundles
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF 2010-12-24 17:10:48 UTC (rev 27723)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF 2010-12-24 17:12:21 UTC (rev 27724)
@@ -15,7 +15,7 @@
org.jboss.tools.deltacloud.core,
org.jboss.tools.deltacloud.ui,
org.jboss.ide.eclipse.as.core,
- org.eclipse.core.resources;bundle-version="3.6.0",
- org.jboss.ide.eclipse.as.rse.core;bundle-version="0.9.0",
+ org.eclipse.core.resources;bundle-version="[3.6.0,4.0.0)",
+ org.jboss.ide.eclipse.as.rse.core;bundle-version="[0.9.0,2.0.0)",
org.eclipse.wst.server.core;bundle-version="[1.1.204,2.0.0)",
org.eclipse.wst.server.ui;bundle-version="[1.1.205,2.0.0)"
13 years, 5 months
JBoss Tools SVN: r27723 - trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-24 12:10:48 -0500 (Fri, 24 Dec 2010)
New Revision: 27723
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF
Log:
Missing menu-text "show in remote sys explorer": corrected missing bundle localization in manifest
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF 2010-12-24 16:48:17 UTC (rev 27722)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.integration/META-INF/MANIFEST.MF 2010-12-24 17:10:48 UTC (rev 27723)
@@ -6,6 +6,7 @@
Bundle-Vendor: Red Hat Inc.
Bundle-Activator: org.jboss.tools.deltacloud.integration.DeltaCloudIntegrationPlugin
Bundle-RequiredExecutionEnvironment: JavaSE-1.6
+Bundle-Localization: plugin
Require-Bundle: org.jboss.tools.common,
org.eclipse.rse.core,
org.eclipse.core.runtime,
13 years, 5 months
JBoss Tools SVN: r27722 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui: wizards and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-24 11:48:17 -0500 (Fri, 24 Dec 2010)
New Revision: 27722
Added:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/ObservableUIPojo.java
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/BoundObjectPresentConverter.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPage.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPageModel.java
Log:
[JBIDE-7763] revamped the whole manage keys page to deal with keys on the server (list, refresh, create, delete)
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/BoundObjectPresentConverter.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/BoundObjectPresentConverter.java 2010-12-24 16:47:06 UTC (rev 27721)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/BoundObjectPresentConverter.java 2010-12-24 16:48:17 UTC (rev 27722)
@@ -23,8 +23,6 @@
@Override
public Object convert(Object fromObject) {
- System.err.println("returning = " + (fromObject != null));
return fromObject != null;
}
-
}
Added: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/ObservableUIPojo.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/ObservableUIPojo.java (rev 0)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/ObservableUIPojo.java 2010-12-24 16:48:17 UTC (rev 27722)
@@ -0,0 +1,45 @@
+/*******************************************************************************
+ * Copyright (c) 2010 Red Hat, Inc.
+ * Distributed under license by Red Hat, Inc. All rights reserved.
+ * This program is 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.jboss.tools.internal.deltacloud.ui.common.databinding.validator;
+
+import org.eclipse.swt.widgets.Display;
+import org.jboss.tools.internal.deltacloud.core.observable.ObservablePojo;
+
+/**
+ * @author André Dietisheim
+ *
+ */
+public class ObservableUIPojo extends ObservablePojo {
+
+ @Override
+ public void firePropertyChange(final String propertyName, final Object oldValue, final Object newValue) {
+ Display.getDefault().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ ObservableUIPojo.super.firePropertyChange(propertyName, oldValue, newValue);
+ }
+ });
+ }
+
+ @Override
+ public void fireIndexedPropertyChange(final String propertyName, final int index, final Object oldValue,
+ final Object newValue) {
+ Display.getDefault().syncExec(new Runnable() {
+
+ @Override
+ public void run() {
+ ObservableUIPojo.super.fireIndexedPropertyChange(propertyName, index, oldValue, newValue);
+ }
+ });
+ }
+
+}
Property changes on: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/common/databinding/validator/ObservableUIPojo.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPage.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPage.java 2010-12-24 16:47:06 UTC (rev 27721)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPage.java 2010-12-24 16:48:17 UTC (rev 27722)
@@ -205,10 +205,8 @@
@Override
public Object convert(Object fromObject) {
if (fromObject == null) {
- System.err.println("key list enablement = false");
return false;
}
- System.err.println("key list enablement = " + (((java.util.List) fromObject).size() > 0));
return ((java.util.List) fromObject).size() > 0;
}
}));
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPageModel.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPageModel.java 2010-12-24 16:47:06 UTC (rev 27721)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.ui/src/org/jboss/tools/internal/deltacloud/ui/wizards/ManageKeysPageModel.java 2010-12-24 16:48:17 UTC (rev 27722)
@@ -25,12 +25,12 @@
import org.jboss.tools.deltacloud.core.job.AbstractCloudElementJob;
import org.jboss.tools.deltacloud.core.job.AbstractCloudElementJob.CLOUDELEMENT;
import org.jboss.tools.deltacloud.ui.Activator;
-import org.jboss.tools.internal.deltacloud.core.observable.ObservablePojo;
+import org.jboss.tools.internal.deltacloud.ui.common.databinding.validator.ObservableUIPojo;
/**
* @author André Dietisheim
*/
-public class ManageKeysPageModel extends ObservablePojo {
+public class ManageKeysPageModel extends ObservableUIPojo {
public static final String PROP_SELECTED_KEY = "selectedKey";
public static final String PROP_KEYS = "keys";
@@ -101,10 +101,10 @@
return keys;
}
- public void setKeys(List<DeltaCloudKey> keys) {
- firePropertyChange(PROP_KEYS, this.keys, this.keys = keys);
+ public void setKeys(List<DeltaCloudKey> newKeys) {
+ firePropertyChange(PROP_KEYS, keys, keys = newKeys);
}
-
+
public DeltaCloudKey getKey(String keyId) {
if (keys == null
|| keyId == null) {
13 years, 5 months
JBoss Tools SVN: r27721 - in trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools: internal/deltacloud/core/observable and 1 other directory.
by jbosstools-commits@lists.jboss.org
Author: adietish
Date: 2010-12-24 11:47:06 -0500 (Fri, 24 Dec 2010)
New Revision: 27721
Modified:
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Key.java
trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java
Log:
cleanup
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Key.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Key.java 2010-12-24 16:19:43 UTC (rev 27720)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/deltacloud/core/client/Key.java 2010-12-24 16:47:06 UTC (rev 27721)
@@ -19,7 +19,6 @@
/**
* @author Andre Dietisheim
*/
-@XmlRootElement
public class Key extends AbstractDeltaCloudObject {
private static final long serialVersionUID = 1L;
Modified: trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java
===================================================================
--- trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java 2010-12-24 16:19:43 UTC (rev 27720)
+++ trunk/deltacloud/plugins/org.jboss.tools.deltacloud.core/src/org/jboss/tools/internal/deltacloud/core/observable/ObservablePojo.java 2010-12-24 16:47:06 UTC (rev 27721)
@@ -25,8 +25,7 @@
this.propertyChangeSupport = new PropertyChangeSupport(this);
}
- public void firePropertyChange(String propertyName,
- Object oldValue, Object newValue) {
+ public void firePropertyChange(String propertyName, Object oldValue, Object newValue) {
propertyChangeSupport.firePropertyChange(propertyName, oldValue, newValue);
}
13 years, 5 months
JBoss Tools SVN: r27720 - trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv.
by jbosstools-commits@lists.jboss.org
Author: vrubezhny
Date: 2010-12-24 11:19:43 -0500 (Fri, 24 Dec 2010)
New Revision: 27720
Modified:
trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java
Log:
JBIDE-7975
jsf validation gives property does not exist warning on messagebundle properties
The localization properties in facesConfig.xml are taken into account when searching for resource bundles
Modified: trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java
===================================================================
--- trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java 2010-12-24 16:18:36 UTC (rev 27719)
+++ trunk/jsf/plugins/org.jboss.tools.jsf/src/org/jboss/tools/jsf/model/pv/JSFPromptingProvider.java 2010-12-24 16:19:43 UTC (rev 27720)
@@ -202,13 +202,24 @@
public List<Object> getBundleProperties(XModel model, String bundle) {
if(bundle == null || bundle.length() == 0) return EMPTY_LIST;
- XModelObject b = model.getByPath("/" + bundle.replace('.', '/') + ".properties");
- if(b == null) return EMPTY_LIST;
- XModelObject[] os = b.getChildren();
+
+ OpenKeyHelper helper = new OpenKeyHelper();
+ XModelObject[] bundleObjects = helper.findBundles(model, bundle, null);
+ if (bundleObjects == null)
+ return EMPTY_LIST;
+// XModelObject b = model.getByPath("/" + bundle.replace('.', '/') + ".properties");
+ Set properties = new TreeSet(String.CASE_INSENSITIVE_ORDER);
+ for (XModelObject b : bundleObjects) {
+ if(b == null) continue;
+ XModelObject[] os = b.getChildren();
+ for (int i = 0; i < os.length; i++) {
+// list.add(os[i].getAttributeValue("name"));
+ properties.add(os[i].getAttributeValue("name"));
+ }
+ }
List<Object> list = new ArrayList<Object>();
- for (int i = 0; i < os.length; i++) {
- list.add(os[i].getAttributeValue("name"));
- }
+ list.addAll(properties);
+
return list;
}
13 years, 5 months