KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > jboss > portal > core > deployment > jboss > PagesDeployment


1 /*****************************************
2  * *
3  * JBoss Portal: The OpenSource Portal *
4  * *
5  * Distributable under LGPL license. *
6  * See terms of license at gnu.org. *
7  * *
8  *****************************************/

9 package org.jboss.portal.core.deployment.jboss;
10
11 import org.jboss.portal.core.metadata.PageMetaData;
12 import org.jboss.portal.server.metadata.WindowMetaData;
13 import org.jboss.portal.server.deployment.jboss.Deployment;
14 import org.jboss.portal.server.ServerManager;
15 import org.jboss.portal.common.util.XML;
16 import org.jboss.portal.common.util.Tools;
17 import org.jboss.deployment.DeploymentException;
18 import org.w3c.dom.Document JavaDoc;
19 import org.w3c.dom.Element JavaDoc;
20
21 import javax.xml.parsers.DocumentBuilder JavaDoc;
22 import java.net.URL JavaDoc;
23 import java.io.InputStream JavaDoc;
24 import java.util.List JavaDoc;
25
26 /**
27  * @author <a HREF="mailto:julien@jboss.org">Julien Viet</a>
28  * @version $Revision: 1.3 $
29  */

30 public class PagesDeployment extends Deployment
31 {
32
33    private PageMetaData[] pageMDs;
34    private WindowMetaData[] windowMDs;
35
36    public PagesDeployment(ServerManager serverManager, URL JavaDoc url)
37    {
38       super(serverManager, url);
39    }
40
41    public void create() throws DeploymentException
42    {
43       InputStream JavaDoc in = null;
44       try
45       {
46          in = url.openStream();
47          DocumentBuilder JavaDoc builder = XML.getDocumentBuilderFactory().newDocumentBuilder();
48          Document JavaDoc doc = builder.parse(in);
49          Element JavaDoc pagesElt = doc.getDocumentElement();
50
51          Element JavaDoc portalNameElt = XML.getUniqueChild(pagesElt, "portal-name", true);
52          String JavaDoc portalName = XML.asString(portalNameElt);
53
54
55          List JavaDoc pageElts = XML.getChildren(pagesElt, "page");
56          pageMDs = new PageMetaData[pageElts.size()];
57
58          int nWindows = 0;
59          for (int i = 0;i < pageElts.size();i++)
60          {
61             Element JavaDoc pageElt = (Element JavaDoc)pageElts.get(i);
62             List JavaDoc windowElts = XML.getChildren(pageElt, "window");
63             nWindows += windowElts.size();
64          }
65          windowMDs = new WindowMetaData[nWindows];
66
67          int idx = 0;
68          for (int i = 0;i < pageElts.size();i++)
69          {
70             Element JavaDoc pageElt = (Element JavaDoc)pageElts.get(i);
71             PageMetaData pageMD = PortalDeployment.buildPageMetaData(pageElt, portalName);
72             pageMDs[i] = pageMD;
73
74             List JavaDoc windowElts = XML.getChildren(pageElt, "window");
75             for (int j = 0;j < windowElts.size();j++)
76             {
77                Element JavaDoc windowElt = (Element JavaDoc)windowElts.get(j);
78                WindowMetaData windowMD = PortalDeployment.buildWindowMetaData(portalName, windowElt);
79                windowMDs[idx++] = windowMD;
80             }
81          }
82       }
83       catch (Exception JavaDoc e)
84       {
85          throw new DeploymentException(e);
86       }
87       finally
88       {
89          Tools.safeClose(in);
90       }
91
92       try
93       {
94          for (int i = 0; i < pageMDs.length; i++)
95          {
96             PageMetaData pageMD = pageMDs[i];
97             getServerManager().deploy(pageMD);
98          }
99
100          for (int i = 0; i < windowMDs.length; i++)
101          {
102             WindowMetaData windowMD = windowMDs[i];
103             getServerManager().deploy(windowMD);
104          }
105       }
106       catch (Exception JavaDoc e)
107       {
108          throw new DeploymentException(e);
109       }
110    }
111
112    public void destroy() throws DeploymentException
113    {
114       for (int i = 0; i < windowMDs.length; i++)
115       {
116          WindowMetaData windowMD = windowMDs[i];
117          getServerManager().undeploy(windowMD.getID());
118       }
119       for (int i = 0; i < pageMDs.length; i++)
120       {
121          PageMetaData pageMD = pageMDs[i];
122          getServerManager().undeploy(pageMD.getID());
123       }
124       super.destroy();
125    }
126 }
127
Popular Tags