[jbosstools-commits] JBoss Tools SVN: r39915 - in trunk/maven: tests/org.jboss.tools.maven.configurators.tests/projects/jsf and 8 other directories.

jbosstools-commits at lists.jboss.org jbosstools-commits at lists.jboss.org
Thu Mar 29 08:10:26 EDT 2012


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-poms-is-a-bad-idea/   -->
+     <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-poms-is-a-bad-idea/   -->
+     <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);
 	}



More information about the jbosstools-commits mailing list