Source code: net/jxta/ext/config/Default.java
1 /*
2 * Copyright (c) 2001 Sun Microsystems, Inc. All rights
3 * reserved.
4 *
5 * Redistribution and use in source and binary forms, with or without
6 * modification, are permitted provided that the following conditions
7 * are met:
8 *
9 * 1. Redistributions of source code must retain the above copyright
10 * notice, this list of conditions and the following disclaimer.
11 *
12 * 2. Redistributions in binary form must reproduce the above copyright
13 * notice, this list of conditions and the following disclaimer in
14 * the documentation and/or other materials provided with the
15 * distribution.
16 *
17 * 3. The end-user documentation included with the redistribution,
18 * if any, must include the following acknowledgment:
19 * "This product includes software developed by the
20 * Sun Microsystems, Inc. for Project JXTA."
21 * Alternately, this acknowledgment may appear in the software itself,
22 * if and wherever such third-party acknowledgments normally appear.
23 *
24 * 4. The names "Sun", "Sun Microsystems, Inc.", "JXTA" and "Project JXTA"
25 * must not be used to endorse or promote products derived from this
26 * software without prior written permission. For written
27 * permission, please contact Project JXTA at http://www.jxta.org.
28 *
29 * 5. Products derived from this software may not be called "JXTA",
30 * nor may "JXTA" appear in their name, without prior written
31 * permission of Sun.
32 *
33 * THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESSED OR IMPLIED
34 * WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
35 * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
36 * DISCLAIMED. IN NO EVENT SHALL THE APACHE SOFTWARE FOUNDATION OR
37 * ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
38 * SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT
39 * LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF
40 * USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
41 * ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
42 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT
43 * OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
44 * SUCH DAMAGE.
45 * ====================================================================
46 *
47 * This software consists of voluntary contributions made by many
48 * individuals on behalf of Project JXTA. For more
49 * information on Project JXTA, please see
50 * <http://www.jxta.org/>.
51 *
52 * This license is based on the BSD license adopted by the Apache Foundation.
53 *
54 * $Id: Default.java,v 1.6 2004/10/30 02:22:11 gonzo Exp $
55 */
56 package net.jxta.ext.config;
57
58 import java.net.URI;
59 import java.net.URISyntaxException;
60 import java.util.ArrayList;
61 import java.util.List;
62
63 import org.apache.log4j.Level;
64 import org.apache.log4j.Logger;
65
66 /**
67 * Container for configuration defaults.
68 *
69 * @author james todd [gonzo at jxta dot org]
70 * @version $Id: Configurator.java,v 1.111 2003/11/14 21:38:43 gonzo Exp
71 * $
72 * @created November 13, 2003
73 */
74 class Default {
75
76 private final static int MILLISECONDS_PER_SECOND = 1000;
77
78 /**
79 * JXTA <b>home</b> directory.
80 */
81 public static URI HOME_ADDRESS;
82 /**
83 * Home: {@value}
84 */
85 public final static String HOME = "file://${user.home}/.jxta";
86 /**
87 * Peer descriptor: {@value}
88 */
89 public final static String PEER_DESCRIPTOR = "unspecified";
90 /**
91 * Peer name: {@value}
92 */
93 public final static String PEER_NAME = null;
94 /**
95 * Anonymous Peer Name: {@avlue}
96 */
97 public final static String ANONYMOUS = "Anonymous";
98 /**
99 * Peer security enabler: {@value}
100 */
101 public final static boolean SECURITY_IS_ENABLED = true;
102 /**
103 * Peer principal: {@value}
104 */
105 public final static String PRINCIPAL = null;
106 /**
107 * Peer password: {@value}
108 */
109 public final static String PASSWORD = null;
110 /**
111 * Configurator description: {@value}
112 */
113 public final static String PEER_DESCRIPTION = "Created by: " +
114 Configurator.class.getName();
115 /**
116 * Trace
117 */
118 public final static Trace TRACE = Trace.DEFAULT;
119 /**
120 * Peer root certificate:
121 *
122 * @{value}
123 */
124 public final static String ROOT_CERTIFICATE = null;
125 /**
126 * RendezVous bootstrap: {@value}
127 */
128 public static URI RENDEZVOUS_BOOTSTRAP_ADDRESS;
129 /**
130 * RendezVous discovery enabler: {@value}
131 */
132 public static boolean RENDEZVOUS_DISCOVERY_IS_ENABLED = true;
133 /**
134 * Relay bootstrap: {@value}
135 */
136 public static URI RELAYS_BOOTSTRAP_ADDRESS;
137 /**
138 * Relays discovery enabler: {@value}
139 */
140 public static boolean RELAYS_DISCOVERY_IS_ENABLED = true;
141 /**
142 * Reflection bootstrap: ${@value}
143 *
144 * @deprecated
145 */
146 public static URI REFLECTION_BOOTSTRAP_ADDRESS;
147 /**
148 * Bootstrap address indicator.
149 */
150 public static URI ANY_ADDRESS;
151 /**
152 * Bootstrap Tcp address indicator.
153 */
154 public static URI ANY_TCP_ADDRESS;
155 /**
156 * Bootstrap Http address indicator.
157 */
158 public static URI ANY_HTTP_ADDRESS;
159 /**
160 * Bootstrap Udp address indicator.
161 */
162 public static URI ANY_UDP_ADDRESS;
163 /**
164 * Bootstrap addresses.
165 */
166 public static List BOOTSTRAP_ADDRESSES;
167 /**
168 * RendezVous service enabler: {@value}
169 */
170 public final static boolean RENDEZVOUS_SERVICE_IS_ENABLED = false;
171 /**
172 * RendezVous AutoStart enabler: {@value}
173 */
174 public final static boolean RENDEZVOUS_SERVICE_AUTO_START_IS_ENABLED = false;
175 /**
176 * RendezVous AutoStart: {@value}
177 */
178 public final static long RENDEZVOUS_SERVICE_AUTO_START = 30 *
179 MILLISECONDS_PER_SECOND;
180 /**
181 * Relay service enabler: {@value}
182 */
183 public final static boolean RELAY_SERVICE_IS_ENABLED = false;
184 /**
185 * Relay service queue size: {$value}
186 */
187 public final static int RELAY_SERVICE_QUEUE_SIZE = 20;
188 /**
189 * Relay incoming enabler: {@value}
190 */
191 public final static boolean RELAY_SERVICE_INCOMING_IS_ENABLED = false;
192 /**
193 * Relay outgoing enabler: {@value}
194 */
195 public final static boolean RELAY_SERVICE_OUTGOING_IS_ENABLED = true;
196 /**
197 * Maximum incoming connections: {@value}
198 */
199 public final static int INCOMING_MAXIMUM = 100;
200 /**
201 * Maximum outgoing connections: {@value}
202 */
203 public final static int OUTGOING_MAXIMUM = 1;
204 /**
205 * Incoming lease: {@value} ms
206 */
207 public final static long INCOMING_LEASE = 2 * 60 * 60 *
208 MILLISECONDS_PER_SECOND;
209 /**
210 * Outgoing lease: {@value} ms
211 */
212 public final static long OUTGOING_LEASE = INCOMING_LEASE;
213 /**
214 * Queue size: {@value} messages
215 */
216 public final static int QUEUE_SIZE = 100;
217 /**
218 * Tcp enabler: {@value}
219 */
220 public final static boolean TCP_IS_ENABLED = true;
221 /**
222 * Tcp incoming enabler: {@value}
223 */
224 public final static boolean TCP_INCOMING_IS_ENABLED = true;
225 /**
226 * Tcp outgoing enabler: {@value}
227 */
228 public final static boolean TCP_OUTGOING_IS_ENABLED = true;
229 /**
230 * Tcp port: {@value}
231 */
232 public final static int TCP_PORT = 9701;
233 /**
234 * Tcp address.
235 */
236 public static URI TCP_ADDRESS;
237 /**
238 * Tcp use public address exclusive: {@value}
239 */
240 public final static boolean TCP_PUBLIC_ADDRESS_EXCLUSIVE_IS_ENABLED = false;
241 /**
242 * Tcp proxy enabler: {@value}
243 */
244 public final static boolean TCP_PROXY_IS_ENABLED = false;
245 /**
246 * Tcp proxy port: {@value}
247 */
248 public final static int TCP_PROXY_PORT = 8081;
249 /**
250 * Port range: {@value}
251 */
252 public final static int PORT_RANGE = 100;
253 /**
254 * Multicast enabler: {@value}
255 */
256 public final static boolean MULTICAST_IS_ENABLED = true;
257 /**
258 * Multicast address.
259 */
260 public static URI MULTICAST_ADDRESS;
261 /**
262 * Muliciast: {@value}
263 */
264 public final static String MULTICAST_IP = "224.0.1.85";
265 /**
266 * Multicast port: {@value}
267 */
268 public final static int MULTICAST_PORT = 1234;
269 /**
270 * Multicast size: {@value}
271 */
272 public final static int MULTICAST_SIZE = 16384;
273 /**
274 * Http enabler: {@value}
275 */
276 public final static boolean HTTP_IS_ENABLED = true;
277 /**
278 * Http incoming enabler: {@value}
279 */
280 public final static boolean HTTP_INCOMING_IS_ENABLED = false;
281 /**
282 * Http outgoing enabler: {@value}
283 */
284 public final static boolean HTTP_OUTGOING_IS_ENABLED = true;
285 /**
286 * Http port: {@value}
287 */
288 public final static int HTTP_PORT = 9700;
289 /**
290 * Tcp address.
291 */
292 public static URI HTTP_ADDRESS;
293 /**
294 * Http use public address exclusive: {@value}
295 */
296 public final static boolean HTTP_PUBLIC_ADDRESS_EXCLUSIVE_IS_ENABLED = false;
297 /**
298 * Http proxy enabler: {@value}
299 */
300 public final static boolean HTTP_PROXY_IS_ENABLED = false;
301 /**
302 * Endpoint queue size: {@value}
303 */
304 public final static int ENDPOINT_SERVICE_QUEUE_SIZE = 20;
305 /**
306 * JXTA Proxy enabler: {@value}
307 */
308 public final static boolean PROXY_SERVICE_IS_ENABLED = false;
309 /**
310 * Minimum port: {@value}
311 */
312 public final static int MINIMUM_PORT = 1;
313 /**
314 * Minimum dynamic port: {@value}
315 */
316 public final static int MINIMUM_DYNAMIC_PORT = 0;
317 /**
318 * Maximum port: {@value}
319 */
320 public final static int MAXIMUM_PORT = 65535;
321 /**
322 * Invalid port: {@value}
323 */
324 public final static int INVALID_PORT = -1;
325 /**
326 * Maximum Multicast size: {@value}
327 */
328 public final static int MAXIMUM_MULTICAST_SIZE = 1048575;
329 /**
330 * Minimm Multicast size: {@value}
331 */
332 public final static int MINIMUM_MULTICAST_SIZE = 0;
333 /**
334 * Configuration mode: {@value}
335 */
336 public final static String CONFIG_MODE = "auto";
337 public final static int HTTP_PROXY_PORT = 8080;
338
339 private final static String RDV_BOOTSTRAP =
340 "http://rdv.jxtahosts.net/cgi-bin/rendezvous.cgi?2";
341 private final static String RLY_BOOTSTRAP =
342 "http://rdv.jxtahosts.net/cgi-bin/relays.cgi?2";
343 private final static String REFLECTION_BOOTSTRAP =
344 "http://rdv.jxtahosts.net/cgi-bin/reflection.cgi";
345 private final static String COLON = ":";
346 private final static String MULTICAST = Protocol.UDP_URI +
347 Default.MULTICAST_IP + COLON +
348 Default.MULTICAST_PORT;
349
350 private final static Logger LOG = Logger.getLogger(Default.class.getName());
351
352 static {
353 try {
354 HOME_ADDRESS = Conversion.toURI(Util.expand(HOME));
355 } catch (ConversionException ce) {
356 if (LOG.isEnabledFor(Level.ERROR)) {
357 LOG.error("invalid encoding", ce);
358 }
359 }
360
361 RENDEZVOUS_BOOTSTRAP_ADDRESS = toURI(RDV_BOOTSTRAP);
362 RELAYS_BOOTSTRAP_ADDRESS = toURI(RLY_BOOTSTRAP);
363 REFLECTION_BOOTSTRAP_ADDRESS = toURI(REFLECTION_BOOTSTRAP);
364 ANY_ADDRESS = toURI(Protocol.SCHEMELESS_URI_DELIMITER + COLON);
365 ANY_TCP_ADDRESS = toURI(Protocol.TCP_URI + COLON);
366 ANY_HTTP_ADDRESS = toURI(Protocol.HTTP_URI + COLON);
367 ANY_UDP_ADDRESS = toURI(Protocol.UDP_URI + COLON);
368 TCP_ADDRESS = toURI(Protocol.TCP_URI +
369 Env.ALL_ADDRESSES.getHostAddress() + COLON +
370 TCP_PORT);
371 HTTP_ADDRESS = toURI(Protocol.HTTP_URI +
372 Env.ALL_ADDRESSES.getHostAddress() + COLON +
373 HTTP_PORT);
374 MULTICAST_ADDRESS = toURI(MULTICAST);
375
376 BOOTSTRAP_ADDRESSES = new ArrayList();
377
378 BOOTSTRAP_ADDRESSES.add(ANY_ADDRESS);
379 BOOTSTRAP_ADDRESSES.add(ANY_TCP_ADDRESS);
380 BOOTSTRAP_ADDRESSES.add(ANY_HTTP_ADDRESS);
381 }
382
383
384 private static URI toURI(String s) {
385 URI u = null;
386
387 try {
388 u = new URI(s);
389 } catch (URISyntaxException use) {
390 if (LOG.isEnabledFor(Level.ERROR)) {
391 LOG.error("invalid uri", use);
392 }
393 }
394
395 return u;
396 }
397
398 /**
399 * Constructor for the Default object.
400 */
401 private Default() { }
402 }