1 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 ; 19 import org.w3c.dom.Element ; 20 21 import javax.xml.parsers.DocumentBuilder ; 22 import java.net.URL ; 23 import java.io.InputStream ; 24 import java.util.List ; 25 26 30 public class PagesDeployment extends Deployment 31 { 32 33 private PageMetaData[] pageMDs; 34 private WindowMetaData[] windowMDs; 35 36 public PagesDeployment(ServerManager serverManager, URL url) 37 { 38 super(serverManager, url); 39 } 40 41 public void create() throws DeploymentException 42 { 43 InputStream in = null; 44 try 45 { 46 in = url.openStream(); 47 DocumentBuilder builder = XML.getDocumentBuilderFactory().newDocumentBuilder(); 48 Document doc = builder.parse(in); 49 Element pagesElt = doc.getDocumentElement(); 50 51 Element portalNameElt = XML.getUniqueChild(pagesElt, "portal-name", true); 52 String portalName = XML.asString(portalNameElt); 53 54 55 List 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 pageElt = (Element )pageElts.get(i); 62 List 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 pageElt = (Element )pageElts.get(i); 71 PageMetaData pageMD = PortalDeployment.buildPageMetaData(pageElt, portalName); 72 pageMDs[i] = pageMD; 73 74 List windowElts = XML.getChildren(pageElt, "window"); 75 for (int j = 0;j < windowElts.size();j++) 76 { 77 Element windowElt = (Element )windowElts.get(j); 78 WindowMetaData windowMD = PortalDeployment.buildWindowMetaData(portalName, windowElt); 79 windowMDs[idx++] = windowMD; 80 } 81 } 82 } 83 catch (Exception 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 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 |