Author: fbricon
Date: 2011-08-04 08:50:56 -0400 (Thu, 04 Aug 2011)
New Revision: 33586
Added:
trunk/maven/plugins/org.jboss.tools.maven.jsf/.settings/org.eclipse.m2e.core.prefs
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/MavenJSFConstants.java
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/pom.xml
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/good-web.xml
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/web.xml
Removed:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/requirements.properties
Modified:
trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.properties
trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.xml
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/configurators/JSFProjectConfigurator.java
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/AbstractMavenConfiguratorTest.java
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/JSFConfiguratorTest.java
Log:
JBIDE-9455 : add error markers for JSF Facet unsatisfied constraints
Added: trunk/maven/plugins/org.jboss.tools.maven.jsf/.settings/org.eclipse.m2e.core.prefs
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.jsf/.settings/org.eclipse.m2e.core.prefs
(rev 0)
+++
trunk/maven/plugins/org.jboss.tools.maven.jsf/.settings/org.eclipse.m2e.core.prefs 2011-08-04
12:50:56 UTC (rev 33586)
@@ -0,0 +1,5 @@
+#Tue Jun 28 11:43:06 CEST 2011
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
Modified: trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.properties
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.properties 2011-08-04 12:45:40
UTC (rev 33585)
+++ trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.properties 2011-08-04 12:50:56
UTC (rev 33586)
@@ -1,3 +1,5 @@
Bundle-Vendor = JBoss by Red Hat
Bundle-Name = JBoss Maven JSF Configurator
JSF_Project_configurator = JSF
+Maven_Configuration_Problem=Maven Configuration Problem
+Maven_Configuration_Problems=Maven Configuration Problems
Modified: trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.xml
===================================================================
--- trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.xml 2011-08-04 12:45:40 UTC (rev
33585)
+++ trunk/maven/plugins/org.jboss.tools.maven.jsf/plugin.xml 2011-08-04 12:50:56 UTC (rev
33586)
@@ -21,4 +21,22 @@
name="%JSF_Project_configurator"
secondaryTo="org.maven.ide.eclipse.configuration.wtp.configurator"/>
</extension>
+
+ <extension point="org.eclipse.core.resources.markers"
+ id="org.jbosstools.maven.configuration.jsf"
+ name="%Maven_Configuration_Problem">
+ <super type="org.eclipse.m2e.core.maven2Problem.configuration"/>
+ <persistent value="true"/>
+ </extension>
+
+ <extension
+ point="org.eclipse.ui.ide.markerSupport">
+ <markerTypeCategory
+ name="%Maven_Configuration_Problems">
+ <markerTypeReference
+ id="org.jbosstools.maven.configuration.jsf">
+ </markerTypeReference>
+ </markerTypeCategory>
+ </extension>
+
</plugin>
Added:
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/MavenJSFConstants.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/MavenJSFConstants.java
(rev 0)
+++
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/MavenJSFConstants.java 2011-08-04
12:50:56 UTC (rev 33586)
@@ -0,0 +1,25 @@
+/*******************************************************************************
+ * Copyright (c) 2011 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.maven.jsf;
+
+/**
+ *
+ * @author Fred Bricon
+ */
+public class MavenJSFConstants {
+
+ public static final String JSF_CONFIGURATION_ERROR_MARKER_ID =
"org.jbosstools.maven.configuration.jsf";
+ /**
+ * Private constructor to prevent instanciation.
+ */
+ private MavenJSFConstants() {};
+
+}
Modified:
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/configurators/JSFProjectConfigurator.java
===================================================================
---
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/configurators/JSFProjectConfigurator.java 2011-08-04
12:45:40 UTC (rev 33585)
+++
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/configurators/JSFProjectConfigurator.java 2011-08-04
12:50:56 UTC (rev 33586)
@@ -20,10 +20,12 @@
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
import org.eclipse.core.runtime.IPath;
import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.core.runtime.IStatus;
import org.eclipse.core.runtime.Path;
import org.eclipse.jdt.core.IJavaProject;
import org.eclipse.jdt.core.IType;
@@ -47,6 +49,7 @@
import org.jboss.tools.maven.core.IJBossMavenConstants;
import
org.jboss.tools.maven.core.internal.project.facet.MavenFacetInstallDataModelProvider;
import org.jboss.tools.maven.jsf.MavenJSFActivator;
+import org.jboss.tools.maven.jsf.MavenJSFConstants;
import org.jboss.tools.maven.jsf.Messages;
import org.jboss.tools.maven.ui.Activator;
@@ -56,12 +59,11 @@
*
*/
public class JSFProjectConfigurator extends AbstractProjectConfigurator {
-
+
private static final String JSF_API_GROUP_ID = "javax.faces"; //$NON-NLS-1$
private static final String JSF_API2_GROUP_ID = "com.sun.faces";
//$NON-NLS-1$
private static final String JSF_API_ARTIFACT_ID = "jsf-api"; //$NON-NLS-1$
- private static final String WEB_XML = "WEB-INF/web.xml";
private static final String WAR_SOURCE_FOLDER = "/src/main/webapp";
protected static final IProjectFacet dynamicWebFacet;
@@ -172,6 +174,8 @@
String jsfVersionString, MavenProject mavenProject,
IProgressMonitor monitor)
throws CoreException {
+
+ markerManager.deleteMarkers(fproj.getProject(),
MavenJSFConstants.JSF_CONFIGURATION_ERROR_MARKER_ID);
if (!fproj.hasProjectFacet(JSF_FACET)) {
String warSourceDir = getWarSourceDirectory(mavenProject,fproj.getProject());
IPath facesConfigPath = new Path("WEB-INF/faces-config.xml");
@@ -184,20 +188,33 @@
&&
!generatedFacesConfig.getLocation().equals(facesConfig.getLocation())
&& !generatedFacesConfig.exists();
+ IProjectFacetVersion facetVersion = null;
+ boolean configureServlet = true;
if (jsfVersionString.startsWith(JSF_VERSION_1_1)) {
- IDataModel model =
MavenJSFActivator.getDefault().createJSFDataModel(fproj,JSF_FACET_VERSION_1_1);
- fproj.installProjectFacet(JSF_FACET_VERSION_1_1, model, monitor);
+ facetVersion = JSF_FACET_VERSION_1_1;
}
else if (jsfVersionString.startsWith(JSF_VERSION_1_2)) {
- IDataModel model =
MavenJSFActivator.getDefault().createJSFDataModel(fproj,JSF_FACET_VERSION_1_2);
- fproj.installProjectFacet(JSF_FACET_VERSION_1_2, model, monitor);
+ facetVersion = JSF_FACET_VERSION_1_2;
}
else if (jsfVersionString.startsWith(JSF_VERSION_2_0)) {
- IDataModel model =
MavenJSFActivator.getDefault().createJSFDataModel(fproj,JSF_FACET_VERSION_2_0);
- model.setBooleanProperty(IJSFFacetInstallDataModelProperties.CONFIGURE_SERVLET,configureWebxml());
- fproj.installProjectFacet(JSF_FACET_VERSION_2_0, model, monitor);
+ facetVersion = JSF_FACET_VERSION_2_0;
+ configureServlet = configureWebxml();
}
-
+
+ if (facetVersion != null) {
+ IStatus status = facetVersion.getConstraint().check(fproj.getProjectFacets());
+ if (status.isOK()) {
+ IDataModel model =
MavenJSFActivator.getDefault().createJSFDataModel(fproj,facetVersion);
+ model.setBooleanProperty(IJSFFacetInstallDataModelProperties.CONFIGURE_SERVLET,
configureServlet );
+ fproj.installProjectFacet(facetVersion, model, monitor);
+ } else {
+ addErrorMarker(fproj.getProject(), facetVersion + " can not be installed
: "+ status.getMessage());
+ for (IStatus st : status.getChildren()) {
+ addErrorMarker(fproj.getProject(), st.getMessage());
+ }
+ }
+ }
+
if (shouldFixFacesConfig && generatedFacesConfig.exists()) {
if (facesConfig.exists()) {
//We have 2 config files. Delete the gen'd one
@@ -216,6 +233,14 @@
}
}
+ private void addErrorMarker(IProject project, String message) {
+ markerManager.addMarker(project,
+ MavenJSFConstants.JSF_CONFIGURATION_ERROR_MARKER_ID,
+ message
+ ,-1, IMarker.SEVERITY_ERROR);
+
+ }
+
private IFile getFileFromUnderlyingresources(final IProject project, final IPath
filePath) {
IVirtualComponent component = ComponentCore.createComponent(project);
if (component == null) {
Property changes on: trunk/maven/tests/org.jboss.tools.maven.configurators.tests
___________________________________________________________________
Added: svn:ignore
+ target
Added:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/pom.xml
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/pom.xml
(rev 0)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/pom.xml 2011-08-04
12:50:56 UTC (rev 33586)
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project
xmlns="http://maven.apache.org/POM/4.0.0"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0
http://maven.apache.org/xsd/maven-4.0.0.xsd">
+ <modelVersion>4.0.0</modelVersion>
+ <groupId>org.jboss.tools.maven.tests</groupId>
+ <artifactId>jsf-error</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>war</packaging>
+ <dependencies>
+ <dependency>
+ <groupId>javax.faces</groupId>
+ <!-- not in central, hence requires the JBoss repo -->
+ <artifactId>jsf-api</artifactId>
+ <version>2.0</version>
+ </dependency>
+ </dependencies>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.apache.maven.plugins</groupId>
+ <artifactId>maven-war-plugin</artifactId>
+ <version>2.1.1</version>
+ <configuration>
+ <failOnMissingWebXml>false</failOnMissingWebXml>
+ </configuration>
+ </plugin>
+ </plugins>
+ </build>
+ <repositories>
+ <!-- You should seriously consider using a repository manager or declare repositories
in your settings.xml.
+ See
http://www.sonatype.com/people/2009/02/why-putting-repositories-in-your-p...
-->
+ <repository>
+ <!-- The JBoss Public repository is a composite repository of several major
repositories.
+ See
http://community.jboss.org/wiki/MavenGettingStarted-Users -->
+ <id>jboss-public-repository</id>
+ <
url>http://repository.jboss.org/nexus/content/groups/public</url>
+ <releases>
+ <enabled>true</enabled>
+ </releases>
+ <!-- You can disable snapshot resolution to speed up your builds -->
+ <snapshots>
+ <enabled>true</enabled>
+ </snapshots>
+ </repository>
+ </repositories>
+</project>
+
Added:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/good-web.xml
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/good-web.xml
(rev 0)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/good-web.xml 2011-08-04
12:50:56 UTC (rev 33586)
@@ -0,0 +1,14 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app version="2.5"
xmlns="http://java.sun.com/xml/ns/javaee"
+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+
xsi:schemaLocation="http://java.sun.com/xml/ns/javaee
http://java.sun.com/xml/ns/javaee/web-app_2_5.xsd">
+ <!-- This is a nice comment -->
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ <welcome-file>default.html</welcome-file>
+ <welcome-file>default.htm</welcome-file>
+ <welcome-file>default.jsp</welcome-file>
+ </welcome-file-list>
+</web-app>
Added:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/web.xml
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/web.xml
(rev 0)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/jsf-error/src/main/webapp/WEB-INF/web.xml 2011-08-04
12:50:56 UTC (rev 33586)
@@ -0,0 +1,12 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<web-app id="WebApp_ID" version="2.4"
xmlns="http://java.sun.com/xml/ns/j2ee"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://java.sun.com/xml/ns/j2ee
http://java.sun.com/xml/ns/j2ee/web-app_2_4.xsd">
<display-name>jsf-webxml</display-name>
+ <!-- This is a nice comment -->
+ <welcome-file-list>
+ <welcome-file>index.html</welcome-file>
+ <welcome-file>index.htm</welcome-file>
+ <welcome-file>index.jsp</welcome-file>
+ <welcome-file>default.html</welcome-file>
+ <welcome-file>default.htm</welcome-file>
+ <welcome-file>default.jsp</welcome-file>
+ </welcome-file-list>
+</web-app>
Deleted:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/requirements.properties
===================================================================
Modified:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/AbstractMavenConfiguratorTest.java
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/AbstractMavenConfiguratorTest.java 2011-08-04
12:45:40 UTC (rev 33585)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/AbstractMavenConfiguratorTest.java 2011-08-04
12:50:56 UTC (rev 33586)
@@ -10,8 +10,82 @@
************************************************************************************/
package org.jboss.tools.maven.configurators.tests;
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IProject;
+import org.eclipse.core.resources.IncrementalProjectBuilder;
+import org.eclipse.jst.common.project.facet.core.JavaFacet;
+import org.eclipse.m2e.core.MavenPlugin;
+import org.eclipse.m2e.core.project.IProjectConfigurationManager;
+import org.eclipse.m2e.core.project.ResolverConfiguration;
import org.eclipse.m2e.tests.common.AbstractMavenProjectTestCase;
+import org.eclipse.wst.common.project.facet.core.IFacetedProject;
+import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
+import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.jboss.tools.common.util.FileUtil;
+import org.jboss.tools.maven.jsf.configurators.JSFProjectConfigurator;
-public abstract class AbstractMavenConfiguratorTest extends AbstractMavenProjectTestCase
{
+public abstract class AbstractMavenConfiguratorTest extends
+ AbstractMavenProjectTestCase {
+ protected String toString(File file) {
+ return FileUtil.readFile(file);
+ }
+
+ protected String toString(IFile file) {
+ return FileUtil.getContentFromEditorOrFile(file);
+ }
+
+ protected void assertIsJSFProject(IProject project,
+ IProjectFacetVersion expectedJSFVersion) throws Exception {
+ IFacetedProject facetedProject = ProjectFacetsManager.create(project);
+ assertNotNull(project.getName() + " is not a faceted project",
facetedProject);
+ assertEquals("Unexpected JSF Version", expectedJSFVersion,
facetedProject.getInstalledVersion(JSFProjectConfigurator.JSF_FACET));
+ assertTrue("Java Facet is
missing", facetedProject.hasProjectFacet(JavaFacet.FACET));
+ assertTrue("faces-config.xml is missing",
project.getFile("src/main/webapp/WEB-INF/faces-config.xml").exists());
+ }
+
+ /**
+ * Replace the project pom.xml with a new one, triggers new build
+ *
+ * @param project
+ * @param newPomName
+ * @throws Exception
+ */
+ protected void updateProject(IProject project, String newPomName) throws Exception {
+ updateProject(project, newPomName, -1);
+ }
+
+ /**
+ * Replace the project pom.xml with a new one, triggers new build, wait for
+ * waitTime milliseconds.
+ *
+ * @param project
+ * @param newPomName
+ * @param waitTime
+ * @throws Exception
+ */
+ protected void updateProject(IProject project, String newPomName, int waitTime) throws
Exception {
+
+ if (newPomName != null) {
+ copyContent(project, newPomName, "pom.xml");
+ }
+
+ IProjectConfigurationManager configurationManager =
MavenPlugin.getProjectConfigurationManager();
+ ResolverConfiguration configuration = new ResolverConfiguration();
+ configurationManager.enableMavenNature(project, configuration, monitor);
+ configurationManager.updateProjectConfiguration(project, monitor);
+ waitForJobsToComplete();
+
+ project.build(IncrementalProjectBuilder.FULL_BUILD, monitor);
+ if (waitTime > 0) {
+ Thread.sleep(waitTime);
+ }
+ waitForJobsToComplete();
+ }
+
+ protected void updateProject(IProject project) throws Exception {
+ updateProject(project, null, -1);
+ }
}
Modified:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/JSFConfiguratorTest.java
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/JSFConfiguratorTest.java 2011-08-04
12:45:40 UTC (rev 33585)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/JSFConfiguratorTest.java 2011-08-04
12:50:56 UTC (rev 33586)
@@ -1,11 +1,14 @@
package org.jboss.tools.maven.configurators.tests;
+import java.io.File;
+
+import org.eclipse.core.resources.IFile;
import org.eclipse.core.resources.IProject;
-import org.eclipse.jst.common.project.facet.core.JavaFacet;
import org.eclipse.m2e.core.project.ResolverConfiguration;
+import org.eclipse.m2e.tests.common.WorkspaceHelpers;
import org.eclipse.wst.common.project.facet.core.IFacetedProject;
-import org.eclipse.wst.common.project.facet.core.IProjectFacetVersion;
import org.eclipse.wst.common.project.facet.core.ProjectFacetsManager;
+import org.jboss.tools.maven.jsf.MavenJSFConstants;
import org.jboss.tools.maven.jsf.configurators.JSFProjectConfigurator;
import org.junit.Test;
@@ -21,6 +24,7 @@
"jsf-myfaces/pom.xml",
"jsf-jsfapi-12/pom.xml"},
new ResolverConfiguration());
+ waitForJobsToComplete();
IProject mojarra = projects[0];
assertNoErrors(mojarra);
assertIsJSFProject(mojarra, JSFProjectConfigurator.JSF_FACET_VERSION_2_0);
@@ -44,10 +48,40 @@
}
- private void assertIsJSFProject(IProject project, IProjectFacetVersion
expectedJSFVersion) throws Exception {
- IFacetedProject facetedProject = ProjectFacetsManager.create(project);
- assertNotNull(project.getName() + " is not a faceted project",
facetedProject);
- assertEquals("Unexpected JSF Version", expectedJSFVersion,
facetedProject.getInstalledVersion(JSFProjectConfigurator.JSF_FACET));
- assertTrue("Java Facet is missing",
facetedProject.hasProjectFacet(JavaFacet.FACET));
+ @Test
+ public void testJBIDE8687_webXml_changed() throws Exception {
+ String projectLocation = "projects/jsf/jsf-webxml";
+ String webxmlRelPath = "src/main/webapp/WEB-INF/web.xml";
+
+ IProject jsfProject = importProject(projectLocation+"/pom.xml");
+ waitForJobsToComplete();
+ assertIsJSFProject(jsfProject, JSFProjectConfigurator.JSF_FACET_VERSION_2_0);
+
+ IFile webXml = jsfProject.getFile(webxmlRelPath);
+ assertTrue(webXml.exists());
+ File originalWebXml = new File(projectLocation, webxmlRelPath);
+ assertEquals("web.xml content changed ", toString(originalWebXml),
toString(webXml));
+ }
+
+ @Test
+ public void testJBIDE9455_errorMarkers() throws Exception {
+ String projectLocation = "projects/jsf/jsf-error";
+ IProject jsfProject = importProject(projectLocation+"/pom.xml");
+ waitForJobsToComplete();
+ IFacetedProject facetedProject = ProjectFacetsManager.create(jsfProject);
+ assertNotNull(jsfProject.getName() + " is not a faceted project",
facetedProject);
+ assertFalse("JSF Facet should be missing",
facetedProject.hasProjectFacet(JSFProjectConfigurator.JSF_FACET));
+ assertHasJSFConfigurationError(jsfProject, "JavaServer Faces 2.0 can not be
installed : One or more constraints have not been satisfied.");
+ assertHasJSFConfigurationError(jsfProject, "JavaServer Faces 2.0 requires Dynamic
Web Module 2.5 or newer.");
+
+ //Check markers are removed upon configuration update
+ copyContent(jsfProject, "src/main/webapp/WEB-INF/good-web.xml",
"src/main/webapp/WEB-INF/web.xml", true);
+ updateProject(jsfProject);
+ assertNoErrors(jsfProject);
+ assertIsJSFProject(jsfProject, JSFProjectConfigurator.JSF_FACET_VERSION_2_0);
}
+
+ private void assertHasJSFConfigurationError(IProject project, String message) throws
Exception {
+ WorkspaceHelpers.assertErrorMarker(MavenJSFConstants.JSF_CONFIGURATION_ERROR_MARKER_ID,
message, 1, "", project);
+ }
}