Author: akazakov
Date: 2008-04-08 12:30:33 -0400 (Tue, 08 Apr 2008)
New Revision: 7425
Removed:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamRuntimeValidation.java
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/plugin.xml
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/project/facet/SeamRuntimeManager.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ISeamValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/IValidationErrorManager.java
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/SeamValidator.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ValidationErrorManager.java
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-ejb/.project
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-test/.project
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-war/.project
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamProjectPropertyValidatorTest.java
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java
Log:
http://jira.jboss.com/jira/browse/JBIDE-1950
Modified: trunk/seam/plugins/org.jboss.tools.seam.core/plugin.xml
===================================================================
--- trunk/seam/plugins/org.jboss.tools.seam.core/plugin.xml 2008-04-08 16:21:00 UTC (rev
7424)
+++ trunk/seam/plugins/org.jboss.tools.seam.core/plugin.xml 2008-04-08 16:30:33 UTC (rev
7425)
@@ -280,6 +280,7 @@
<validator>
<filter objectClass="org.eclipse.core.resources.IFolder"
nameFilter="*"/>
<filter objectClass="org.eclipse.core.resources.IProject"
nameFilter="*"/>
+ <filter objectClass="org.eclipse.core.resources.IFile"
nameFilter="org.jboss.tools.seam.core.prefs"/>
<helper class="org.jboss.tools.seam.internal.core.validation.SeamValidationHelper"/>
<markerId markerIdValue="seamProjectProblem"/>
<run
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/SeamCoreBuilder.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -11,26 +11,23 @@
package org.jboss.tools.seam.core;
import java.io.IOException;
-import java.util.Map;
-import java.util.Set;
-
-import org.eclipse.core.resources.IProject;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IResourceDelta;
-import org.eclipse.core.resources.IResourceDeltaVisitor;
-import org.eclipse.core.resources.IncrementalProjectBuilder;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
+import java.util.Map;
+
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IResource;
+import org.eclipse.core.resources.IResourceDelta;
+import org.eclipse.core.resources.IResourceDeltaVisitor;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
import org.eclipse.osgi.util.NLS;
import org.jboss.tools.common.model.util.TypeInfoCollector;
-import org.jboss.tools.seam.internal.core.SeamMessages;
-import org.jboss.tools.seam.internal.core.SeamProject;
+import org.jboss.tools.seam.internal.core.SeamProject;
import org.jboss.tools.seam.internal.core.SeamResourceVisitor;
-import org.jboss.tools.seam.internal.core.scanner.IFileScanner;
-import org.jboss.tools.seam.internal.core.scanner.java.JavaScanner;
-import org.jboss.tools.seam.internal.core.scanner.lib.LibraryScanner;
-import org.jboss.tools.seam.internal.core.scanner.xml.XMLScanner;
-import org.jboss.tools.seam.internal.core.validation.SeamRuntimeValidation;
+import org.jboss.tools.seam.internal.core.scanner.IFileScanner;
+import org.jboss.tools.seam.internal.core.scanner.java.JavaScanner;
+import org.jboss.tools.seam.internal.core.scanner.lib.LibraryScanner;
+import org.jboss.tools.seam.internal.core.scanner.xml.XMLScanner;
public class SeamCoreBuilder extends IncrementalProjectBuilder {
public static String BUILDER_ID = "org.jboss.tools.seam.core.seambuilder";
//$NON-NLS-1$
@@ -97,8 +94,6 @@
sp.getClassPath().process();
}
- new SeamRuntimeValidation().validate(sp);
-
TypeInfoCollector.cleanCache();
if (kind == FULL_BUILD) {
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/project/facet/SeamRuntimeManager.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/project/facet/SeamRuntimeManager.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/core/project/facet/SeamRuntimeManager.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -30,7 +30,6 @@
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.internal.core.project.facet.ISeamCoreConstants;
import org.jboss.tools.seam.internal.core.project.facet.SeamFacetPreferenceInitializer;
-import org.jboss.tools.seam.internal.core.validation.SeamRuntimeValidation;
/**
* This class is responsible for managing available SeamRuntime list.
@@ -45,8 +44,6 @@
private SeamRuntime defaultRt = null;
- private SeamRuntimeValidation validator = new SeamRuntimeValidation();
-
/**
* Private constructor
*/
@@ -126,7 +123,6 @@
}
runtimes.put(runtime.getName(), runtime);
save();
- validateProjects();
}
/**
@@ -175,7 +171,6 @@
*/
public void removeRuntime(SeamRuntime rt) {
runtimes.remove(rt.getName());
- validateProjects();
}
/**
@@ -322,21 +317,6 @@
return result;
}
- private void validateProjects() {
- IProject[] ps = ResourcesPlugin.getWorkspace().getRoot().getProjects();
- for (int i = 0; i < ps.length; i++) {
- ISeamProject sp = SeamCorePlugin.getSeamProject(ps[i], false);
- if (sp == null) {
- continue;
- }
- try {
- validator.validate(sp);
- } catch (CoreException e) {
- SeamCorePlugin.getPluginLog().logError(e);
- }
- }
- }
-
/**
* TBD
*
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ISeamValidator.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ISeamValidator.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ISeamValidator.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -23,6 +23,9 @@
public interface ISeamValidator {
public static final String MARKED_SEAM_RESOURCE_MESSAGE_GROUP =
"markedSeamResource"; //$NON-NLS-1$
+ public static final String MARKED_SEAM_PROJECT_MESSAGE_GROUP =
"markedSeamProject"; //$NON-NLS-1$
+ public static final String SEAM_RESOURCE_MESSAGE_ID =
"org.jboss.tools.seam.core.seamProblem"; //$NON-NLS-1$
+ public static final String SEAM_PROJECT_MESSAGE_ID =
"org.jboss.tools.seam.core.seamProjectProblem"; //$NON-NLS-1$
/**
* @return true if validator is enabled.
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/IValidationErrorManager.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/IValidationErrorManager.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/IValidationErrorManager.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -83,13 +83,18 @@
/**
* Removes all markers for the resources
* @param resources
- * @param messageGroup
*/
- void removeMessagesFromResources(Set<IResource> resources, String messageGroup);
+ void removeMessagesFromResources(Set<IResource> resources);
/**
* Sets seam project
* @param project
*/
void setProject(ISeamProject project);
+
+ /**
+ * Remove all validation messages for the resource.
+ * @param resource
+ */
+ void removeAllMessagesFromResource(IResource resource);
}
\ 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 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamProjectPropertyValidator.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -42,7 +42,6 @@
*/
public class SeamProjectPropertyValidator implements IValidatorJob {
- private static final String markerId = "seamProjectProblem";
protected static final String VALIDATING_PROJECT = "VALIDATING_PROJECT";
protected static final String INVALID_RUNTIME = "INVALID_RUNTIME";
protected static final String INVALID_WEBFOLDER = "INVALID_WEBFOLDER";
@@ -59,6 +58,7 @@
private IValidationErrorManager errorManager;
private Set<String> validatedProjects = new HashSet<String>();
+ private static Set<String> beingValidatedProjects = new HashSet<String>();
/* (non-Javadoc)
* @see
org.eclipse.wst.validation.internal.provisional.core.IValidatorJob#getSchedulingRule(org.eclipse.wst.validation.internal.provisional.core.IValidationContext)
@@ -70,7 +70,7 @@
/* (non-Javadoc)
* @see
org.eclipse.wst.validation.internal.provisional.core.IValidatorJob#validateInJob(org.eclipse.wst.validation.internal.provisional.core.IValidationContext,
org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
- public IStatus validateInJob(IValidationContext helper, IReporter reporter) throws
ValidationException {
+ public IStatus validateInJob(IValidationContext helper, IReporter reporter) throws
ValidationException {
validatedProjects.clear();
SeamValidationHelper seamHelper = (SeamValidationHelper)helper;
IProject project = seamHelper.getProject();
@@ -78,7 +78,7 @@
return OK_STATUS;
}
ISeamProject seamProject = SeamCorePlugin.getSeamProject(project, false);
- errorManager = new ValidationErrorManager(this, null, reporter, null);
+ errorManager = new ValidationErrorManager(this, null, reporter, null,
ISeamValidator.MARKED_SEAM_PROJECT_MESSAGE_GROUP);
if(seamProject!=null) {
validateSeamProject(seamProject);
}
@@ -94,6 +94,20 @@
return OK_STATUS;
}
+ synchronized private void finishValidating() {
+ beingValidatedProjects.removeAll(validatedProjects);
+ }
+
+ synchronized private boolean canStartValidating(IProject project) {
+ String name = project.getName();
+ if(validatedProjects.contains(name) || beingValidatedProjects.contains(name)) {
+ return false;
+ }
+ validatedProjects.add(name);
+ beingValidatedProjects.add(name);
+ return true;
+ }
+
private void validateProject(String nameOfChangedProject, IProject checkingProject) {
ISeamProject seamProject = SeamCorePlugin.getSeamProject(checkingProject, false);
if(seamProject==null) {
@@ -191,20 +205,19 @@
private void validateProjectName(IProject targetProject, String projectName, boolean
canBeEmpty, String messageId) {
if(!isProjectNameValid(projectName, canBeEmpty)) {
// Mark invalid project name
- errorManager.addError(messageId, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{targetProject.getName()}, targetProject);
+ errorManager.addError(messageId, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{projectName!=null?projectName:"", targetProject.getName()},
targetProject);
}
}
private void validateSorceFolder(IProject targetProject, String folderPath, String
packageName, String srcFolderMessageID, String packageMessageId) {
- if(isFolderPathValid(folderPath, true)) {
- if(!isPackageNameValid(packageName, true)) {
- // Mark invalid source folder path
- errorManager.addError(packageMessageId, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{targetProject.getName()}, targetProject);
- }
- return;
+ if(!isFolderPathValid(folderPath, true)) {
+ // Mark invalid source folder path
+ errorManager.addError(srcFolderMessageID, SeamPreferences.INVALID_PROJECT_SETTINGS,
new String[]{folderPath!=null?folderPath:"", targetProject.getName()},
targetProject);
}
- // Mark invalid source folder path
- errorManager.addError(srcFolderMessageID, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{targetProject.getName()}, targetProject);
+ if(!isPackageNameValid(packageName, true)) {
+ // Mark invalid source folder path
+ errorManager.addError(packageMessageId, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{packageName!=null?packageName:"", targetProject.getName()},
targetProject);
+ }
}
private void validateSeamProject(ISeamProject seamProject) {
@@ -213,13 +226,10 @@
if(!project.isAccessible()) {
return;
}
- if(validatedProjects.contains(project.getName())) {
+ if(!canStartValidating(project)) {
return;
}
- validatedProjects.add(project.getName());
- Set<IResource> set = new HashSet<IResource>();
- set.add(project);
- errorManager.removeMessagesFromResources(set, markerId);
+ errorManager.removeAllMessagesFromResource(project);
if(!SeamPreferences.shouldValidateSettings(seamProject)) {
return;
}
@@ -236,7 +246,7 @@
String seamRuntimeName = pref.get(ISeamFacetDataModelProperties.SEAM_RUNTIME_NAME,
null);
if(seamRuntimeName!=null && seamRuntimeName.length()>0 &&
(SeamRuntimeManager.getInstance().findRuntimeByName(seamRuntimeName) == null)) {
// Mark unknown runtime
- errorManager.addError(INVALID_RUNTIME, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{project.getName()}, project);
+ errorManager.addError(INVALID_RUNTIME, SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{seamRuntimeName!=null?seamRuntimeName:"", project.getName()},
project);
}
if(ISeamFacetDataModelProperties.DEPLOY_AS_EAR.equals(pref.get(ISeamFacetDataModelProperties.JBOSS_AS_DEPLOY_AS,
null))) {
@@ -245,7 +255,7 @@
String viewFolder = pref.get(ISeamFacetDataModelProperties.WEB_CONTENTS_FOLDER,
null);
if(!isFolderPathValid(viewFolder, true)) {
// Mark unknown View folder
- errorManager.addError(INVALID_WEBFOLDER, SeamPreferences.INVALID_PROJECT_SETTINGS,
new String[]{project.getName()}, project);
+ errorManager.addError(INVALID_WEBFOLDER, SeamPreferences.INVALID_PROJECT_SETTINGS,
new String[]{viewFolder!=null?viewFolder:"", project.getName()}, project);
}
validateSorceFolder(project,
pref.get(ISeamFacetDataModelProperties.ENTITY_BEAN_SOURCE_FOLDER, null),
pref.get(ISeamFacetDataModelProperties.ENTITY_BEAN_PACKAGE_NAME, null),
@@ -266,8 +276,9 @@
INVALID_TEST_SRC,
INVALID_TEST_PACKAGE_NAME);
}
- if(!isConnectionProfileValid(pref.get(ISeamFacetDataModelProperties.SEAM_CONNECTION_PROFILE,
null), true)) {
- errorManager.addError(INVALID_CONNECTION_NAME,
SeamPreferences.INVALID_PROJECT_SETTINGS, new String[]{project.getName()}, project);
+ String connectionProfile =
pref.get(ISeamFacetDataModelProperties.SEAM_CONNECTION_PROFILE, null);
+ if(!isConnectionProfileValid(connectionProfile, true)) {
+ errorManager.addError(INVALID_CONNECTION_NAME,
SeamPreferences.INVALID_PROJECT_SETTINGS, new
String[]{connectionProfile!=null?connectionProfile:"", project.getName()},
project);
}
}
@@ -278,6 +289,7 @@
* @see
org.eclipse.wst.validation.internal.provisional.core.IValidator#cleanup(org.eclipse.wst.validation.internal.provisional.core.IReporter)
*/
public void cleanup(IReporter reporter) {
+ finishValidating();
}
/* (non-Javadoc)
Deleted:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamRuntimeValidation.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamRuntimeValidation.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamRuntimeValidation.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -1,103 +0,0 @@
-/*******************************************************************************
- * Copyright (c) 2007 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.seam.internal.core.validation;
-
-import org.eclipse.core.resources.IMarker;
-import org.eclipse.core.resources.IResource;
-import org.eclipse.core.resources.IWorkspace;
-import org.eclipse.core.resources.IWorkspaceRunnable;
-import org.eclipse.core.resources.ResourcesPlugin;
-import org.eclipse.core.runtime.CoreException;
-import org.eclipse.core.runtime.IProgressMonitor;
-import org.jboss.tools.seam.core.ISeamProject;
-import org.jboss.tools.seam.core.SeamCorePlugin;
-import org.jboss.tools.seam.core.project.facet.SeamRuntime;
-
-/**
- * @author Viacheslav Kabanovich
- */
-public class SeamRuntimeValidation {
-
- public static final String MARKER_TYPE =
"org.jboss.tools.seam.core.seamProblem";
- static final String ATTR_KIND = "kind";
- static final String RUNTIME_KIND = "SeamRuntimeProblem";
-
- public SeamRuntimeValidation() {}
-
- public void validate(ISeamProject project) throws CoreException {
- IMarker marker = findErrorMarker(project);
- String runtimeName = project.getRuntimeName();
- SeamRuntime runtime = project.getRuntime();
- if(runtime != null || runtimeName == null || runtimeName.length() == 0) {
- if(marker == null) return;
- removeMarker(marker);
- return;
- }
- String message = "Seam runtime " + runtimeName + " does not
exist.";
- if(marker != null) {
- if(message.equals(marker.getAttribute(IMarker.MESSAGE, null))) {
- return;
- }
- marker.setAttribute(IMarker.MESSAGE, message);
- } else {
- createMarker(project, message);
- }
- }
-
- private IMarker findErrorMarker(ISeamProject project) throws CoreException {
- IMarker[] ms = project.getProject().findMarkers(MARKER_TYPE, true,
IResource.DEPTH_ZERO);
- if(ms == null) return null;
- for (int i = 0; i < ms.length; i++) {
- int s = ms[i].getAttribute(IMarker.SEVERITY, IMarker.SEVERITY_ERROR);
- if(s != IMarker.SEVERITY_WARNING) continue;
- String kind = ms[i].getAttribute(ATTR_KIND, null);
- if(kind == null) continue;
- if(kind.equals(RUNTIME_KIND)) {
- return ms[i];
- }
- }
- return null;
- }
-
- private void removeMarker(final IMarker marker) {
- IWorkspaceRunnable r = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- marker.delete();
- }
- };
- run(r);
- }
-
- private void createMarker(final ISeamProject project, final String message) throws
CoreException {
- IWorkspaceRunnable r = new IWorkspaceRunnable() {
- public void run(IProgressMonitor monitor) throws CoreException {
- doCreateMarker(project, message);
- }
- };
- run(r);
- }
-
- private void doCreateMarker(ISeamProject project, String message) throws CoreException
{
- IMarker marker = project.getProject().createMarker(MARKER_TYPE);
- marker.setAttribute(IMarker.SEVERITY, IMarker.SEVERITY_WARNING);
- marker.setAttribute(IMarker.MESSAGE, message);
- marker.setAttribute(ATTR_KIND, RUNTIME_KIND);
- }
-
- private void run(IWorkspaceRunnable r) {
- try {
- ResourcesPlugin.getWorkspace().run(r, null,IWorkspace.AVOID_UPDATE, null);
- } catch (CoreException e) {
- SeamCorePlugin.getPluginLog().logError(e);
- }
- }
-
-}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidator.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidator.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/SeamValidator.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -35,7 +35,7 @@
public SeamValidator(IValidator validatorManager,
SeamContextValidationHelper coreHelper, IReporter reporter,
SeamValidationContext validationContext, ISeamProject project) {
- super(validatorManager, coreHelper, reporter, project);
+ super(validatorManager, coreHelper, reporter, project,
ISeamValidator.MARKED_SEAM_RESOURCE_MESSAGE_GROUP);
this.validationContext = validationContext;
this.projectName = project.getProject().getName();
}
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ValidationErrorManager.java
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ValidationErrorManager.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/ValidationErrorManager.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -28,7 +28,6 @@
/**
* @author Alexey Kazakov
- *
*/
public class ValidationErrorManager implements IValidationErrorManager {
@@ -41,6 +40,7 @@
protected SeamContextValidationHelper coreHelper;
protected IReporter reporter;
protected ISeamProject project;
+ protected String markerId;
/**
* Constructor
@@ -51,11 +51,12 @@
*/
public ValidationErrorManager(IValidator validatorManager,
SeamContextValidationHelper coreHelper, IReporter reporter,
- ISeamProject project) {
+ ISeamProject project, String markerId) {
this.validationManager = validatorManager;
this.coreHelper = coreHelper;
this.project = project;
this.reporter = reporter;
+ this.markerId = markerId;
}
protected String getBaseName() {
@@ -99,6 +100,10 @@
addError(messageId, preferenceKey, messageArguments, 0, 0, target);
}
+ private String getMarkerId() {
+ return markerId;
+ }
+
/*
* (non-Javadoc)
*
@@ -120,7 +125,7 @@
IMessage message = new Message(getBaseName(), messageSeverity,
messageId, messageArguments, target,
- ISeamValidator.MARKED_SEAM_RESOURCE_MESSAGE_GROUP);
+ getMarkerId());
message.setLength(length);
message.setOffset(offset);
try {
@@ -169,17 +174,24 @@
/*
* (non-Javadoc)
*
- * @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#removeMessagesFromResources(java.util.Set,
- * java.lang.String)
+ * @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#removeMessagesFromResources(java.util.Set)
*/
- public void removeMessagesFromResources(Set<IResource> resources, String
messageGroup) {
+ public void removeMessagesFromResources(Set<IResource> resources) {
for (IResource r : resources) {
- reporter.removeMessageSubset(validationManager, r, messageGroup);
+ reporter.removeMessageSubset(validationManager, r, getMarkerId());
}
}
/*
* (non-Javadoc)
+ * @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#removeAllMessagesFromResource(org.eclipse.core.resources.IResource)
+ */
+ public void removeAllMessagesFromResource(IResource resource) {
+ reporter.removeAllMessages(validationManager, resource);
+ }
+
+ /*
+ * (non-Javadoc)
* @see
org.jboss.tools.seam.internal.core.validation.IValidationErrorManager#setProject(org.jboss.tools.seam.core.ISeamProject)
*/
public void setProject(ISeamProject project) {
Modified:
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties
===================================================================
---
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/plugins/org.jboss.tools.seam.core/src/org/jboss/tools/seam/internal/core/validation/messages.properties 2008-04-08
16:30:33 UTC (rev 7425)
@@ -46,18 +46,18 @@
UNPAIRED_GETTER_OR_SETTER=Property "{0}" has only {1}. {2} is missing.
#Invalid seam project settings
-INVALID_PARENT_PROJECT=Main Seam project specified for Seam project "{0}" does
not exist.
-INVALID_RUNTIME=Seam Runtime specified for Seam project "{0}" does not exist.
Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_WEBFOLDER=View Folder specified for Seam project "{0}" does not exist.
Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_EJB_PROJECT=EJB project specified for Seam project "{0}" does not
exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_TEST_PROJECT=Test EJB project specified for Seam project "{0}" does not
exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_MODEL_SRC=Model source folder specified for Seam project "{0}" does not
exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_ACTION_SRC=Action / Form / Conversation source folder specified for Seam project
"{0}" does not exist. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
-INVALID_TEST_SRC=Test source folder specified for Seam project "{0}" does not
exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_MODEL_PACKAGE_NAME=Model package name specified for Seam project "{0}"
is not valid. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_ACTION_PACKAGE_NAME=Action / Form / Conversation package name specified for Seam
project "{0}" is not valid. Please correct this property in "Seam
settings" page (Project->Properties->Seam Settings).
-INVALID_TEST_PACKAGE_NAME=Test package name specified for Seam project "{0}" is
not valid. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
-INVALID_CONNECTION_NAME=Connection profiler specified for Seam project "{0}"
does not exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
+INVALID_PARENT_PROJECT=Main Seam project "{0}" specified for Seam project
"{1}" does not exist.
+INVALID_RUNTIME=Seam Runtime "{0}" specified for Seam project "{1}"
does not exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
+INVALID_WEBFOLDER=View Folder "{0}" specified for Seam project "{1}"
does not exist. Please correct this property in "Seam settings" page
(Project->Properties->Seam Settings).
+INVALID_EJB_PROJECT=EJB project "{0}" specified for Seam project
"{1}" does not exist. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
+INVALID_TEST_PROJECT=Test project "{0}" specified for Seam project
"{1}" does not exist. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
+INVALID_MODEL_SRC=Model source folder "{0}" specified for Seam project
"{1}" does not exist. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
+INVALID_ACTION_SRC=Action / Form / Conversation source folder "{0}" specified
for Seam project "{1}" does not exist. Please correct this property in
"Seam settings" page (Project->Properties->Seam Settings).
+INVALID_TEST_SRC=Test source folder "{0}" specified for Seam project
"{1}" does not exist. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
+INVALID_MODEL_PACKAGE_NAME=Model package name "{0}" specified for Seam project
"{1}" is not valid. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
+INVALID_ACTION_PACKAGE_NAME=Action / Form / Conversation package name "{0}"
specified for Seam project "{1}" is not valid. Please correct this property in
"Seam settings" page (Project->Properties->Seam Settings).
+INVALID_TEST_PACKAGE_NAME=Test package name "{0}" specified for Seam project
"{1}" is not valid. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
+INVALID_CONNECTION_NAME=Connection profiler "{0}" specified for Seam project
"{1}" does not exist. Please correct this property in "Seam settings"
page (Project->Properties->Seam Settings).
#Messages for Progress Monitor
SEARCHING_RESOURCES=project "{0}"; searching resources for validation.
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-ejb/.project
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-ejb/.project 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-ejb/.project 2008-04-08
16:30:33 UTC (rev 7425)
@@ -15,6 +15,11 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-test/.project
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-test/.project 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-test/.project 2008-04-08
16:30:33 UTC (rev 7425)
@@ -15,6 +15,11 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-war/.project
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-war/.project 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/projects/RefactoringTestProject-war/.project 2008-04-08
16:30:33 UTC (rev 7425)
@@ -15,6 +15,11 @@
<arguments>
</arguments>
</buildCommand>
+ <buildCommand>
+ <name>org.eclipse.wst.validation.validationbuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jdt.core.javanature</nature>
Modified:
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamProjectPropertyValidatorTest.java
===================================================================
---
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamProjectPropertyValidatorTest.java 2008-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamProjectPropertyValidatorTest.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -59,21 +59,41 @@
pref.put(ISeamFacetDataModelProperties.SEAM_CONNECTION_PROFILE,
"invalidConnectionName");
pref.flush();
- // Force validation.
- warProject.getFolder("newFolder").create(true, true, null);
- ejbProject.getFolder("newFolder").create(true, true, null);
- testProject.getFolder("newFolder").create(true, true, null);
-
EditorTestHelper.joinBackgroundActivities();
}
}
public void testProjectNameValidation() throws CoreException {
- IEclipsePreferences pref = SeamCorePlugin.getSeamPreferences(ejbProject);
- System.out.println(pref.get(ISeamFacetDataModelProperties.SEAM_PARENT_PROJECT,
"---"));
- assertMarkerIsCreated(ejbProject, null, "invalidParentProjectName", -1);
- assertMarkerIsCreated(testProject, null, "invalidParentProjectName", -1);
- assertMarkerIsCreated(warProject, null, "invalidEjbProjectName", -1);
- assertMarkerIsCreated(warProject, null, "invalidTestProjectName", -1);
+ assertMarkerIsCreated(ejbProject, null, ".*invalidParentProjectName.*");
+ assertMarkerIsCreated(testProject, null, ".*invalidParentProjectName.*");
+ assertMarkerIsCreated(warProject, null, ".*invalidEjbProjectName.*");
+ assertMarkerIsCreated(warProject, null, ".*invalidTestProjectName.*");
}
+
+ public void testFolderNameValidation() throws CoreException {
+ assertMarkerIsCreated(warProject, null, ".*invalidWebFolderPath.*");
+ assertMarkerIsCreated(warProject, null, ".*invalidModelSrcFolderPath.*");
+ assertMarkerIsCreated(warProject, null,
".*invalidSessionBeanSrcFolderPath.*");
+ assertMarkerIsCreated(warProject, null, ".*invalidTestSrcFolderPath.*");
+ }
+
+ public void testPackageNameValidation() throws CoreException {
+ assertMarkerIsCreated(warProject, null, ".*invalid model package name.*");
+ assertMarkerIsCreated(warProject, null, ".*invalid session bean package
name.*");
+ assertMarkerIsCreated(warProject, null, ".*invalid test package name.*");
+ }
+
+ public void testRuntimeNameValidation() throws CoreException {
+ assertMarkerIsCreated(warProject, null, ".*invalidRuntimeName.*");
+ }
+
+ public void testConnectionProfileNameValidation() throws CoreException {
+ assertMarkerIsCreated(warProject, null, ".*invalidConnectionName.*");
+ }
+
+ public static void main(String[] args) {
+ String errorMarker = "Model package name \"invalid model package name\"
specified for Seam project \"RefactoringTestProject-war\" is not valid. Please
correct this property in \"Seam settings\" page (Project->Properties->Seam
Settings).";
+// String errorMarker = "Main Seam project \"invalidParentProjectName
";
+ System.out.println(errorMarker.matches(".*invalid model package name.*"));
+ }
}
\ No newline at end of file
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-04-08
16:21:00 UTC (rev 7424)
+++
trunk/seam/tests/org.jboss.tools.seam.core.test/src/org/jboss/tools/seam/core/test/SeamValidatorsTest.java 2008-04-08
16:30:33 UTC (rev 7425)
@@ -29,7 +29,7 @@
import org.jboss.tools.seam.core.SeamCorePlugin;
import org.jboss.tools.seam.core.SeamPreferences;
import org.jboss.tools.seam.internal.core.SeamProject;
-import org.jboss.tools.seam.internal.core.validation.SeamRuntimeValidation;
+import org.jboss.tools.seam.internal.core.validation.ISeamValidator;
import org.jboss.tools.test.util.JUnitUtils;
import org.jboss.tools.test.util.ProjectImportTestSetup;
import org.jboss.tools.test.util.xpl.EditorTestHelper;
@@ -440,7 +440,7 @@
IFile targetFile = project.getFile(targetPath);
targetFile.setContents(newContentFile.getContents(), true, false, new
NullProgressMonitor());
refreshProject(project);
- assertMarkerIsCreated(targetFile, SeamRuntimeValidation.MARKER_TYPE, pattern, line);
+ assertMarkerIsCreated(targetFile, ISeamValidator.SEAM_RESOURCE_MESSAGE_ID, pattern,
line);
}
/**
@@ -453,7 +453,7 @@
String pattern, int line) throws CoreException {
IFile targetFile = project.getFile(targetPath);
- assertMarkerIsCreated(targetFile, SeamRuntimeValidation.MARKER_TYPE, pattern, line);
+ assertMarkerIsCreated(targetFile, ISeamValidator.SEAM_RESOURCE_MESSAGE_ID, pattern,
line);
}
/**