1 22 23 package org.meshcms.core; 24 25 import java.io.*; 26 import java.util.*; 27 import javax.servlet.*; 28 import org.meshcms.util.*; 29 30 public class MainWebSite extends WebSite { 31 private SortedMap virtualSitesMap; 32 private MultiSiteManager multiSiteManager; 33 34 37 protected static WebSite create(ServletContext sc, 38 String [] welcomeFiles, File rootFile, Path rootPath, Path cmsPath) { 39 MainWebSite mainWebSite = new MainWebSite(); 40 mainWebSite.init(sc, welcomeFiles, rootFile, rootPath, cmsPath); 41 return mainWebSite; 42 } 43 44 48 protected void init(ServletContext sc, String [] welcomeFiles, File rootFile, 49 Path rootPath, Path cmsPath) { 50 super.init(sc, welcomeFiles, rootFile, rootPath, cmsPath); 51 52 if (virtualSitesMap == null) { 53 virtualSitesMap = new TreeMap(); 54 } 55 56 if (multiSiteManager == null) { 57 multiSiteManager = MultiSiteManager.load(this); 58 } 59 60 multiSiteManager.initDomainsMap(); 61 } 62 63 68 public WebSite getWebSite(ServletRequest request) { 69 return multiSiteManager.getWebSite(request.getServerName()); 70 } 71 72 public String getTypeDescription() { 73 return "main web site"; 74 } 75 76 81 public VirtualWebSite getVirtualSite(String dirName) { 82 VirtualWebSite vws = (VirtualWebSite) virtualSitesMap.get(dirName); 83 84 if (vws == null) { 85 Path sitePath = virtualSitesPath.add(dirName); 86 File rootFile = getFile(sitePath); 87 Path cmsPath = new CMSDirectoryFinder(rootFile, true).getCMSPath(); 88 vws = VirtualWebSite.create(this, sitePath, cmsPath); 89 virtualSitesMap.put(dirName, vws); 90 } 91 92 return vws; 93 } 94 95 98 public MultiSiteManager getMultiSiteManager() { 99 return multiSiteManager; 100 } 101 102 public void updateSiteMap(boolean force) { 103 super.updateSiteMap(force); 104 105 if (multiSiteManager != null) { 106 multiSiteManager.initDomainsMap(); 107 } 108 } 109 110 135 } 136 | Popular Tags |