protected void initCustomJspBag(String contextId, String contextName, CustomJspBag customJspBag) throws Exception { String customJspDir = customJspBag.getCustomJspDir(); boolean customJspGlobal = customJspBag.isCustomJspGlobal(); List<String> customJsps = customJspBag.getCustomJsps(); String portalWebDir = PortalUtil.getPortalWebDir(); for (String customJsp : customJsps) { String portalJsp = getPortalJsp(customJsp, customJspDir); if (customJspGlobal) { File portalJspFile = new File(portalWebDir + portalJsp); File portalJspBackupFile = getPortalJspBackupFile(portalJspFile); if (portalJspFile.exists() && !portalJspBackupFile.exists()) { FileUtil.copyFile(portalJspFile, portalJspBackupFile); } } else { portalJsp = CustomJspRegistryUtil.getCustomJspFileName(contextId, portalJsp); } FileUtil.write( portalWebDir + portalJsp, getCustomJspInputStream(customJspBag.getURLContainer(), customJsp)); } if (!customJspGlobal) { CustomJspRegistryUtil.registerServletContextName(contextId, contextName); } }
@Override public void removedService( ServiceReference<CustomJspBag> serviceReference, CustomJspBag customJspBag) { Registry registry = RegistryUtil.getRegistry(); registry.ungetService(serviceReference); String contextId = GetterUtil.getString(serviceReference.getProperty("context.id")); for (String customJsp : customJspBag.getCustomJsps()) { String customJspDir = customJspBag.getCustomJspDir(); int pos = customJsp.indexOf(customJspDir); String portalJsp = customJsp.substring(pos + customJspDir.length()); if (customJspBag.isCustomJspGlobal()) { File portalJspFile = new File(PortalUtil.getPortalWebDir() + portalJsp); File portalJspBackupFile = getPortalJspBackupFile(portalJspFile); if (portalJspBackupFile.exists()) { try { FileUtil.copyFile(portalJspBackupFile, portalJspFile); } catch (IOException e) { return; } portalJspBackupFile.delete(); } else if (portalJspFile.exists()) { portalJspFile.delete(); } } else { portalJsp = CustomJspRegistryUtil.getCustomJspFileName(contextId, portalJsp); File portalJspFile = new File(PortalUtil.getPortalWebDir() + portalJsp); if (portalJspFile.exists()) { portalJspFile.delete(); } } } if (!customJspBag.isCustomJspGlobal()) { CustomJspRegistryUtil.unregisterServletContextName(contextId); } _customJspBagsMap.remove(serviceReference); }