Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

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 }