Author: scabanovich
Date: 2011-06-01 21:22:37 -0400 (Wed, 01 Jun 2011)
New Revision: 31764
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.properties
trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.xml
trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/elValidationDelegate.exsd
trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/validator.exsd
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbMessages.properties
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java
Log:
JBIDE-9028
https://issues.jboss.org/browse/JBIDE-9028
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.properties
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.properties 2011-06-01 23:08:45 UTC
(rev 31763)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.properties 2011-06-02 01:22:37 UTC
(rev 31764)
@@ -5,4 +5,6 @@
KBProblemName=EL Knowledge Base Problem
KBBuilderProblemName=Knowledge Base Builder Problem
-BuilderOrderProblemName=Builders Order Problem
\ No newline at end of file
+BuilderOrderProblemName=Builders Order Problem
+
+ELValidator=EL Validator
\ No newline at end of file
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.xml
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.xml 2011-06-01 23:08:45 UTC (rev
31763)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/plugin.xml 2011-06-02 01:22:37 UTC (rev
31764)
@@ -142,6 +142,8 @@
</persistent>
<attribute name="builder">
</attribute>
+ <attribute name="validator">
+ </attribute>
</extension>
<extension id="kbproblemmarker" name="%KBProblemName"
point="org.eclipse.core.resources.markers">
@@ -241,10 +243,12 @@
</extension>
<extension
+ id="ELValidator"
point="org.jboss.tools.jst.web.kb.validator">
<validator
class="org.jboss.tools.jst.web.kb.internal.validation.ELValidator"
id="org.jboss.tools.jst.web.kb.ELValidator"
+ name="%ELValidator"
dependent="true">
</validator>
</extension>
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/elValidationDelegate.exsd
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/elValidationDelegate.exsd 2011-06-01
23:08:45 UTC (rev 31763)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/elValidationDelegate.exsd 2011-06-02
01:22:37 UTC (rev 31764)
@@ -66,6 +66,13 @@
</appInfo>
</annotation>
</attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
</complexType>
</element>
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/validator.exsd
===================================================================
--- trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/validator.exsd 2011-06-01 23:08:45
UTC (rev 31763)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.kb/schema/validator.exsd 2011-06-02 01:22:37
UTC (rev 31764)
@@ -73,6 +73,13 @@
</documentation>
</annotation>
</attribute>
+ <attribute name="name" type="string">
+ <annotation>
+ <documentation>
+
+ </documentation>
+ </annotation>
+ </attribute>
</complexType>
</element>
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbMessages.properties
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbMessages.properties 2011-06-01
23:08:45 UTC (rev 31763)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/KbMessages.properties 2011-06-02
01:22:37 UTC (rev 31764)
@@ -1,4 +1,4 @@
-WRONG_BUILDER_ORDER=Project {0} cannot be validated: Validation Builder should follow
{1}.
+WRONG_BUILDER_ORDER={1} cannot run on project {0} because Validation Builder precedes
{2}.
CHANGE_BUILDER_ORDER=Change Order of Builders.
VALIDATION_CONTEXT_LINKED_RESOURCE_PATH_MUST_NOT_BE_NULL=Linked resource path must not be
null\!
Modified:
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java 2011-06-01
23:08:45 UTC (rev 31763)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ELValidator.java 2011-06-02
01:22:37 UTC (rev 31764)
@@ -550,6 +550,7 @@
}
private boolean validateBuilderOrder(IProject project) throws CoreException {
- return ValidatorManager.validateBuilderOrder(project, getBuilderId(),
ELSeverityPreferences.getInstance());
+ return ValidatorManager.validateBuilderOrder(project, getBuilderId(), getId(),
ELSeverityPreferences.getInstance());
}
-}
\ 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/ValidatorManager.java
===================================================================
---
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java 2011-06-01
23:08:45 UTC (rev 31763)
+++
trunk/jst/plugins/org.jboss.tools.jst.web.kb/src/org/jboss/tools/jst/web/kb/internal/validation/ValidatorManager.java 2011-06-02
01:22:37 UTC (rev 31764)
@@ -21,6 +21,7 @@
import org.eclipse.core.resources.IResource;
import org.eclipse.core.resources.ResourcesPlugin;
import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IConfigurationElement;
import org.eclipse.core.runtime.IExtension;
import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Platform;
@@ -113,6 +114,7 @@
public static final String ORDER_PROBLEM_MARKER_TYPE =
"org.jboss.tools.jst.web.kb.builderOrderProblem"; //$NON-NLS-1$
private static String ATTR_BUILDER = "builder"; //$NON-NLS-1$
+ private static String ATTR_VALIDATOR = "validator"; //$NON-NLS-1$
/**
* Helper method to be called by IValidator implementations.
@@ -124,14 +126,15 @@
*
* @param project
* @param builderId
+ * @param validatorId
* @param preferences
* @return
* @throws CoreException
*/
- public static boolean validateBuilderOrder(IProject project, String builderId,
SeverityPreferences preferences) throws CoreException {
+ public static boolean validateBuilderOrder(IProject project, String builderId, String
validatorId, SeverityPreferences preferences) throws CoreException {
int severity = getSeverity(preferences.getBuilderOrderPreference(project));
boolean isCorrect = isCorrectOrder(project, builderId);
- IMarker marker = findBuilderOrderMarker(project, builderId);
+ IMarker marker = findBuilderOrderMarker(project, builderId, validatorId);
if(isCorrect || severity <= IMarker.SEVERITY_INFO) {
if(marker != null) {
ResourcesPlugin.getWorkspace().deleteMarkers(new IMarker[]{marker});
@@ -145,8 +148,9 @@
marker = project.createMarker(ORDER_PROBLEM_MARKER_TYPE);
marker.setAttribute(ATTR_BUILDER, builderId);
marker.setAttribute(IMarker.SEVERITY, severity);
- String message = NLS.bind(KbMessages.WRONG_BUILDER_ORDER, project.getName(),
findBuilderName(builderId));
+ String message = NLS.bind(KbMessages.WRONG_BUILDER_ORDER, new
String[]{project.getName(), findValidatorName(validatorId), findBuilderName(builderId)});
marker.setAttribute(IMarker.MESSAGE, message);
+ marker.setAttribute(ATTR_VALIDATOR, validatorId);
}
}
return isCorrect || severity <= IMarker.SEVERITY_INFO;
@@ -166,11 +170,12 @@
return true;
}
- private static IMarker findBuilderOrderMarker(IProject project, String builderId) throws
CoreException {
+ private static IMarker findBuilderOrderMarker(IProject project, String builderId, String
validatorId) throws CoreException {
IMarker result = null;
IMarker[] ms = project.findMarkers(ORDER_PROBLEM_MARKER_TYPE, false,
IResource.DEPTH_ZERO);
for (IMarker m: ms) {
- if(builderId.equals(m.getAttribute(ATTR_BUILDER, null))) {
+ if(builderId.equals(m.getAttribute(ATTR_BUILDER, null))
+ && validatorId.equals(m.getAttribute(ATTR_VALIDATOR))) {
result = m;
}
}
@@ -182,6 +187,20 @@
return (ext != null && ext.getLabel() != null) ? ext.getLabel() : builderId;
}
+ private static String findValidatorName(String validatorId) {
+ IExtension ext = Platform.getExtensionRegistry().getExtension(validatorId);
+ if(ext != null) {
+ IConfigurationElement[] es = ext.getConfigurationElements();
+ if(es.length > 0) {
+ String name = es[0].getAttribute("name"); //$NON-NLS-1$
+ if(name != null) {
+ return name;
+ }
+ }
+ }
+ return validatorId;
+ }
+
private static int getSeverity(String severityPreferenceValue) {
return (SeverityPreferences.IGNORE.equals(severityPreferenceValue))
? IMarker.SEVERITY_INFO