KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > apollo > dev > DevBasicService


1 /*
2 ** Apollo - Test Skeleton Toolkit for Web Start/JNLP
3 ** Copyright (c) 2001, 2002, 2003 by Gerald Bauer
4 **
5 ** This program is free software.
6 **
7 ** You may redistribute it and/or modify it under the terms of the GNU
8 ** General Public License as published by the Free Software Foundation.
9 ** Version 2 of the license should be included with this distribution in
10 ** the file LICENSE, as well as License.html. If the license is not
11 ** included with this distribution, you may find a copy at the FSF web
12 ** site at 'www.gnu.org' or 'www.fsf.org', or you may write to the
13 ** Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139 USA.
14 **
15 ** THIS SOFTWARE IS PROVIDED AS-IS WITHOUT WARRANTY OF ANY KIND,
16 ** NOT EVEN THE IMPLIED WARRANTY OF MERCHANTABILITY. THE AUTHOR
17 ** OF THIS SOFTWARE, ASSUMES _NO_ RESPONSIBILITY FOR ANY
18 ** CONSEQUENCE RESULTING FROM THE USE, MODIFICATION, OR
19 ** REDISTRIBUTION OF THIS SOFTWARE.
20 **
21 */

22
23 package apollo.dev;
24
25 import java.io.*;
26 import java.net.*;
27 import java.util.*;
28 import apollo.*;
29 import apollo.dev.browser.*;
30 import apollo.spi.*;
31 import houston.*;
32
33 public class DevBasicService implements BasicService
34 {
35    public final static String JavaDoc APOLLO_CODEBASE = "apollo.codebase";
36    public final static String JavaDoc APOLLO_OFFLINE = "apollo.offline";
37
38    public final static String JavaDoc APOLLO_PROPERTIES = "apollo.properties";
39    BrowserService _bs;
40
41    URL _codebase;
42    boolean _offline;
43
44    public DevBasicService()
45    {
46       _bs = new SpencerBrowserService();
47
48       Properties fallbackProps = new Properties();
49       try
50       {
51          URL userDirUrl = new File( System.getProperty( "user.dir" ) ).toURL();
52          fallbackProps.setProperty( APOLLO_CODEBASE, userDirUrl.toString() );
53       }
54       catch( MalformedURLException mex )
55       {
56          Status.error( "*** couldn't create URL from sysprop user.dir: " + mex.toString() );
57          fallbackProps.setProperty( APOLLO_CODEBASE, "http://fallback.com" );
58       }
59
60       fallbackProps.setProperty( APOLLO_OFFLINE, "false" );
61
62       Properties props = new Properties( fallbackProps );
63
64       InputStream in
65              = DevBasicService.class.getClassLoader().getResourceAsStream( APOLLO_PROPERTIES );
66       try
67       {
68          if( in != null )
69             props.load( in );
70       }
71       catch( IOException ioex )
72       {
73          Status.error( "*** failed to load " + APOLLO_PROPERTIES + ": " + ioex.toString() );
74       }
75
76       // system props take precedence
77
String JavaDoc codebase = System.getProperty( APOLLO_CODEBASE );
78       if( codebase == null )
79          codebase = props.getProperty( APOLLO_CODEBASE );
80
81       String JavaDoc offline = System.getProperty( APOLLO_OFFLINE );
82       if( offline == null )
83          offline = props.getProperty( APOLLO_OFFLINE );
84
85       try
86       {
87          _codebase = new URL( codebase );
88       }
89       catch( MalformedURLException mex )
90       {
91          Status.error( "*** couldn't create URL from prop " + APOLLO_CODEBASE + ": " + mex.toString() );
92          try
93          {
94             _codebase = new URL( "http://fallback.com" );
95          }
96          catch( Exception JavaDoc ex )
97          {}
98       }
99
100       String JavaDoc offlineLower = offline.toLowerCase().trim();
101       if( offlineLower.equals( "true" )
102              || offlineLower.equals( "on" )
103              || offlineLower.equals( "yes" ) )
104          _offline = true;
105       else
106          _offline = false;
107    }
108
109    public URL getCodeBase()
110    {
111       return _codebase;
112    }
113
114    public boolean isOffline()
115    {
116       return _offline;
117    }
118
119    public boolean showDocument( URL url )
120    {
121       _bs.showDocument( url );
122       return true;
123    }
124 }
125
126
Popular Tags