summaryrefslogtreecommitdiffstats
path: root/src/main/java/com/gitblit/manager/IRuntimeManager.java
blob: b2d7a2b3137f34c91f2698b314766ea9874663d5 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
/*
 * 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;

public interface IRuntimeManager extends IManager {

	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 actively serving git repositories
	 * or if it is merely a repository viewer.
	 *
	 * @return true if Gitblit is serving repositories
 	 * @since 1.4.0
	 */
	boolean isServingRepositories();

	/**
	 * Determine if this Gitblit instance is actively serving git repositories
	 * over HTTP.
	 *
	 * @return true if Gitblit is serving repositories over HTTP
 	 * @since 1.6.0
	 */
	boolean isServingHTTP();

	/**
	 * Determine if this Gitblit instance is actively serving git repositories
	 * over the GIT Daemon protocol.
	 *
	 * @return true if Gitblit is serving repositories over the GIT Daemon protocol
 	 * @since 1.6.0
	 */
	boolean isServingGIT();

	/**
	 * Determine if this Gitblit instance is actively serving git repositories
	 * over the SSH protocol.
	 *
	 * @return true if Gitblit is serving repositories over the SSH protocol
 	 * @since 1.6.0
	 */
	boolean isServingSSH();

	/**
	 * 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<String, String> updatedSettings);
}