Author: fbricon
Date: 2012-03-29 08:10:25 -0400 (Thu, 29 Mar 2012)
New Revision: 39915
Added:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/pom.xml
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/src/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/src/main/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/src/main/webapp/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/src/main/webapp/WEB-INF/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/src/main/webapp/WEB-INF/lib/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-nolib/
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-nolib/pom.xml
Modified:
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/src/org/jboss/tools/maven/configurators/tests/JSFConfiguratorTest.java
Log:
JBIDE-11413: Installing the JSF facet creates an empty WEB-INF/lib folder
https://issues.jboss.org/browse/JBIDE-11413
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 2012-03-29
11:51:47 UTC (rev 39914)
+++
trunk/maven/plugins/org.jboss.tools.maven.jsf/src/org/jboss/tools/maven/jsf/configurators/JSFProjectConfigurator.java 2012-03-29
12:10:25 UTC (rev 39915)
@@ -23,6 +23,7 @@
import org.codehaus.plexus.util.xml.Xpp3Dom;
import org.eclipse.core.resources.IContainer;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IMarker;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.CoreException;
@@ -182,6 +183,7 @@
IFile defaultFacesConfig = project.getFolder(warSourceDir).getFile(facesConfigPath);
IFile generatedFacesConfig = ProjectUtil.getGeneratedWebResourceFile(project,
facesConfigPath);
IFile actualFacesConfig = JSFUtils.getFacesconfig(project);
+ IFolder libFolder =
project.getFolder(warSourceDir).getFolder("WEB-INF/lib");
//faces-config.xml will not be created in the source folder and it doesn't exist
yet
// => We'll have to fix it after setting the JSF facet
@@ -189,6 +191,7 @@
&&
!generatedFacesConfig.getLocation().equals(defaultFacesConfig.getLocation())
&& !generatedFacesConfig.exists();
boolean defaultFacesConfigAlreadyExists = defaultFacesConfig.exists();
+ boolean libFolderAlreadyExists = libFolder.exists();
IProjectFacetVersion facetVersion = null;
boolean configureServlet = false;//Fix for JBIDE-9454, where existing web.xml is
completely overwritten.
@@ -236,6 +239,12 @@
&& defaultFacesConfig.exists()/*file has just been created*/) {
defaultFacesConfig.delete(true, monitor);
}
+ //JBIDE-11413 : don't create an unnecessary lib folder
+ if (!libFolderAlreadyExists
+ && libFolder.exists()
+ && libFolder.members().length == 0){
+ libFolder.delete(true, monitor);
+ }
}
}
Added:
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/pom.xml
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/pom.xml
(rev 0)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-lib/pom.xml 2012-03-29
12:10:25 UTC (rev 39915)
@@ -0,0 +1,47 @@
+<?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-lib</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/JBIDE-11413/jsf-nolib/pom.xml
===================================================================
---
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-nolib/pom.xml
(rev 0)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/projects/jsf/JBIDE-11413/jsf-nolib/pom.xml 2012-03-29
12:10:25 UTC (rev 39915)
@@ -0,0 +1,47 @@
+<?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-nolib</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>
+
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 2012-03-29
11:51:47 UTC (rev 39914)
+++
trunk/maven/tests/org.jboss.tools.maven.configurators.tests/src/org/jboss/tools/maven/configurators/tests/JSFConfiguratorTest.java 2012-03-29
12:10:25 UTC (rev 39915)
@@ -3,6 +3,7 @@
import java.io.File;
import org.eclipse.core.resources.IFile;
+import org.eclipse.core.resources.IFolder;
import org.eclipse.core.resources.IProject;
import org.eclipse.core.runtime.NullProgressMonitor;
import org.eclipse.jst.j2ee.project.facet.IJ2EEFacetConstants;
@@ -144,6 +145,23 @@
}
+
+
+ @Test
+ public void testJBIDE11413_WebInfLib() throws Exception {
+ IProject[] projects = importProjects("projects/jsf/JBIDE-11413", new
String[]{ "jsf-nolib/pom.xml","jsf-lib/pom.xml"}, new
ResolverConfiguration());
+ waitForJobsToComplete();
+
+ IProject jsfnolib = projects[0];
+ IProject jsflib = projects[1];
+
+ IFolder lib = jsfnolib.getFolder("src/main/webapp/WEB-INF/lib");
+ assertFalse("WEB-INF/lib was added to the project!", lib.exists());
+
+ lib = jsflib.getFolder("src/main/webapp/WEB-INF/lib");
+ assertTrue("WEB-INF/lib was removed from the project!", lib.exists());
+ }
+
private void assertHasJSFConfigurationError(IProject project, String message) throws
Exception {
WorkspaceHelpers.assertErrorMarker(MavenJSFConstants.JSF_CONFIGURATION_ERROR_MARKER_ID,
message, 1, "", project);
}