package com.neusoft.report.engine; import com.neusoft.report.common.Logger; import com.neusoft.report.common.ReportMessage; import com.neusoft.report.common.entity.defaultt.DefaultPropertyLoader; import com.neusoft.report.engine.core.MultiReportEngine; import com.neusoft.report.engine.core.ReportCacheMgr; import com.neusoft.report.engine.export.param.TempUploadManager; import com.neusoft.report.engine.rao.tempmemo.TempMemoManager; import com.neusoft.report.engine.security.licence.UtilProtection; import com.neusoft.report.engine.util.PerformanceDebug; import com.neusoft.report.engine.util.ReportManifestInfo; import com.neusoft.unieap.rbc.license.LicenseManager; import java.io.File; import java.net.MalformedURLException; import java.net.URL; import java.util.HashSet; import java.util.Iterator; import java.util.Map; import java.util.Set; import javax.servlet.ServletContext; public class ReportManager { public static final String PROJECT_PATH = "projectPath"; public static final String PROJECT_BASE_URL = "baseURL"; public static final String SERVLET_CONTEXT = "context"; public static final String CONFIG_PATH = "configPath"; public static final String CONFIG_BASE_URL = "configBaseURL"; public static final String LICENSE_PATH = "licensePath"; public static final String LICENSE_FILE_NAME = "licenseFileName"; private static final String DEFAULT_LICENSE_NAME = "unieap.license"; private static String projectPath; private static URL baseURL; private static URL configURL; private static ServletContext context; private static String configRoot; private static String webPath; private static String licensePath; private static String licenseFileName; public ReportManager() { } public static ReportEngine create() { if (PerformanceDebug.isDebugEnabled()) { PerformanceDebug.debug("Performance-Requist", true, 0L); } return new MultiReportEngine(); } public static void initiate(Map var0) throws MalformedURLException { projectPath = (String)var0.get("projectPath"); context = (ServletContext)var0.get("context"); baseURL = (URL)var0.get("baseURL"); configRoot = (String)var0.get("configPath"); configURL = configRoot != null && configRoot.startsWith(File.separator) ? (new File(configRoot)).toURL() : (URL)var0.get("configBaseURL"); licensePath = var0.containsKey("licensePath") ? (String)var0.get("licensePath") : (projectPath != null && !projectPath.equals("/") ? projectPath + "WEB-INF" + File.separator + "conf" + File.separator + "unieap" + File.separator + "license" + File.separator : (new URL(baseURL, "WEB-INF/conf/unieap/license/")).getFile()); licenseFileName = var0.containsKey("licenseFileName") ? (String)var0.get("licenseFileName") : "unieap.license"; Logger.getLogger(ReportManager.class).info(ReportMessage.createMessage("using_report_config_path", new String[]{configURL.toExternalForm()})); startLicenceCheck(licensePath); printProductInfo(); startCleanTask(); startCleanTemp(); initCache(); DefaultPropertyLoader.load(); } public static String getProjectPath() { return projectPath; } public static URL getProjectBaseURL() { return baseURL; } public static URL getResourceURL(String var0) throws MalformedURLException { return context.getResource(var0); } public static Set getResourcePaths(String var0) { HashSet var1; if (context != null) { var1 = new HashSet(); Set var8 = context.getResourcePaths(var0); if (var8 != null) { try { Iterator var9 = var8.iterator(); while(var9.hasNext()) { String var10 = (String)var9.next(); var1.add(context.getResource(var10)); } } catch (MalformedURLException var6) { var6.printStackTrace(); } } return var1; } else { var1 = new HashSet(); File var2 = null; if (baseURL.getProtocol().equalsIgnoreCase("file")) { try { var2 = new File((new URL(baseURL, var0.substring(1))).getFile()); } catch (MalformedURLException var5) { var5.printStackTrace(); return var1; } } else { var2 = new File(projectPath + File.separator + var0.substring(1)); } if (var2.isDirectory()) { String[] var3 = var2.list(); try { for(int var4 = 0; var4 < var3.length; ++var4) { var1.add(new URL(var2.toURL(), var3[var4])); } } catch (MalformedURLException var7) { var7.printStackTrace(); } } return var1; } } public static Set getConfigPaths(String var0) { if (configRoot != null && configRoot.startsWith(File.separator)) { HashSet var1 = new HashSet(); File var2 = new File(configRoot + File.separator + var0.replace('/', File.separatorChar)); if (var2.isDirectory()) { String var3 = var2.getAbsolutePath(); String[] var4 = var2.list(); try { for(int var5 = 0; var5 < var4.length; ++var5) { var1.add((new File(var3 + File.separator + var4[var5])).toURL()); } } catch (MalformedURLException var6) { var6.printStackTrace(); return var1; } } return var1; } else { return getResourcePaths("/" + getConfigRoot() + var0); } } private static String getConfigRoot() { return configRoot == null ? "WEB-INF/conf/unieap/report/" : configRoot; } public static URL getConfigURL() { return configURL; } public static String getConfigPath() { return configRoot == null ? projectPath + "WEB-INF" + File.separator + "conf" + File.separator + "unieap" + File.separator + "report" + File.separator : (configRoot.startsWith(File.separator) ? configRoot : projectPath + configRoot); } public static String getWebPath() { return webPath; } public static String getLicencePath() { return licensePath; } public static String getLicenceFileName() { return licenseFileName; } public static void setWebPath(String var0) { webPath = var0; } private static void printProductInfo() { ReportManifestInfo.paintMainfestInfo(); if (LicenseManager.getInstance().getLicense() != null) { ReportManifestInfo.printLicenseInfo(); } } private static void startLicenceCheck(String var0) { LicenseManager.getInstance().setLicensePath(var0); LicenseManager.getInstance().startLicenseListener(UtilProtection.getProtection(), (long)UtilProtection.CHECK_INTERVAL); } private static void startCleanTask() { TempMemoManager.getInstance().startCleanTask(); } private static void startCleanTemp() { TempUploadManager.getInstance().cleanUploadTempFiles(); } private static void initCache() { ReportCacheMgr.getCachePath(); } }