History

My first initial commit with all of mine experimental changes.

Dmitry Kabak (userdima committed 13 years ago

Commit d37b88d1 parent 3f5b46618352 files · +2598093 −-8690Browse files

Showing the changes to java/pkg/sun/net/httpserver/ServerConfig.java (1 of 18352 files). Show all

Unified · Split

java/pkg/sun/net/httpserver/ServerConfig.java+175−0
@@ -0,0 +1,175 @@
1+/*
2+ * Copyright (c) 2005, 2010, Oracle and/or its affiliates. All rights reserved.
3+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4+ *
5+ * This code is free software; you can redistribute it and/or modify it
6+ * under the terms of the GNU General Public License version 2 only, as
7+ * published by the Free Software Foundation. Oracle designates this
8+ * particular file as subject to the "Classpath" exception as provided
9+ * by Oracle in the LICENSE file that accompanied this code.
10+ *
11+ * This code is distributed in the hope that it will be useful, but WITHOUT
12+ * ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
13+ * FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
14+ * version 2 for more details (a copy is included in the LICENSE file that
15+ * accompanied this code).
16+ *
17+ * You should have received a copy of the GNU General Public License version
18+ * 2 along with this work; if not, write to the Free Software Foundation,
19+ * Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA.
20+ *
21+ * Please contact Oracle, 500 Oracle Parkway, Redwood Shores, CA 94065 USA
22+ * or visit www.oracle.com if you need additional information or have any
23+ * questions.
24+ */
25+
26+package sun.net.httpserver;
27+
28+import com.sun.net.httpserver.*;
29+import com.sun.net.httpserver.spi.*;
30+import java.util.logging.Logger;
31+import java.security.PrivilegedAction;
32+
33+/**
34+ * Parameters that users will not likely need to set
35+ * but are useful for debugging
36+ */
37+
38+class ServerConfig {
39+
40+ static int clockTick;
41+
42+ static final int DEFAULT_CLOCK_TICK = 10000 ; // 10 sec.
43+
44+ /* These values must be a reasonable multiple of clockTick */
45+ static final long DEFAULT_IDLE_INTERVAL = 30 ; // 5 min
46+ static final int DEFAULT_MAX_IDLE_CONNECTIONS = 200 ;
47+
48+ static final long DEFAULT_MAX_REQ_TIME = -1; // default: forever
49+ static final long DEFAULT_MAX_RSP_TIME = -1; // default: forever
50+ static final long DEFAULT_TIMER_MILLIS = 1000;
51+
52+ static final long DEFAULT_DRAIN_AMOUNT = 64 * 1024;
53+
54+ static long idleInterval;
55+ static long drainAmount; // max # of bytes to drain from an inputstream
56+ static int maxIdleConnections;
57+
58+ // max time a request or response is allowed to take
59+ static long maxReqTime;
60+ static long maxRspTime;
61+ static long timerMillis;
62+ static boolean debug = false;
63+
64+ static {
65+
66+ idleInterval = ((Long)java.security.AccessController.doPrivileged(
67+ new sun.security.action.GetLongAction(
68+ "sun.net.httpserver.idleInterval",
69+ DEFAULT_IDLE_INTERVAL))).longValue() * 1000;
70+
71+ clockTick = ((Integer)java.security.AccessController.doPrivileged(
72+ new sun.security.action.GetIntegerAction(
73+ "sun.net.httpserver.clockTick",
74+ DEFAULT_CLOCK_TICK))).intValue();
75+
76+ maxIdleConnections = ((Integer)java.security.AccessController.doPrivileged(
77+ new sun.security.action.GetIntegerAction(
78+ "sun.net.httpserver.maxIdleConnections",
79+ DEFAULT_MAX_IDLE_CONNECTIONS))).intValue();
80+
81+ drainAmount = ((Long)java.security.AccessController.doPrivileged(
82+ new sun.security.action.GetLongAction(
83+ "sun.net.httpserver.drainAmount",
84+ DEFAULT_DRAIN_AMOUNT))).longValue();
85+
86+ maxReqTime = ((Long)java.security.AccessController.doPrivileged(
87+ new sun.security.action.GetLongAction(
88+ "sun.net.httpserver.maxReqTime",
89+ DEFAULT_MAX_REQ_TIME))).longValue();
90+
91+ maxRspTime = ((Long)java.security.AccessController.doPrivileged(
92+ new sun.security.action.GetLongAction(
93+ "sun.net.httpserver.maxRspTime",
94+ DEFAULT_MAX_RSP_TIME))).longValue();
95+
96+ timerMillis = ((Long)java.security.AccessController.doPrivileged(
97+ new sun.security.action.GetLongAction(
98+ "sun.net.httpserver.timerMillis",
99+ DEFAULT_TIMER_MILLIS))).longValue();
100+
101+ debug = ((Boolean)java.security.AccessController.doPrivileged(
102+ new sun.security.action.GetBooleanAction(
103+ "sun.net.httpserver.debug"))).booleanValue();
104+ }
105+
106+
107+ static void checkLegacyProperties (final Logger logger) {
108+
109+ // legacy properties that are no longer used
110+ // print a warning to logger if they are set.
111+
112+ java.security.AccessController.doPrivileged(
113+ new PrivilegedAction<Void>() {
114+ public Void run () {
115+ if (System.getProperty("sun.net.httpserver.readTimeout")
116+ !=null)
117+ {
118+ logger.warning ("sun.net.httpserver.readTimeout "+
119+ "property is no longer used. "+
120+ "Use sun.net.httpserver.maxReqTime instead."
121+ );
122+ }
123+ if (System.getProperty("sun.net.httpserver.writeTimeout")
124+ !=null)
125+ {
126+ logger.warning ("sun.net.httpserver.writeTimeout "+
127+ "property is no longer used. Use "+
128+ "sun.net.httpserver.maxRspTime instead."
129+ );
130+ }
131+ if (System.getProperty("sun.net.httpserver.selCacheTimeout")
132+ !=null)
133+ {
134+ logger.warning ("sun.net.httpserver.selCacheTimeout "+
135+ "property is no longer used."
136+ );
137+ }
138+ return null;
139+ }
140+ }
141+ );
142+ }
143+
144+ static boolean debugEnabled () {
145+ return debug;
146+ }
147+
148+ static long getIdleInterval () {
149+ return idleInterval;
150+ }
151+
152+ static int getClockTick () {
153+ return clockTick;
154+ }
155+
156+ static int getMaxIdleConnections () {
157+ return maxIdleConnections;
158+ }
159+
160+ static long getDrainAmount () {
161+ return drainAmount;
162+ }
163+
164+ static long getMaxReqTime () {
165+ return maxReqTime;
166+ }
167+
168+ static long getMaxRspTime () {
169+ return maxRspTime;
170+ }
171+
172+ static long getTimerMillis () {
173+ return timerMillis;
174+ }
175+}