From 3063e37cbd85e3af640b3bf96847b4f6ac598e48 Mon Sep 17 00:00:00 2001 From: zzz Date: Tue, 25 Oct 2016 23:59:20 +0000 Subject: [PATCH] Systray: Remove old 32-bit Windows implementation, replaced by DTG --- apps/routerconsole/java/build.xml | 4 - .../i2p/router/web/RouterConsoleRunner.java | 5 +- apps/systray/java/build.xml | 6 +- apps/systray/java/lib/systray4j.dll | Bin 94208 -> 0 bytes apps/systray/java/lib/systray4j.jar | Bin 56504 -> 0 bytes .../src/net/i2p/apps/systray/SysTray.java | 66 ------ .../src/net/i2p/apps/systray/SysTrayImpl.java | 218 ------------------ build.xml | 20 +- 8 files changed, 6 insertions(+), 313 deletions(-) delete mode 100644 apps/systray/java/lib/systray4j.dll delete mode 100644 apps/systray/java/lib/systray4j.jar delete mode 100644 apps/systray/java/src/net/i2p/apps/systray/SysTray.java delete mode 100644 apps/systray/java/src/net/i2p/apps/systray/SysTrayImpl.java diff --git a/apps/routerconsole/java/build.xml b/apps/routerconsole/java/build.xml index afd523b4f..259a0f360 100644 --- a/apps/routerconsole/java/build.xml +++ b/apps/routerconsole/java/build.xml @@ -28,7 +28,6 @@ - @@ -73,7 +72,6 @@ - @@ -374,7 +372,6 @@ - @@ -412,7 +409,6 @@ - diff --git a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java index b37ed050d..e9e132712 100644 --- a/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java +++ b/apps/routerconsole/java/src/net/i2p/router/web/RouterConsoleRunner.java @@ -25,7 +25,6 @@ import net.i2p.I2PAppContext; import net.i2p.app.ClientAppManager; import net.i2p.app.ClientAppState; import static net.i2p.app.ClientAppState.*; -import net.i2p.apps.systray.SysTray; import net.i2p.crypto.KeyStoreUtil; import net.i2p.data.DataHelper; import net.i2p.jetty.I2PLogger; @@ -294,8 +293,8 @@ public class RouterConsoleRunner implements RouterApp { // required true for jrobin to work System.setProperty("java.awt.headless", "true"); // this check is in SysTray but do it here too - if (SystemVersion.isWindows() && (!Boolean.getBoolean("systray.disable")) && (!SystemVersion.is64Bit())) - SysTray.getInstance(); + //if (SystemVersion.isWindows() && (!Boolean.getBoolean("systray.disable")) && (!SystemVersion.is64Bit())) + // SysTray.getInstance(); } } catch (Throwable t) { t.printStackTrace(); diff --git a/apps/systray/java/build.xml b/apps/systray/java/build.xml index c5eb70731..f647ec30e 100644 --- a/apps/systray/java/build.xml +++ b/apps/systray/java/build.xml @@ -16,7 +16,6 @@ - @@ -36,7 +35,7 @@ destdir="./build/obj" includeAntRuntime="false" includes="**/*.java" - classpath="./lib/systray4j.jar:../../../core/java/build/i2p.jar" > + classpath="../../../core/java/build/i2p.jar" > @@ -61,7 +60,6 @@ - @@ -90,7 +88,7 @@ 7Seb{q{c*B#)Z#@+fK7 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 U0SF90U;qLG5Ey{Ke=7w3KkMzRD*ylh diff --git a/apps/systray/java/lib/systray4j.jar b/apps/systray/java/lib/systray4j.jar deleted file mode 100644 index 35286cec18e5016be1e8065fed845a9dddafc44e..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 56504 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 VE3)Z*2nFdN*^LEX@wa*P{{ZFhZjAr{ diff --git a/apps/systray/java/src/net/i2p/apps/systray/SysTray.java b/apps/systray/java/src/net/i2p/apps/systray/SysTray.java deleted file mode 100644 index 5ecdf115b..000000000 --- a/apps/systray/java/src/net/i2p/apps/systray/SysTray.java +++ /dev/null @@ -1,66 +0,0 @@ -package net.i2p.apps.systray; - -import java.lang.reflect.Method; - -import net.i2p.util.SystemVersion; - -/** - * A system tray control for launching the I2P router console. - * - * Not part of the public API. Works on 32-bit Windows only. - * To be removed or replaced. - * - * @since implementation moved to SysTrayImpl in 0.9.26 - */ -public class SysTray { - - /** - * Warning - systray4j.jar may not be present - may return null. - * As of 0.9.26, uses reflection so we may compile without systray4j.jar. - * - * @return null if not supported, since 0.9.26 (prior to that would throw NoClassDefFoundError) - * @since 0.8.1 - */ - public static SysTray getInstance() { - if (SystemVersion.isWindows() && !SystemVersion.is64Bit()) - return getImpl(); - return null; - } - - /** - * Warning - systray4j.jar may not be present - may return null - * - * @return null if not supported - * @since 0.9.26 - */ - private static SysTray getImpl() { - try { - Class impl = Class.forName("net.i2p.apps.systray.SysTrayImpl", true, ClassLoader.getSystemClassLoader()); - Method getInstance = impl.getMethod("getInstance"); - return (SysTray) getInstance.invoke(null,(Object[]) null); - } catch (Throwable t) { - System.out.println("WARN: Unable to start systray"); - t.printStackTrace(); - return null; - } - } - - /** - * This mimics what is now in SysTrayImpl.main(), - * not that anybody was using that. - */ - public static void main(String[] args) { - SysTray impl = getImpl(); - if (impl == null) { - System.out.println("No systray implementation found"); - System.exit(1); - } - System.err.println("Hit ^C to exit"); - Thread t = Thread.currentThread(); - synchronized(t) { - try { - t.wait(); - } catch (InterruptedException ie) {} - } - } -} diff --git a/apps/systray/java/src/net/i2p/apps/systray/SysTrayImpl.java b/apps/systray/java/src/net/i2p/apps/systray/SysTrayImpl.java deleted file mode 100644 index 18a25951b..000000000 --- a/apps/systray/java/src/net/i2p/apps/systray/SysTrayImpl.java +++ /dev/null @@ -1,218 +0,0 @@ -/* - * I2P - An anonymous, secure, and fully-distributed communication network. - * - * SysTray.java - * 2004 The I2P Project - * http://www.i2p.net - * This code is public domain. - */ - -package net.i2p.apps.systray; - -import java.awt.Frame; -import java.io.File; -import java.io.IOException; - -import net.i2p.I2PAppContext; -import net.i2p.util.SimpleTimer; -import net.i2p.util.SimpleTimer2; -import net.i2p.util.SystemVersion; -import snoozesoft.systray4j.SysTrayMenu; -import snoozesoft.systray4j.SysTrayMenuEvent; -import snoozesoft.systray4j.SysTrayMenuIcon; -import snoozesoft.systray4j.SysTrayMenuItem; -import snoozesoft.systray4j.SysTrayMenuListener; - -/** - * A system tray control for launching the I2P router console. - * - * Not part of the public API. Works on 32-bit Windows only. - * To be removed or replaced. - * This source file may be safely removed in non-Windows builds. - * - * @author hypercubus - * @since moved from SysTray in 0.9.26 - * @deprecated - */ -@Deprecated -class SysTrayImpl extends SysTray implements SysTrayMenuListener { - - private static BrowserChooser _browserChooser; - private static String _browserString; - private static ConfigFile _configFile = new ConfigFile(); - private static Frame _frame; - private static SysTrayImpl _instance; - private static String _portString; - private static boolean _showIcon; - private static final boolean _is64 = SystemVersion.is64Bit(); - - static { - File config = new File(I2PAppContext.getGlobalContext().getConfigDir(), "systray.config"); - if (!_configFile.init(config.getAbsolutePath())) { - _configFile.setProperty("browser", "default"); - _configFile.setProperty("port", "7657"); - } - - _browserString = _configFile.getProperty("browser", "default"); - _portString = _configFile.getProperty("port", "7657"); - _showIcon = Boolean.parseBoolean(_configFile.getProperty("visible", "true")); - - //if (!(new File("router.config")).exists()) - // openRouterConsole("http://localhost:" + _portString + "/index.jsp"); - - if ( (SystemVersion.isWindows()) && (!Boolean.getBoolean("systray.disable")) && (!_is64)) - _instance = new SysTrayImpl(); - } - - private SysTrayMenuItem _itemOpenConsole = new SysTrayMenuItem("Open router console", "openconsole"); - private SysTrayMenuItem _itemSelectBrowser = new SysTrayMenuItem("Select browser...", "selectbrowser"); -// private SysTrayMenuItem _itemShutdown = new SysTrayMenuItem("Shut down I2P router", "shutdown"); - private SysTrayMenuIcon _sysTrayMenuIcon = new SysTrayMenuIcon("icons/iggy"); - private SysTrayMenu _sysTrayMenu = new SysTrayMenu(_sysTrayMenuIcon, "I2P Control"); - - private SysTrayImpl() { - _sysTrayMenuIcon.addSysTrayMenuListener(this); - createSysTrayMenu(); - SimpleTimer2.getInstance().addPeriodicEvent(new RefreshDisplayEvent(), REFRESH_DISPLAY_FREQUENCY); - } - - private static final long REFRESH_DISPLAY_FREQUENCY = 30*1000; - private class RefreshDisplayEvent implements SimpleTimer.TimedEvent { - public void timeReached() { - refreshDisplay(); - } - } - - /** - * Warning - systray4j.jar may not be present - may throw NoClassDefFoundError - * - * @throws NoClassDefFoundError - * @since 0.8.1 - */ - public static synchronized SysTrayImpl getInstance() { - return _instance; - } - - private static void openRouterConsole(String url) { - - String browser = null; - UrlLauncher urlLauncher = new UrlLauncher(); - - if (_browserString == null || _browserString.equals("default")) { - try { - if (urlLauncher.openUrl(url)) - return; - } catch (IOException ex) { - // Fall through. - } - } else { - try { - if (urlLauncher.openUrl(url, _browserString)) - return; - } catch (IOException ex) { - // Fall through. - } - } - - if (!(browser = promptForBrowser("Please select another browser")).equals("nullnull")) - setBrowser(browser); - } - - private static String promptForBrowser(String windowTitle) { - - String browser = null; - - _frame = new Frame(); - _browserChooser = new BrowserChooser(_frame, windowTitle); - browser = _browserChooser.getDirectory() + _browserChooser.getFile(); - _browserChooser = null; - _frame = null; - return browser; - } - - private static void setBrowser(String browser) { - _browserString = browser; - _configFile.setProperty("browser", browser); - } - - public void refreshDisplay() { - if (_showIcon) - _sysTrayMenu.showIcon(); - else - _sysTrayMenu.hideIcon(); - } - - public void hide() { - _configFile.setProperty("visible", "false"); - _showIcon = false; - _sysTrayMenu.hideIcon(); - } - - public void iconLeftClicked(SysTrayMenuEvent e) {} - - public void iconLeftDoubleClicked(SysTrayMenuEvent e) { - openRouterConsole("http://127.0.0.1:" + _portString + "/index.jsp"); - } - - public void menuItemSelected(SysTrayMenuEvent e) { - - String browser = null; - -// if (e.getActionCommand().equals("shutdown")) { -// _browserChooser = null; -// _frame = null; -// _itemShutdown = null; -// _itemSelectBrowser = null; -// _sysTrayMenuIcon = null; -// _sysTrayMenu = null; -// _browserChooser = null; -// _frame = null; -// System.exit(0); - if (e.getActionCommand().equals("selectbrowser")) { - if (!(browser = promptForBrowser("Select browser")).equals("nullnull")) - setBrowser(browser); - } else if (e.getActionCommand().equals("openconsole")) { - openRouterConsole("http://127.0.0.1:" + _portString + "/index.jsp"); - } - } - - public void show() { - _configFile.setProperty("visible", "true"); - _showIcon = true; - _sysTrayMenu.showIcon(); - } - - private void createSysTrayMenu() { -// _itemShutdown.addSysTrayMenuListener(this); - _itemSelectBrowser.addSysTrayMenuListener(this); - _itemOpenConsole.addSysTrayMenuListener(this); -// _sysTrayMenu.addItem(_itemShutdown); -// _sysTrayMenu.addSeparator(); - // hide it, as there have been reports of b0rked behavior on some JVMs. - // specifically, that on XP & sun1.5.0.1, a user launching i2p w/out the - // service wrapper would create netDb/, peerProfiles/, and other files - // underneath each directory browsed to - as if the router's "." directory - // is changing whenever the itemSelectBrowser's JFileChooser changed - // directories. This has not been reproduced or confirmed yet, but is - // pretty scary, and this function isn't too necessary. - //_sysTrayMenu.addItem(_itemSelectBrowser); - _sysTrayMenu.addItem(_itemOpenConsole); - refreshDisplay(); - } - - /** - * Starts SysTray, even on linux (but requires kde3 libsystray4j.so to do anything) - * @since 0.8.1 - */ - public static void main(String args[]) { - System.err.println("SysTray4j version " + SysTrayMenu.VERSION); - System.err.println("Hit ^C to exit"); - new SysTrayImpl(); - Thread t = Thread.currentThread(); - synchronized(t) { - try { - t.wait(); - } catch (InterruptedException ie) {} - } - } -} diff --git a/build.xml b/build.xml index 4e7752c95..17806f4f9 100644 --- a/build.xml +++ b/build.xml @@ -519,7 +519,7 @@ - + @@ -778,7 +778,6 @@ - @@ -1162,10 +1161,6 @@ - - - - @@ -1889,7 +1884,7 @@ - + @@ -2190,9 +2185,6 @@ - - - @@ -2275,9 +2267,6 @@ - - - @@ -2358,8 +2347,6 @@ - - @@ -2489,9 +2476,6 @@ - - -