package net.sourceforge.subsonic.booter; import java.util.Arrays; import java.util.List; import javax.swing.JOptionPane; import org.springframework.context.support.ClassPathXmlApplicationContext; import net.sourceforge.subsonic.booter.agent.SettingsPanel; import net.sourceforge.subsonic.booter.agent.SubsonicAgent; /** * Application entry point for Subsonic booter. *

* Use command line argument "-agent" to start the Windows service monitoring agent, * or "-mac" to start the Mac version of the deployer. * * @author Sindre Mehus */ public class Main { public Main(String contextName, List args) { ClassPathXmlApplicationContext context = new ClassPathXmlApplicationContext("applicationContext" + contextName + ".xml"); if ("-agent".equals(contextName)) { SubsonicAgent agent = (SubsonicAgent) context.getBean("agent"); SettingsPanel settingsPanel = (SettingsPanel) context.getBean("settingsPanel"); agent.setElevated(args.contains("-elevated")); if (args.contains("-balloon")) { agent.showTrayIconMessage(); } if (args.contains("-stop")) { agent.startOrStopService(false); agent.showStatusPanel(); } else if (args.contains("-start")) { agent.startOrStopService(true); agent.showStatusPanel(); } if (args.contains("-settings")) { String[] settings = args.get(args.indexOf("-settings") + 1).split(","); try { agent.showSettingsPanel(); settingsPanel.saveSettings(Integer.valueOf(settings[0]), Integer.valueOf(settings[1]), Integer.valueOf(settings[2]), settings[3]); settingsPanel.readValues(); } catch (Exception x) { JOptionPane.showMessageDialog(settingsPanel, x.getMessage(), "Error", JOptionPane.WARNING_MESSAGE); } } } } public static void main(String[] args) { String context = "-deployer"; if (args.length > 0) { context = args[0]; } new Main(context, Arrays.asList(args)); } }