Skip to content

Commit

Permalink
FORGE-360: FacesPlugin now automatically adds faces mapping if servle…
Browse files Browse the repository at this point in the history
…t version < 3
  • Loading branch information
gastaldi committed May 3, 2013
1 parent 7acb921 commit 626d9ed
Show file tree
Hide file tree
Showing 2 changed files with 58 additions and 9 deletions.
Expand Up @@ -67,21 +67,27 @@ public void setup(final PipeOut out)
if (!project.hasFacet(FacesAPIFacet.class))
{
request.fire(new InstallFacets(FacesAPIFacet.class));
if (!project.hasFacet(CDIFacet.class)) {
if (prompt.promptBoolean("Do you also want to install CDI?", true)) {
if (!project.hasFacet(CDIFacet.class))
{
if (prompt.promptBoolean("Do you also want to install CDI?", true))
{
request.fire(new InstallFacets(CDIFacet.class));
}
}
}
FacesFacet facet = project.getFacet(FacesFacet.class);
if (facet.getFacesServletMappings().isEmpty())
{
if (prompt.promptBoolean("Do you also want to install the Faces servlet and mapping?", false)) {
facet.setFacesMapping("*.xhtml");
facet.setFacesMapping("/faces/*");
}
String servletVersion = project.getFacet(ServletFacet.class).getConfig().getVersion();
int majorVersion = Integer.parseInt(servletVersion.split("[.]")[0]);
if (majorVersion < 3
|| prompt.promptBoolean("Do you also want to install the Faces servlet and mapping?", false))
{
facet.setFacesMapping("*.xhtml");
facet.setFacesMapping("/faces/*");
}
}

if (project.hasFacet(FacesFacet.class))
{
ShellMessages.success(out, "JavaServer Faces is installed.");
Expand Down Expand Up @@ -113,7 +119,8 @@ public void show(final PipeOut out)

out.println();
out.println(out.renderColor(ShellColor.BOLD, "Project State: ") + facet.getProjectStage());
out.println(out.renderColor(ShellColor.BOLD, "FacesServlet Mappings: ") + facet.getEffectiveFacesServletMappings());
out.println(out.renderColor(ShellColor.BOLD, "FacesServlet Mappings: ")
+ facet.getEffectiveFacesServletMappings());
out.println(out.renderColor(ShellColor.BOLD, "Faces Default Suffixes: ") + facet.getFacesDefaultSuffixes());
out.println(out.renderColor(ShellColor.BOLD, "Facelets Default Suffixes: ")
+ facet.getFaceletsDefaultSuffixes());
Expand Down Expand Up @@ -145,7 +152,7 @@ public void newView(final PipeOut out, @Option(name = "target") final Resource<?
{
throw new RuntimeException(templateEx);
}

if (!target.exists())
{
((FileResource<?>) target).createNewFile();
Expand Down
Expand Up @@ -6,8 +6,14 @@
*/
package org.jboss.forge.spec.jsf;

import java.util.List;

import org.jboss.forge.project.Project;
import org.jboss.forge.project.packaging.PackagingType;
import org.jboss.forge.spec.javaee.FacesFacet;
import org.jboss.forge.spec.javaee.ServletFacet;
import org.jboss.forge.test.AbstractShellTest;
import org.jboss.shrinkwrap.descriptor.api.spec.servlet.web.WebAppDescriptor;
import org.junit.Assert;
import org.junit.Test;

Expand All @@ -23,4 +29,40 @@ public void testFacesConfig() throws Exception
Assert.assertTrue(project.getProjectRoot().getChild("src/main/webapp/WEB-INF/web.xml").exists());
}

@Test
public void testFacesServlet2_3() throws Exception
{
Project project = initializeProject(PackagingType.WAR);
ServletFacet servletFacet = project.getFacet(ServletFacet.class);
WebAppDescriptor config = servletFacet.getConfig();
config.version("2.3");
servletFacet.saveConfig(config);
queueInputLines("Y", "", "Y", "Y");
getShell().execute("faces setup");
Assert.assertTrue(project.hasFacet(FacesFacet.class));

FacesFacet facet = project.getFacet(FacesFacet.class);
List<String> facesServletMappings = facet.getFacesServletMappings();
Assert.assertNotNull(facesServletMappings);
Assert.assertFalse(facesServletMappings.isEmpty());
}

@Test
public void testFacesServlet3() throws Exception
{
Project project = initializeProject(PackagingType.WAR);
ServletFacet servletFacet = project.getFacet(ServletFacet.class);
WebAppDescriptor config = servletFacet.getConfig();
config.version("3.0");
servletFacet.saveConfig(config);
queueInputLines("Y", "", "Y", "N");
getShell().execute("faces setup");
Assert.assertTrue(project.hasFacet(FacesFacet.class));

FacesFacet facet = project.getFacet(FacesFacet.class);
List<String> facesServletMappings = facet.getFacesServletMappings();
Assert.assertNotNull(facesServletMappings);
Assert.assertTrue(facesServletMappings.isEmpty());
}

}

0 comments on commit 626d9ed

Please sign in to comment.