From jbosstools-commits at lists.jboss.org Tue Oct 16 20:00:09 2012
Content-Type: multipart/mixed; boundary="===============0385546355954046361=="
MIME-Version: 1.0
From: jbosstools-commits at lists.jboss.org
To: jbosstools-commits at lists.jboss.org
Subject: [jbosstools-commits] JBoss Tools SVN: r44546 - in trunk:
jsf/tests/org.jboss.tools.jsf.ui.test/projects/test_jsf_project/WebContent/pages
and 2 other directories.
Date: Tue, 16 Oct 2012 20:00:07 -0400
Message-ID: <201210170000.q9H007jf010033@svn01.web.mwc.hst.phx2.redhat.com>
--===============0385546355954046361==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: dazarov
Date: 2012-10-16 20:00:06 -0400 (Tue, 16 Oct 2012)
New Revision: 44546
Added:
trunk/jsf/tests/org.jboss.tools.jsf.ui.test/projects/test_jsf_project/We=
bContent/pages/test_page2.jsp
Modified:
trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tools=
/common/text/ext/util/StructuredModelWrapper.java
trunk/jsf/tests/org.jboss.tools.jsf.ui.test/src/org/jboss/tools/jsf/ui/t=
est/JSPProblemMarkerResolutionTest.java
trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/web=
/ui/action/JSPProblemMarkerResolutionGenerator.java
Log:
"Add missing required attribute(s)" quick fix for "Missing required attribu=
te" WTP problem marker JBIDE-12390
Modified: trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jbos=
s/tools/common/text/ext/util/StructuredModelWrapper.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tool=
s/common/text/ext/util/StructuredModelWrapper.java 2012-10-16 23:55:58 UTC =
(rev 44545)
+++ trunk/common/plugins/org.jboss.tools.common.text.ext/src/org/jboss/tool=
s/common/text/ext/util/StructuredModelWrapper.java 2012-10-17 00:00:06 UTC =
(rev 44546)
@@ -10,11 +10,15 @@
*************************************************************************=
*****/ =
package org.jboss.tools.common.text.ext.util;
=
+import java.io.IOException;
+
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.runtime.CoreException;
import org.eclipse.jface.text.IDocument;
import org.eclipse.wst.sse.core.internal.provisional.IModelManager;
import org.eclipse.wst.sse.core.internal.provisional.IStructuredModel;
import org.eclipse.wst.sse.core.internal.provisional.StructuredModelManage=
r;
+import org.eclipse.wst.sse.core.internal.provisional.text.IStructuredDocum=
ent;
import org.eclipse.wst.xml.core.internal.provisional.document.IDOMModel;
import org.jboss.tools.common.model.XModel;
import org.jboss.tools.common.text.ext.hyperlink.AbstractHyperlink;
@@ -29,6 +33,10 @@
public void init(IDocument id) {
model =3D getModelManager().getExistingModelForRead(id);
}
+
+ public void init(IFile file) throws IOException, CoreException {
+ model =3D getModelManager().getModelForRead(file);
+ }
=
public Document getDocument() {
return (model instanceof IDOMModel) ? ((IDOMModel) model).getDocument() =
: null;
Added: trunk/jsf/tests/org.jboss.tools.jsf.ui.test/projects/test_jsf_projec=
t/WebContent/pages/test_page2.jsp
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/jsf/tests/org.jboss.tools.jsf.ui.test/projects/test_jsf_project/W=
ebContent/pages/test_page2.jsp (rev 0)
+++ trunk/jsf/tests/org.jboss.tools.jsf.ui.test/projects/test_jsf_project/W=
ebContent/pages/test_page2.jsp 2012-10-17 00:00:06 UTC (rev 44546)
@@ -0,0 +1,10 @@
+<%@ taglib uri=3D"http://java.sun.com/jsp/jstl/xml" prefix=3D"x" %>
+
+
+
+ Input User Name Page
+
+
+
+
+
\ No newline at end of file
Modified: trunk/jsf/tests/org.jboss.tools.jsf.ui.test/src/org/jboss/tools/j=
sf/ui/test/JSPProblemMarkerResolutionTest.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/jsf/tests/org.jboss.tools.jsf.ui.test/src/org/jboss/tools/jsf/ui/=
test/JSPProblemMarkerResolutionTest.java 2012-10-16 23:55:58 UTC (rev 44545)
+++ trunk/jsf/tests/org.jboss.tools.jsf.ui.test/src/org/jboss/tools/jsf/ui/=
test/JSPProblemMarkerResolutionTest.java 2012-10-17 00:00:06 UTC (rev 44546)
@@ -18,6 +18,11 @@
import org.eclipse.jface.text.Position;
import org.eclipse.jface.text.source.IAnnotationModel;
import org.eclipse.jface.text.source.SourceViewer;
+import org.eclipse.jst.jsp.core.internal.validation.JSPActionValidator;
+import org.eclipse.jst.jsp.core.internal.validation.JSPDirectiveValidator;
+import org.eclipse.jst.jsp.core.internal.validation.JSPJavaValidator;
+import org.eclipse.jst.jsp.core.internal.validation.JSPValidator;
+import org.eclipse.jst.jsp.ui.internal.validation.JSPActionSourceValidator;
import org.eclipse.jst.jsp.ui.internal.validation.JSPContentSourceValidato=
r;
import org.eclipse.swt.widgets.Display;
import org.eclipse.ui.IEditorInput;
@@ -81,26 +86,33 @@
=
if(JSP_EXT.equals(file.getFileExtension())){
file.deleteMarkers(JSP_MARKER_TYPE, true, IResource.DEPTH_INFINITE);
- JSPContentSourceValidator validator =3D new JSPContentSourceValidator();
+ JSPValidator[] validators =3D{
+ new JSPContentSourceValidator(),
+ new JSPActionSourceValidator(),
+ new JSPJavaValidator(),
+ new JSPDirectiveValidator()
+ };
=
- ValidationResult result =3D validator.validate(file, 0, new ValidationS=
tate(), new NullProgressMonitor());
- =
- IReporter reporter =3D result.getReporter(new NullProgressMonitor());
- List messages =3D reporter.getMessages();
- for(Object m : messages){
- if(m instanceof Message){
- Message message =3D (Message)m;
- IMarker marker =3D file.createMarker(JSP_MARKER_TYPE);
- marker.setAttributes(message.getAttributes());
- marker.setAttribute(IMarker.MESSAGE, message.getText());
- int markerSeverity =3D IMarker.SEVERITY_INFO;
- int sev =3D message.getSeverity();
- if ((sev & IMessage.HIGH_SEVERITY) !=3D 0)markerSeverity =3D IMarker.=
SEVERITY_ERROR;
- else if ((sev & IMessage.NORMAL_SEVERITY) !=3D 0)markerSeverity =3D I=
Marker.SEVERITY_WARNING;
- marker.setAttribute(IMarker.SEVERITY, markerSeverity);
- marker.setAttribute(IMarker.LINE_NUMBER, message.getLineNumber());
- marker.setAttribute(IMarker.CHAR_START, message.getOffset());
- marker.setAttribute(IMarker.CHAR_END, message.getOffset()+message.get=
Length());
+ for(JSPValidator validator : validators){
+ ValidationResult result =3D validator.validate(file, 0, new Validation=
State(), new NullProgressMonitor());
+ =
+ IReporter reporter =3D result.getReporter(new NullProgressMonitor());
+ List messages =3D reporter.getMessages();
+ for(Object m : messages){
+ if(m instanceof Message){
+ Message message =3D (Message)m;
+ IMarker marker =3D file.createMarker(JSP_MARKER_TYPE);
+ marker.setAttributes(message.getAttributes());
+ marker.setAttribute(IMarker.MESSAGE, message.getText());
+ int markerSeverity =3D IMarker.SEVERITY_INFO;
+ int sev =3D message.getSeverity();
+ if ((sev & IMessage.HIGH_SEVERITY) !=3D 0)markerSeverity =3D IMarker=
.SEVERITY_ERROR;
+ else if ((sev & IMessage.NORMAL_SEVERITY) !=3D 0)markerSeverity =3D =
IMarker.SEVERITY_WARNING;
+ marker.setAttribute(IMarker.SEVERITY, markerSeverity);
+ marker.setAttribute(IMarker.LINE_NUMBER, message.getLineNumber());
+ marker.setAttribute(IMarker.CHAR_START, message.getOffset());
+ marker.setAttribute(IMarker.CHAR_END, message.getOffset()+message.ge=
tLength());
+ }
}
}
}else if(XHTML_EXT.equals(file.getFileExtension())){
@@ -148,7 +160,7 @@
}
}
=
- public void testProblemMarkerResolutionInJSP() throws CoreException, Secu=
rityException, NoSuchMethodException, IllegalArgumentException, IllegalAcce=
ssException, InvocationTargetException, InstantiationException {
+ public void testAddTLDMarkerResolutionInJSP() throws CoreException, Secur=
ityException, NoSuchMethodException, IllegalArgumentException, IllegalAcces=
sException, InvocationTargetException, InstantiationException {
IFile jspFile =3D project.getFile("WebContent/pages/test_page1.jsp");
=
assertTrue("File must be exists.",jspFile.exists());
@@ -180,7 +192,40 @@
=
assertMarkerIsNotCreated(jspFile, JSP_MARKER_TYPE, "Unknown tag (h:comma=
ndButton).");
}
+ =
+ public void testAddAttributeMarkerResolutionInJSP() throws CoreException,=
SecurityException, NoSuchMethodException, IllegalArgumentException, Illega=
lAccessException, InvocationTargetException, InstantiationException {
+ IFile jspFile =3D project.getFile("WebContent/pages/test_page2.jsp");
+ =
+ assertTrue("File must be exists.",jspFile.exists());
+ =
+ validate(jspFile);
=
+ assertMarkerIsCreated(jspFile, JSP_MARKER_TYPE, "Missing required attrib=
ute \"select\"", true, 7);
+
+ IMarker[] markers =3D findMarkers(jspFile, JSP_MARKER_TYPE, "Missing req=
uired attribute \"select\"");
+
+ assertEquals("Should be 1 marker here", 1, markers.length);
+
+ JSPProblemMarkerResolutionGenerator generator =3D new JSPProblemMarkerRe=
solutionGenerator();
+ =
+ boolean found =3D false;
+
+ for(IMarker marker : markers){
+ generator.hasResolutions(marker);
+ IMarkerResolution[] resolutions =3D generator.getResolutions(marker);
+ for(IMarkerResolution resolution : resolutions){
+ resolution.run(marker);
+ found =3D true;
+ }
+ }
+ =
+ assertTrue("AddAttributeMarkerResolution not found", found);
+
+ validate(jspFile);
+
+ assertMarkerIsNotCreated(jspFile, JSP_MARKER_TYPE, "Missing required att=
ribute \"select\"");
+ }
+
public void testProblemMarkerResolutionInXHTML() throws CoreException, Se=
curityException, NoSuchMethodException, IllegalArgumentException, IllegalAc=
cessException, InvocationTargetException, InstantiationException {
IFile jspFile =3D project.getFile("WebContent/pages/test_page2.xhtml");
=
Modified: trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/=
jst/web/ui/action/JSPProblemMarkerResolutionGenerator.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/we=
b/ui/action/JSPProblemMarkerResolutionGenerator.java 2012-10-16 23:55:58 UT=
C (rev 44545)
+++ trunk/jst/plugins/org.jboss.tools.jst.web.ui/src/org/jboss/tools/jst/we=
b/ui/action/JSPProblemMarkerResolutionGenerator.java 2012-10-17 00:00:06 UT=
C (rev 44546)
@@ -10,6 +10,7 @@
*************************************************************************=
*****/
package org.jboss.tools.jst.web.ui.action;
=
+import java.io.IOException;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@@ -239,7 +240,7 @@
IDocument document =3D provider.getDocument(input);
StructuredModelWrapper smw =3D new StructuredModelWrapper();
try {
- smw.init(document);
+ smw.init(file);
Document xmlDocument =3D smw.getDocument();
if (xmlDocument =3D=3D null) return;
=
@@ -250,6 +251,8 @@
String tagName =3D node.getNodeName();
=
resolutions.add(new AddAttributeMarkerResolution(file, node, attributeN=
ame, start, end));
+ } catch (IOException ex) {
+ WebUiPlugin.getPluginLog().logError(ex);
} finally {
smw.dispose();
}
--===============0385546355954046361==--