server

Clone or download

Better start at boot

Modified Files

--- 'a/src/main/java/com/stream_pi/server/connection/MainServer.java'
+++ b/src/main/java/com/stream_pi/server/connection/MainServer.java
@@ -12,13 +12,13 @@ import java.util.Enumeration;
import java.util.concurrent.atomic.AtomicBoolean;
import java.util.logging.Logger;
-public class MainServer extends Thread {
+public class MainServer extends Thread
+{
private ServerListener serverListener;
private Logger logger = Logger.getLogger(MainServer.class.getName());
private int port;
private ServerSocket serverSocket = null;
- //private Server server;
private AtomicBoolean stop = new AtomicBoolean(false);
@@ -42,23 +42,20 @@ public class MainServer extends Thread {
public void stopListeningForConnections()
{
-
- /*if(server !=null)
- {
- if(!server.isShutdown())
- server.shutdown();
- }*/
-
try
{
logger.info("Stopping listening for connections ...");
if(serverSocket!=null)
+ {
if(!serverSocket.isClosed())
{
stop.set(true);
serverSocket.close();
}
- } catch (IOException e) {
+ }
+ }
+ catch (IOException e)
+ {
e.printStackTrace();
}
finally {
@@ -67,13 +64,15 @@ public class MainServer extends Thread {
}
@Override
- public void run() {
+ public void run()
+ {
logger.warning("Starting main server on port "+port+" ...");
- try {
+ try
+ {
logger.info("Starting server on port "+port+" ...");
serverSocket = new ServerSocket(port);
- setupStageTitle(true);
+ setupStageTitle();
while(!stop.get())
{
Socket s = serverSocket.accept();
@@ -81,7 +80,6 @@ public class MainServer extends Thread {
logger.info("New client connected ("+s.getRemoteSocketAddress()+") !");
}
-
}
catch (SocketException e)
{
@@ -89,7 +87,7 @@ public class MainServer extends Thread {
{
logger.info("Main Server stopped accepting calls ...");
- setupStageTitle(false);
+ serverListener.onServerStartFailure();
exceptionAndAlertHandler.handleMinorException(new MinorException("Sorry!","Server could not be started at "+port+".\n" +
"This could be due to another process or another instance of Stream-Pi Server using the same port. \n\n" +
@@ -105,38 +103,31 @@ public class MainServer extends Thread {
}
}
- private void setupStageTitle(boolean isSuccess)
+ private void setupStageTitle()
{
try
{
- if(isSuccess)
- {
- StringBuilder ips = new StringBuilder();
+ StringBuilder ips = new StringBuilder();
- Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
- while(e.hasMoreElements())
+ Enumeration<NetworkInterface> e = NetworkInterface.getNetworkInterfaces();
+ while(e.hasMoreElements())
+ {
+ NetworkInterface n = e.nextElement();
+ Enumeration<InetAddress> ee = n.getInetAddresses();
+ while (ee.hasMoreElements())
{
- NetworkInterface n = e.nextElement();
- Enumeration<InetAddress> ee = n.getInetAddresses();
- while (ee.hasMoreElements())
+ InetAddress i = ee.nextElement();
+ String hostAddress = i.getHostAddress();
+ if(i instanceof Inet4Address)
{
- InetAddress i = ee.nextElement();
- String hostAddress = i.getHostAddress();
- if(i instanceof Inet4Address)
- {
- ips.append(hostAddress);
- if(e.hasMoreElements())
- ips.append(" / ");
- }
+ ips.append(hostAddress);
+ if(e.hasMoreElements())
+ ips.append(" / ");
}
}
-
- Platform.runLater(()-> serverListener.getStage().setTitle("Stream-Pi Server - IP(s): "+ips+" | Port: "+ port));
- }
- else
- {
- Platform.runLater(()-> serverListener.getStage().setTitle("Stream-Pi Server - Offline"));
}
+
+ Platform.runLater(()-> serverListener.getStage().setTitle("Stream-Pi Server - IP(s): "+ips+" | Port: "+ port));
}
catch (Exception e)
{
--- 'a/src/main/java/com/stream_pi/server/controller/Controller.java'
+++ b/src/main/java/com/stream_pi/server/controller/Controller.java
@@ -140,6 +140,14 @@ public class Controller extends Base imp
}
@Override
+ public void onServerStartFailure()
+ {
+ Platform.runLater(()-> getStage().setTitle("Stream-Pi Server - Offline"));
+
+ disableTrayIcon = true;
+ }
+
+ @Override
public void othInit()
{
try
@@ -246,12 +254,13 @@ public class Controller extends Base imp
closeSettingsAnimation = createCloseSettingsAnimation(settingsNode, dashboardNode);
}
+ private boolean disableTrayIcon = false;
public void onCloseRequest(WindowEvent event)
{
try
{
if(Config.getInstance().getMinimiseToSystemTrayOnClose() &&
- SystemTray.isSupported())
+ SystemTray.isSupported() && !disableTrayIcon)
{
minimiseApp();
event.consume();
--- 'a/src/main/java/com/stream_pi/server/controller/ServerListener.java'
+++ b/src/main/java/com/stream_pi/server/controller/ServerListener.java
@@ -33,4 +33,5 @@ public interface ServerListener
void factoryReset();
void initSoundOnActionClicked();
+ void onServerStartFailure();
}
--- 'a/src/main/java/com/stream_pi/server/window/settings/GeneralSettings.java'
+++ b/src/main/java/com/stream_pi/server/window/settings/GeneralSettings.java
@@ -312,25 +312,25 @@ public class GeneralSettings extends VBo
if(config.getStartOnBoot() != startOnBoot)
{
- if(StartupFlags.RUNNER_FILE_NAME == null)
+ StartAtBoot startAtBoot = new StartAtBoot(PlatformType.SERVER, ServerInfo.getInstance().getPlatform());
+ if(startOnBoot)
{
- new StreamPiAlert("Uh Oh", "No Runner File Name Specified as startup arguments. Cant set run at boot.", StreamPiAlertType.ERROR).show();
- startOnBoot = false;
- }
- else
- {
- StartAtBoot startAtBoot = new StartAtBoot(PlatformType.SERVER, ServerInfo.getInstance().getPlatform());
- if(startOnBoot)
+ try
{
- startAtBoot.create(new File(StartupFlags.RUNNER_FILE_NAME));
+ startAtBoot.create(StartupFlags.RUNNER_FILE_NAME);
}
- else
+ catch (MinorException e)
{
- boolean result = startAtBoot.delete();
- if(!result)
- new StreamPiAlert("Uh Oh!", "Unable to delete starter file", StreamPiAlertType.ERROR).show();
+ exceptionAndAlertHandler.handleMinorException(e);
+ startOnBoot = false;
}
}
+ else
+ {
+ boolean result = startAtBoot.delete();
+ if(!result)
+ new StreamPiAlert("Uh Oh!", "Unable to delete starter file", StreamPiAlertType.ERROR).show();
+ }
}
if(minimizeToSystemTrayOnClose)