?? opencms.java
字號:
/*
* File : $Source: /usr/local/cvs/opencms/src/com/opencms/core/OpenCms.java,v $
* Date : $Date: 2002/05/10 20:21:19 $
* Version: $Revision: 1.84.2.1 $
*
* This library is part of OpenCms -
* the Open Source Content Mananagement System
*
* Copyright (C) 2001 The OpenCms Group
*
* This library is free software; you can redistribute it and/or
* modify it under the terms of the GNU Lesser General Public
* License as published by the Free Software Foundation; either
* version 2.1 of the License, or (at your option) any later version.
*
* This library is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* Lesser General Public License for more details.
*
* For further information about OpenCms, please see the
* OpenCms Website: http://www.opencms.org
*
* You should have received a copy of the GNU Lesser General Public
* License along with this library; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
package com.opencms.core;
import java.io.*;
import java.util.*;
import source.org.apache.java.io.*;
import source.org.apache.java.util.*;
import com.opencms.file.*;
import com.opencms.boot.*;
import com.opencms.util.*;
import com.opencms.launcher.*;
import com.opencms.template.cache.*;
// if you need one of these test if the OpenCms Shell still runs!
//import javax.servlet.*;
//import javax.servlet.http.*;
/**
* This class is the main class of the OpenCms system.
* <p>
* It is used to read a requested resource from the OpenCms System and forward it to
* a launcher, which is performs the output of the requested resource. <br>
*
* The OpenCms class is independent of access module to the OpenCms (e.g. Servlet,
* Command Shell), therefore this class is <b>not</b> responsible for user authentification.
* This is done by the access module to the OpenCms.
*
* @author Michael Emmerich
* @author Alexander Lucas
* @version $Revision: 1.84.2.1 $ $Date: 2002/05/10 20:21:19 $
*
* */
public class OpenCms extends A_OpenCms implements I_CmsConstants,I_CmsLogChannels {
/**
* Define the default file.encoding that should be used by OpenCms
*/
private static String C_PREFERED_FILE_ENCODING = "ISO8859_1";
/**
* Definition of the index page
*/
private static String C_INDEX = "index.html";
/**
* The default mimetype
*/
private static String C_DEFAULT_MIMETYPE = "text/html";
/**
* The resource-broker to access the database.
*/
private static I_CmsResourceBroker c_rb;
/**
* The cron scheduler to schedule the cronjobs
*/
private CmsCronScheduler m_scheduler;
/**
* The cron table to use with the scheduler
*/
private CmsCronTable m_table;
/**
* Reference to the OpenCms launcer manager
*/
private CmsLauncherManager m_launcherManager;
/**
* Hashtable with all available Mimetypes.
*/
private Hashtable m_mt = new Hashtable();
/**
* Indicates, if the session-failover should be enabled or not.
*/
private boolean m_sessionFailover = false;
/**
* Indicates, if the streaming should be enabled by the configurations
*/
private boolean m_streaming = true;
/**
* Indicates, if the element cache should be enabled by the configurations
*/
private boolean m_enableElementCache = true;
/**
* Reference to the CmsElementCache object containing locators for all
* URIs and elements in cache.
*/
private static CmsElementCache c_elementCache = null;
/**
* The object to store the properties from the opencms.property file for the
* static export.
*/
private static CmsStaticExportProperties c_exportProperties = new CmsStaticExportProperties();
/**
* In this hashtable the dependencies for all variants in the elementcache
* are stored. The keys are Strings with resourceNames like "/siteX/cos/ContentClass/news4"
* and the value is a Vector with strings (The elementvariants that depend on the keys)
* like "ElementClass|ElementTemplate|VariantCacheKey"
*/
private static Hashtable c_variantDeps = null;
/**
* Constructor, creates a new OpenCms object.
*
* It gets the configurations and inits a rb via the CmsRbManager.
*
* @param conf The configurations from the property-file.
*/
// OpenCms(Configurations conf) throws Exception {
public OpenCms(Configurations conf) throws Exception {
CmsObject cms = null;
// Save the configuration
setConfiguration(conf);
// invoke the ResourceBroker via the initalizer
try {
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCmsServlet] logging started");
String jdkinfo = System.getProperty("java.vm.name") + " ";
jdkinfo += System.getProperty("java.vm.version") + " ";
jdkinfo += System.getProperty("java.vm.info") + " ";
jdkinfo += System.getProperty("java.vm.vendor") + " ";
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCmsServlet] JDK Info: " + jdkinfo);
String osinfo = System.getProperty("os.name") + " ";
osinfo += System.getProperty("os.version") + " ";
osinfo += System.getProperty("os.arch") + " ";
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCmsServlet] OS Info: " + osinfo);
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCmsServlet] file.encoding: " + System.getProperty("file.encoding"));
}
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] creating first cms-object");
}
cms = new CmsObject();
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] initializing the main resource-broker");
}
m_sessionFailover = conf.getBoolean("sessionfailover.enabled", false);
// init the rb via the manager with the configuration
// and init the cms-object with the rb.
c_rb = CmsRbManager.init(conf);
printCopyrightInformation(cms);
// initalize the Hashtable with all available mimetypes
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] read mime types");
}
m_mt = c_rb.readMimeTypes(null, null);
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] found "
+ m_mt.size() + " mime-type entrys");
}
// Check, if the HTTP streaming should be enabled
m_streaming = conf.getBoolean("httpstreaming.enabled", true);
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] HTTP streaming " + (m_streaming?"en":"dis") + "abled. ");
}
// if the System property opencms.disableScheduler is set to true, don't start scheduling
if(!new Boolean(System.getProperty("opencms.disableScheduler")).booleanValue()) {
// now initialise the OpenCms scheduler to launch cronjobs
m_table = new CmsCronTable(c_rb.readCronTable(null, null));
m_scheduler = new CmsCronScheduler(this, m_table);
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCmsServlet] initializing CmsCronScheduler... DONE");
}
} else {
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCmsServlet] CmsCronScheduler is disabled!");
}
}
}
catch(Exception e) {
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] " + e.getMessage());
}
throw e;
}
// try to initialize the launchers.
try {
if(I_CmsLogChannels.C_PREPROCESSOR_IS_LOGGING && A_OpenCms.isLogging()) {
A_OpenCms.log(I_CmsLogChannels.C_OPENCMS_INIT, "[OpenCms] initialize launchers...");
}
m_launcherManager = new CmsLauncherManager(this);
}
catch(Exception e) {
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -