package org.jboss.seam.deployment;
import org.jboss.seam.contexts.Contexts;
/**
* The {@link PagesDotXmlDeploymentHandler} process pages.xml files
* Its only purpose is to make sure pages.xml gets updated by hot deploy
*
* @author Stuart Douglas
*
*/
public class PagesDotXmlDeploymentHandler extends AbstractDeploymentHandler
{
private static DeploymentMetadata PAGESDOTXML_SUFFIX_FILE_METADATA = new DeploymentMetadata()
{
public String getFileNameSuffix()
{
return "WEB-INF/pages.xml";
}
};
/**
* Name under which this {@link DeploymentHandler} is registered
*/
public static final String NAME = "org.jboss.seam.deployment.PagesDotXmlDeploymentHandler";
public String getName()
{
return NAME;
}
public static PagesDotXmlDeploymentHandler instance()
{
if (Contexts.isEventContextActive())
{
if (Contexts.getEventContext().isSet(WarRootDeploymentStrategy.NAME))
{
DeploymentStrategy deploymentStrategy = (DeploymentStrategy) Contexts.getEventContext().get(WarRootDeploymentStrategy.NAME);
Object deploymentHandler = deploymentStrategy.getDeploymentHandlers().get(NAME);
if (deploymentHandler != null)
{
return (PagesDotXmlDeploymentHandler) deploymentHandler;
}
}
return null;
}
else
{
throw new IllegalStateException("Event context not active");
}
}
public DeploymentMetadata getMetadata()
{
return PAGESDOTXML_SUFFIX_FILE_METADATA;
}
}