| 1 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 APOLLO_CODEBASE = "apollo.codebase"; 36 public final static String APOLLO_OFFLINE = "apollo.offline"; 37 38 public final static String 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 String codebase = System.getProperty( APOLLO_CODEBASE ); 78 if( codebase == null ) 79 codebase = props.getProperty( APOLLO_CODEBASE ); 80 81 String 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 ex ) 97 {} 98 } 99 100 String 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 |