Changeset 840
- Timestamp:
- 09/09/06 22:09:39 (2 years ago)
- Files:
-
- trunk/source/org/kolaka/freecast/manager/gui/BrowseHomepageAction.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/manager/gui/EmailHomepageAction.java (modified) (3 diffs)
- trunk/source/org/kolaka/freecast/manager/gui/Main.java (modified) (5 diffs)
- trunk/source/org/kolaka/freecast/manager/gui/MainFrame.java (modified) (4 diffs)
- trunk/source/org/kolaka/freecast/tracker/HttpMultiTrackerConnector.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/HttpTracker.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/HttpTrackerConfigurator.java (modified) (2 diffs)
- trunk/source/org/kolaka/freecast/tracker/Main.java (modified) (1 diff)
- trunk/source/org/kolaka/freecast/tracker/NoConfiguredTrackerException.java (added)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk/source/org/kolaka/freecast/manager/gui/BrowseHomepageAction.java
r405 r840 25 25 26 26 import java.awt.event.ActionEvent; 27 import java.net.InetSocketAddress;28 27 import java.net.URL; 29 28 … … 44 43 private static final long serialVersionUID = 1014721912985395264L; 45 44 46 private final InetSocketAddress publicHttpServer; 45 private final URL listenPage; 46 private final boolean localListenPage; 47 47 48 48 public BrowseHomepageAction(Resources resources, 49 InetSocketAddress publicHttpServer) throws ResourcesException {49 URL listenPage, boolean localListenPage) throws ResourcesException { 50 50 super("Browse network homepage"); 51 this.publicHttpServer = publicHttpServer; 51 this.listenPage = listenPage; 52 this.localListenPage = localListenPage; 52 53 loadIcons(resources, "visit.browse"); 53 54 } 54 55 55 56 public void actionPerformed(ActionEvent event) { 57 URL url = listenPage; 56 58 try { 57 URL url = new URL("http", "localhost", publicHttpServer.getPort(), 58 "/"); 59 if (localListenPage) { 60 url = new URL(listenPage.getPath(), "localhost", listenPage.getPort(), listenPage.getPath()); 61 } 62 59 63 LogFactory.getLog(getClass()).debug("browse " + url); 60 64 Desktop.browse(url); 61 65 } catch (Exception e) { 62 66 LogFactory.getLog(getClass()).error( 63 "can't start a browser to visit " + publicHttpServer, e);67 "can't start a browser to visit " + url, e); 64 68 } 65 69 } trunk/source/org/kolaka/freecast/manager/gui/EmailHomepageAction.java
r691 r840 26 26 import java.awt.event.ActionEvent; 27 27 import java.io.IOException; 28 import java.net.InetSocketAddress;29 import java.net.MalformedURLException;30 28 import java.net.URL; 31 29 … … 47 45 private static final long serialVersionUID = -6845487445187546115L; 48 46 49 private final InetSocketAddress publicHttpServer;47 private final URL listenPage; 50 48 51 49 public EmailHomepageAction(Resources resources, 52 InetSocketAddress publicHttpServer) throws ResourcesException {50 URL listenPage) throws ResourcesException { 53 51 super("Email network homepage"); 54 this. publicHttpServer = publicHttpServer;52 this.listenPage = listenPage; 55 53 loadIcons(resources, "visit.email"); 56 54 } … … 61 59 } catch (Exception e) { 62 60 LogFactory.getLog(getClass()).error( 63 "can't email to visit " + publicHttpServer, e);61 "can't email to visit " + listenPage, e); 64 62 } 65 63 } 66 64 67 65 private void sendMail() throws IOException, DesktopException { 68 URL url = new URL("http", publicHttpServer.getHostName(), publicHttpServer.getPort(), "/");66 URL url = listenPage; 69 67 LogFactory.getLog(getClass()).debug("email " + url); 70 68 trunk/source/org/kolaka/freecast/manager/gui/Main.java
r405 r840 26 26 import java.net.InetAddress; 27 27 import java.net.InetSocketAddress; 28 import java.net.URL; 28 29 29 30 import org.apache.commons.configuration.Configuration; 31 import org.apache.commons.configuration.DataConfiguration; 30 32 import org.apache.commons.logging.LogFactory; 31 33 import org.kolaka.freecast.NodeConfigurator; … … 42 44 import org.kolaka.freecast.tracker.HttpTracker; 43 45 import org.kolaka.freecast.tracker.HttpTrackerConfigurator; 46 import org.kolaka.freecast.tracker.NoConfiguredTrackerException; 44 47 45 48 /** … … 65 68 super.postInit(configuration); 66 69 67 HttpTracker tracker = new HttpTracker(); 68 new HttpTrackerConfigurator().configure(tracker, configuration 69 .subset("tracker")); 70 this.tracker = tracker; 70 try { 71 HttpTracker tracker = new HttpTracker(); 72 new HttpTrackerConfigurator().configure(tracker, configuration 73 .subset("tracker")); 74 this.tracker = tracker; 75 } catch (NoConfiguredTrackerException e) { 76 LogFactory.getLog(getClass()).info("no tracker configured"); 77 LogFactory.getLog(getClass()).debug("local track won't start"); 78 } 79 71 80 72 81 ConfigurableNode node = new DefaultNode(); … … 76 85 this.node = node; 77 86 78 String listenAddressPort = configuration 79 .getString("httpserver.listenaddress.port"); 80 InetSocketAddressSpecification listenAddressSpecification = new InetSocketAddressSpecificationParser() 81 .parse("0.0.0.0", listenAddressPort); 82 InetSocketAddress listenAddress = SpecificationServerSocketBinder 83 .select(listenAddressSpecification); 87 boolean localListenPage = tracker != null; 88 URL listenPage; 89 if (localListenPage) { 90 String listenAddressPort = configuration 91 .getString("httpserver.listenaddress.port"); 92 InetSocketAddressSpecification listenAddressSpecification = new InetSocketAddressSpecificationParser() 93 .parse("0.0.0.0", listenAddressPort); 94 InetSocketAddress listenAddress = SpecificationServerSocketBinder 95 .select(listenAddressSpecification); 96 97 this.httpServer = new HttpServer(listenAddress); 98 InetAddress publicAddress = PublicAddressResolver.getDefaultInstance() 99 .getPublicAddress(); 100 httpServer.setServerName(publicAddress); 84 101 85 this.httpServer = new HttpServer(listenAddress); 86 InetAddress publicAddress = PublicAddressResolver.getDefaultInstance() 87 .getPublicAddress(); 88 httpServer.setServerName(publicAddress); 102 InetSocketAddress publicHttpServer = new InetSocketAddress( 103 publicAddress, listenAddress.getPort()); 104 listenPage = new URL("http", publicHttpServer.getHostName(), publicHttpServer.getPort(), "/"); 105 } else { 106 LogFactory.getLog(getClass()).debug("no tracker configured, local http server won't start"); 107 LogFactory.getLog(getClass()).debug("configured listen page will be used"); 108 listenPage = new DataConfiguration(configuration).getURL("listenpage"); 109 110 if (listenPage == null) { 111 throw new IllegalArgumentException("No configured listen page"); 112 } 113 } 114 115 LogFactory.getLog(getClass()).info("listener welcome page: " + listenPage); 89 116 90 117 ConfigurableResources resources = new ConfigurableResources( 91 118 configuration.subset("gui")); 92 119 resources.setResourceLocator(getResourceLocator()); 93 94 InetSocketAddress publicHttpServer = new InetSocketAddress( 95 publicAddress, listenAddress.getPort()); 96 97 frame = new MainFrame(resources, tracker, node, publicHttpServer); 120 121 frame = new MainFrame(resources, tracker, node, listenPage); 98 122 frame.setQuitAction(createQuitAction(resources)); 99 123 frame.init(); … … 112 136 frame.setVisible(true); 113 137 114 httpServer.start(); 138 if (httpServer != null) { 139 httpServer.start(); 140 } 115 141 116 LogFactory.getLog(Main.class).info( 117 "start a HttpTracker on port " + tracker.getListenAddress()); 118 tracker.start(); 142 if (tracker != null) { 143 LogFactory.getLog(Main.class).info( 144 "start a HttpTracker on port " + tracker.getListenAddress()); 145 tracker.start(); 146 } 119 147 120 148 node.init(); trunk/source/org/kolaka/freecast/manager/gui/MainFrame.java
r830 r840 28 28 import java.awt.GridBagLayout; 29 29 import java.awt.Insets; 30 import java.net. InetSocketAddress;30 import java.net.URL; 31 31 import java.util.Arrays; 32 32 import java.util.List; … … 80 80 81 81 public MainFrame(Resources resources, TrackerService tracker, ConfigurableNode node, 82 InetSocketAddress publicHttpServer) throws ResourcesException {82 URL listenPage) throws ResourcesException { 83 83 super(resources); 84 84 … … 86 86 this.node = node; 87 87 88 visitAction = new AsyncAction(new BrowseHomepageAction(resources, publicHttpServer)); 88 boolean localListenPage = tracker != null; 89 visitAction = new AsyncAction(new BrowseHomepageAction(resources, listenPage, localListenPage)); 89 90 emailHomepageAction = new AsyncAction(new EmailHomepageAction(resources, 90 publicHttpServer));91 listenPage)); 91 92 setupAction = new SetupAction(((ConfigurableResources) resources).subset("setup"), this, node); 92 93 } … … 101 102 constraints.weightx = 1; 102 103 103 panel.add(new TrackerControlPanel(tracker), constraints); 104 if (tracker != null) { 105 panel.add(new TrackerControlPanel(tracker), constraints); 106 } 104 107 panel.add(new NodeControlPanel(node), constraints); 105 108 trunk/source/org/kolaka/freecast/tracker/HttpMultiTrackerConnector.java
r830 r840 36 36 private static final long serialVersionUID = 1568160755433034061L; 37 37 private final DefaultMultiTracker tracker; 38 38 39 39 public HttpMultiTrackerConnector() { 40 40 tracker = new DefaultMultiTracker(new HessianClientInfoProvider()); trunk/source/org/kolaka/freecast/tracker/HttpTracker.java
r830 r840 66 66 LogFactory.getLog(Main.class).trace( 67 67 "use connector " + connectorClass.getName()); 68 if (connectorClass.equals(HttpMultiTrackerConnector.class)) { 69 LogFactory.getLog(Main.class).info("multi network support enabled"); 70 } 68 71 69 72 server = new Server(); trunk/source/org/kolaka/freecast/tracker/HttpTrackerConfigurator.java
r830 r840 36 36 public class HttpTrackerConfigurator { 37 37 38 public void configure(HttpTracker tracker, Configuration configuration) {38 public void configure(HttpTracker tracker, Configuration configuration) throws NoConfiguredTrackerException { 39 39 /* 40 40 * for the moment, the tracker.class changes the Connector implementation … … 45 45 if (trackerClass.equals("multi")) { 46 46 connectorClass = HttpMultiTrackerConnector.class; 47 } else if (trackerClass.equals("none")) { 48 throw new NoConfiguredTrackerException(); 47 49 } 48 50 tracker.setConnectorClass(connectorClass); trunk/source/org/kolaka/freecast/tracker/Main.java
r830 r840 42 42 } 43 43 44 protected void postInit(Configuration configuration) {44 protected void postInit(Configuration configuration) throws Exception { 45 45 HttpTracker tracker = new HttpTracker(); 46 46 new HttpTrackerConfigurator().configure(tracker, configuration
