From d533122199311b37ed78cd673aaf8357fbb105ab Mon Sep 17 00:00:00 2001 From: Michael Scharf Date: Mon, 29 Jan 2007 22:18:50 +0000 Subject: [PATCH] fix for bug 172023: when RXTX library is not installed, a warning is printed to the error log which includes the install instructions --- .../META-INF/MANIFEST.MF | 1 + .../terminal/internal/serial/Activator.java | 50 +++++++++++++++++++ .../internal/serial/SerialConnector.java | 12 +++-- .../internal/serial/SerialMessages.java | 2 + .../internal/serial/SerialMessages.properties | 12 +++++ 5 files changed, 72 insertions(+), 5 deletions(-) create mode 100644 org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/Activator.java diff --git a/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF b/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF index e1309be6bff..415450032c1 100644 --- a/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF +++ b/org.eclipse.tm.terminal.serial/META-INF/MANIFEST.MF @@ -13,3 +13,4 @@ Eclipse-BuddyPolicy: ext Bundle-Vendor: %providerName Bundle-RequiredExecutionEnvironment: J2SE-1.4 Bundle-ClassPath: . +Bundle-Activator: org.eclipse.tm.terminal.internal.serial.Activator diff --git a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/Activator.java b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/Activator.java new file mode 100644 index 00000000000..53a61a13232 --- /dev/null +++ b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/Activator.java @@ -0,0 +1,50 @@ +package org.eclipse.tm.terminal.internal.serial; + +import org.eclipse.ui.plugin.AbstractUIPlugin; +import org.osgi.framework.BundleContext; + +/** + * The activator class controls the plug-in life cycle + */ +public class Activator extends AbstractUIPlugin { + + // The plug-in ID + public static final String PLUGIN_ID = "org.eclipse.tm.terminal.serial"; + + // The shared instance + private static Activator plugin; + + /** + * The constructor + */ + public Activator() { + plugin = this; + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext) + */ + public void start(BundleContext context) throws Exception { + super.start(context); + } + + /* + * (non-Javadoc) + * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext) + */ + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static Activator getDefault() { + return plugin; + } + +} diff --git a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialConnector.java b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialConnector.java index e89e04efdd6..411ed65804a 100644 --- a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialConnector.java +++ b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialConnector.java @@ -16,13 +16,15 @@ *******************************************************************************/ package org.eclipse.tm.terminal.internal.serial; +import gnu.io.CommPortIdentifier; +import gnu.io.SerialPort; + import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; -import gnu.io.CommPortIdentifier; -import gnu.io.SerialPort; - +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; import org.eclipse.tm.terminal.ISettingsPage; import org.eclipse.tm.terminal.ISettingsStore; import org.eclipse.tm.terminal.ITerminalConnector; @@ -44,8 +46,8 @@ public class SerialConnector implements ITerminalConnector { try { settins=new SerialSettings(); } catch (NoClassDefFoundError e) { - // the comm library is not installed - e.printStackTrace(); + // tell the user how to install the library + Activator.getDefault().getLog().log(new Status(IStatus.WARNING,Activator.PLUGIN_ID,SerialMessages.ERROR_LIBRARY_NOT_INSTALLED,e)); } fSettings=settins; } diff --git a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.java b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.java index d449b97686d..58d40a711b1 100644 --- a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.java +++ b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.java @@ -32,4 +32,6 @@ public class SerialMessages extends NLS { public static String PORT_IN_USE; public static String TIMEOUT; + public static String ERROR_LIBRARY_NOT_INSTALLED; + } diff --git a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.properties b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.properties index e00332637df..92bacf91db2 100644 --- a/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.properties +++ b/org.eclipse.tm.terminal.serial/src/org/eclipse/tm/terminal/internal/serial/SerialMessages.properties @@ -24,3 +24,15 @@ STOPBITS = Stop Bits PARITY = Parity FLOWCONTROL = Flow Control TIMEOUT = Timeout (sec) +ERROR_LIBRARY_NOT_INSTALLED = The RXTX library has not been installed properly! \n\ +Installation:\n\ +-------------\n\ +* Get RXTX binaries from\n\ + ftp://ftp.qbang.org/pub/rxtx/rxtx-2.1-7-bins-r2.zip\n\ +* Copy RXTXcomm.jar into $JRE/lib/ext\n\ +* Copy the native libs for your Platform (*.so, *.jnilib, *.dll) into the respective native lib folder of your RSE \n\ +* More installation instructions are at\n\ + http://rxtx.qbang.org/wiki/index.php/Main_Page\n\ +* More downloads for other platforms (currently about 30)\n\ + are available from the "ToyBox" link on\n\ + http://users.frii.com/jarvi/rxtx/download.html