Author: manaRH
Date: 2009-07-13 05:38:30 -0400 (Mon, 13 Jul 2009)
New Revision: 11271
Added:
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/contexts/PagesDotXmlDeploymentHandler.java
Modified:
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/deployment/WarRootDeploymentStrategy.java
Log:
back ported JBSEAM-4121
Added:
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/contexts/PagesDotXmlDeploymentHandler.java
===================================================================
---
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/contexts/PagesDotXmlDeploymentHandler.java
(rev 0)
+++
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/contexts/PagesDotXmlDeploymentHandler.java 2009-07-13
09:38:30 UTC (rev 11271)
@@ -0,0 +1,61 @@
+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;
+ }
+
+}
Modified:
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/deployment/WarRootDeploymentStrategy.java
===================================================================
---
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/deployment/WarRootDeploymentStrategy.java 2009-07-11
19:48:40 UTC (rev 11270)
+++
branches/enterprise/JBPAPP_5_0/src/main/org/jboss/seam/deployment/WarRootDeploymentStrategy.java 2009-07-13
09:38:30 UTC (rev 11271)
@@ -29,6 +29,8 @@
public static final String NAME = "warRootDeploymentStrategy";
private DotPageDotXmlDeploymentHandler dotPageDotXmlDeploymentHandler;
+
+ private PagesDotXmlDeploymentHandler pagesDotXmlDeploymentHandler;
public WarRootDeploymentStrategy(ClassLoader classLoader, File warRoot)
{
@@ -51,7 +53,10 @@
this.warRoot = new File[0];
}
dotPageDotXmlDeploymentHandler = new DotPageDotXmlDeploymentHandler();
+ pagesDotXmlDeploymentHandler = new PagesDotXmlDeploymentHandler();
getDeploymentHandlers().put(DotPageDotXmlDeploymentHandler.NAME,
dotPageDotXmlDeploymentHandler);
+ getDeploymentHandlers().put(PagesDotXmlDeploymentHandler.NAME,
pagesDotXmlDeploymentHandler);
+
}
@Override