/* * Copyright 2013 gitblit.com. * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. * You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, software * distributed under the License is distributed on an "AS IS" BASIS, * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. * See the License for the specific language governing permissions and * limitations under the License. */ package com.gitblit.manager; import java.io.File; import java.util.Date; import java.util.Locale; import java.util.Map; import java.util.TimeZone; import com.gitblit.IStoredSettings; import com.gitblit.models.ServerSettings; import com.gitblit.models.ServerStatus; import com.gitblit.utils.XssFilter; import com.google.inject.Injector; public interface IRuntimeManager extends IManager { Injector getInjector(); void setBaseFolder(File folder); File getBaseFolder(); /** * Returns the preferred timezone for the Gitblit instance. * * @return a timezone * @since 1.4.0 */ TimeZone getTimezone(); /** * Returns the fixed locale for clients, or null if clients may choose their locale * * @return a fixed locale or null if clients are allowed to specify locale preference * @since 1.5.1 */ Locale getLocale(); /** * Determine if this Gitblit instance is running in debug mode * * @return true if Gitblit is running in debug mode * @since 1.4.0 */ boolean isDebugMode(); /** * Returns the boot date of the Gitblit server. * * @return the boot date of Gitblit * @since 1.4.0 */ Date getBootDate(); /** * Returns the server status. * * @return the server status * @since 1.4.0 */ ServerStatus getStatus(); /** * Returns the descriptions/comments of the Gitblit config settings. * * @return SettingsModel * @since 1.4.0 */ ServerSettings getSettingsModel(); /** * Returns the file object for the specified configuration key. * * @return the file * @since 1.4.0 */ File getFileOrFolder(String key, String defaultFileOrFolder); /** * Returns the file object which may have it's base-path determined by * environment variables for running on a cloud hosting service. All Gitblit * file or folder retrievals are (at least initially) funneled through this * method so it is the correct point to globally override/alter filesystem * access based on environment or some other indicator. * * @return the file * @since 1.4.0 */ File getFileOrFolder(String fileOrFolder); /** * Returns the runtime settings. * * @return settings * @since 1.4.0 */ IStoredSettings getSettings(); /** * Updates the runtime settings. * * @param settings * @return true if the update succeeded * @since 1.4.0 */ boolean updateSettings(Map updatedSettings); /** * Returns the HTML sanitizer used to clean user content. * * @return the HTML sanitizer */ XssFilter getXssFilter(); }