Author: akazakov
Date: 2008-11-25 11:14:16 -0500 (Tue, 25 Nov 2008)
New Revision: 12022
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/Authenticator.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
Log:
https://jira.jboss.org/jira/browse/JBIDE-784 Fixed
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 2008-11-25
15:38:16 UTC (rev 12021)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamELValidator.java 2008-11-25
16:14:16 UTC (rev 12022)
@@ -16,6 +16,7 @@
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.resources.IWorkspaceRoot;
import org.eclipse.core.resources.ResourcesPlugin;
@@ -50,6 +51,7 @@
import org.jboss.tools.common.el.core.resolver.ElVarSearcher;
import org.jboss.tools.common.el.core.resolver.TypeInfoCollector;
import org.jboss.tools.common.el.core.resolver.Var;
+import org.jboss.tools.common.model.util.EclipseResourceUtil;
import org.jboss.tools.common.util.FileUtil;
import org.jboss.tools.seam.core.ISeamContextVariable;
import org.jboss.tools.seam.core.ISeamProject;
@@ -77,6 +79,8 @@
private SeamELCompletionEngine engine;
private List<Var> varListForCurentValidatedNode = new ArrayList<Var>();
private ElVarSearcher elVarSearcher;
+ private IProject currentProject;
+ private IResource[] currentSources;
public SeamELValidator(SeamValidatorManager validatorManager,
SeamContextValidationHelper coreHelper, IReporter reporter,
@@ -135,23 +139,45 @@
return OK_STATUS;
}
+ private static final String JAVA_EXT = "java"; //$NON-NLS-1$
+
+ private boolean shouldFileBeValidated(IFile file) {
+ if(!file.isSynchronized(IResource.DEPTH_ZERO)) {
+ // The resource is out of sync with the file system
+ // Just ignore this resource.
+ return false;
+ }
+ if(!JAVA_EXT.equalsIgnoreCase(file.getFileExtension())) {
+ return true;
+ }
+ IProject project = file.getProject();
+ if(!project.equals(currentProject)) {
+ currentProject = project;
+ currentSources = EclipseResourceUtil.getJavaSourceRoots(project);
+ }
+ for (int i = 0; i < currentSources.length; i++) {
+ if(currentSources[i].getLocation().isPrefixOf(file.getLocation())) {
+ return true;
+ }
+ }
+ return false;
+ }
+
private void validateFile(IFile file) {
+ if(!shouldFileBeValidated(file)) {
+ return;
+ }
displaySubtask(VALIDATING_EL_FILE_MESSAGE_ID, new String[]{projectName,
file.getName()});
elVarSearcher.setFile(file);
String ext = file.getFileExtension();
String content = null;
try {
- if(!file.isSynchronized(IResource.DEPTH_ZERO)) {
- // The resource is out of sync with the file system
- // Just ignore this resource.
- return;
- }
content = FileUtil.readStream(file.getContents());
} catch (CoreException e) {
SeamCorePlugin.getPluginLog().logError(e);
return;
}
- if(ext.equalsIgnoreCase("java")) { //$NON-NLS-1$
+ if(ext.equalsIgnoreCase(JAVA_EXT)) {
validateJava(file, content);
} else {
validateDom(file, content);
Added:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/Authenticator.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/Authenticator.java
(rev 0)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/Authenticator.java 2008-11-25
16:14:16 UTC (rev 12022)
@@ -0,0 +1,23 @@
+package org.domain.SeamWebWarTestProject.session;
+
+import org.jboss.seam.annotations.In;
+import org.jboss.seam.annotations.Logger;
+import org.jboss.seam.annotations.Name;
+import org.jboss.seam.log.Log;
+import org.jboss.seam.security.Identity;
+
+@Name("authenticator")
+public class Authenticator {
+ @Logger Log log;
+
+ @In Identity identity;
+
+ public boolean authenticate() {
+ log.info("authenticating #0", identity.getUsername());
+ //write your authentication logic here,
+ //return true if the authentication was
+ //successful, false otherwise
+ identity.addRole("#{aaaaaaaa.bbbbbbbbb}");
+ return true;
+ }
+}
\ No newline at end of file
Property changes on:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/SeamWebWarTestProject/WebContent/Authenticator.java
___________________________________________________________________
Name: svn:mime-type
+ text/plain
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2008-11-25
15:38:16 UTC (rev 12021)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2008-11-25
16:14:16 UTC (rev 12022)
@@ -16,7 +16,6 @@
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.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.preference.IPersistentPreferenceStore;
@@ -32,7 +31,6 @@
import org.jboss.tools.test.util.JUnitUtils;
import org.jboss.tools.test.util.JobUtils;
import org.jboss.tools.test.util.ProjectImportTestSetup;
-import org.jboss.tools.test.util.ResourcesUtils;
import org.jboss.tools.tests.AbstractResourceMarkerTest;
public class SeamValidatorsTest extends AbstractResourceMarkerTest {
@@ -61,7 +59,6 @@
JobUtils.waitForIdle();
}
-
private ISeamProject getSeamProject(IProject project) {
refreshProject(project);
@@ -76,6 +73,16 @@
}
/**
+ * Test for
https://jira.jboss.org/jira/browse/JBIDE-784
+ * @throws CoreException
+ */
+ public void testJavaFileOutsideClassPath() throws CoreException {
+ IFile file = project.getFile("WebContent/Authenticator.java");
+ String[] messages = getMarkersMessage(file);
+ assertTrue("Problem marker was found in WebContent/Authenticator.java file. Seam
EL validator should not validate it.", messages.length == 0);
+ }
+
+ /**
* Test for
http://jira.jboss.com/jira/browse/JBIDE-1318
* @throws CoreException
*/