- plugin functionality added

- Logging adapted to use the .configure property file

git-svn-id: https://svn.code.sf.net/p/libusbjava/code/trunk@178 94ad28fe-ef68-46b1-9651-e7ae4fcf1c4c
This commit is contained in:
schlaepfer
2006-10-20 15:00:56 +00:00
parent 36c42b4f2c
commit b97aba3961
12 changed files with 110 additions and 74 deletions

View File

@@ -1,7 +1,8 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="test"/>
<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
<classpathentry kind="con" path="SWT_CONTAINER/PLATFORM"/>
<classpathentry kind="output" path="bin"/>
</classpath>

6
java/.configure Normal file
View File

@@ -0,0 +1,6 @@
# enable or disable logging
ch.ntb.usb/debug = true
# set and configure individual loggers here
# the format is: projectName/debug/<loggerX> = <logger name>/<log level>
ch.ntb.usb/debug/logger0 = ch.ntb.usb/OFF
ch.ntb.usb/debug/logger1 = ch.ntb.usb.test/INFO

View File

@@ -10,10 +10,21 @@
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.ManifestBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.pde.SchemaBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>org.eclipse.jem.workbench.JavaEMFNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
<nature>org.eclipse.jem.beaninfo.BeanInfoNature</nature>
<nature>org.eclipse.pde.PluginNature</nature>
</natures>
</projectDescription>

View File

@@ -1,12 +0,0 @@
#Wed Oct 26 15:55:07 CEST 2005
eclipse.preferences.version=1
org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
org.eclipse.jdt.core.compiler.compliance=1.5
org.eclipse.jdt.core.compiler.debug.lineNumber=generate
org.eclipse.jdt.core.compiler.debug.localVariable=generate
org.eclipse.jdt.core.compiler.debug.sourceFile=generate
org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
org.eclipse.jdt.core.compiler.source=1.5

13
java/META-INF/MANIFEST.MF Normal file
View File

@@ -0,0 +1,13 @@
Manifest-Version: 1.0
Bundle-ManifestVersion: 2
Bundle-Name: Inf USB Library
Bundle-SymbolicName: ch.ntb.usb
Bundle-Version: 1.0.0
Bundle-Localization: plugin
Bundle-Vendor: inf.ntb.ch
Eclipse-LazyStart: false
Require-Bundle: org.junit4,
org.eclipse.swt
Export-Package: ch.ntb.usb,
ch.ntb.usb.testApp,
ch.ntb.usb.usbView

4
java/build.properties Normal file
View File

@@ -0,0 +1,4 @@
source.. = src/,\
test/
bin.includes = META-INF/,\
.

View File

@@ -1,9 +1,9 @@
package ch.ntb.usb;
import java.util.logging.Level;
import java.util.logging.Logger;
import ch.ntb.usb.logger.LogUtil;
import ch.ntb.usb.logger.UsbLogger;
/**
* This class represents an USB device.<br>
@@ -14,7 +14,7 @@ import ch.ntb.usb.logger.UsbLogger;
*/
public class Device {
private static UsbLogger logger = LogUtil.ch_ntb_usb;
private static Logger logger = LogUtil.getLogger("ch.ntb.usb");
private static final int TIMEOUT_ERROR_CODE = -116;
@@ -224,7 +224,8 @@ public class Device {
+ LibusbWin.usb_strerror());
}
if (logger.getLevel().intValue() <= Level.INFO.intValue()) {
logger.info("length written: " + lenWritten);
if (logger.getLevel().intValue() <= Level.FINEST.intValue()) {
StringBuffer sb = new StringBuffer("bulkwrite, ep 0x"
+ Integer.toHexString(out_ep_address) + ": " + lenWritten
+ " Bytes sent: ");
@@ -283,7 +284,8 @@ public class Device {
+ LibusbWin.usb_strerror());
}
if (logger.getLevel().intValue() <= Level.INFO.intValue()) {
logger.info("length read: " + lenRead);
if (logger.getLevel().intValue() <= Level.FINEST.intValue()) {
StringBuffer sb = new StringBuffer("bulkread, ep 0x"
+ Integer.toHexString(in_ep_address) + ": " + lenRead
+ " Bytes received: ");
@@ -343,7 +345,8 @@ public class Device {
+ LibusbWin.usb_strerror());
}
if (logger.getLevel().intValue() <= Level.INFO.intValue()) {
logger.info("length written: " + lenWritten);
if (logger.getLevel().intValue() <= Level.FINEST.intValue()) {
StringBuffer sb = new StringBuffer("bulkwrite, ep 0x"
+ Integer.toHexString(out_ep_address) + ": " + lenWritten
+ " Bytes sent: ");
@@ -403,7 +406,8 @@ public class Device {
+ LibusbWin.usb_strerror());
}
if (logger.getLevel().intValue() <= Level.INFO.intValue()) {
logger.info("length read: " + lenRead);
if (logger.getLevel().intValue() <= Level.FINEST.intValue()) {
StringBuffer sb = new StringBuffer("bulkread, ep 0x"
+ Integer.toHexString(in_ep_address) + ": " + lenRead
+ " Bytes received: ");

View File

@@ -2,9 +2,9 @@ package ch.ntb.usb;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.logging.Logger;
import ch.ntb.usb.logger.LogUtil;
import ch.ntb.usb.logger.UsbLogger;
/**
* This class manages all USB devices and defines some USB specific constants.<br>
@@ -26,7 +26,7 @@ public class USB {
*/
public static int FULLSPEED_MAX_BULK_PACKET_SIZE = 64;
private static UsbLogger logger = LogUtil.ch_ntb_usb;
private static Logger logger = LogUtil.getLogger("ch.ntb.usb");
private static LinkedList<Device> devices = new LinkedList<Device>();

View File

@@ -1,15 +0,0 @@
package ch.ntb.usb.logger;
import java.util.logging.Level;
public class LogLevel extends Level {
private static final long serialVersionUID = -8918592094095458645L;
public static final Level DEBUG = new LogLevel("DEBUG", 750);
protected LogLevel(String name, int value) {
super(name, value);
}
}

View File

@@ -1,20 +1,25 @@
package ch.ntb.usb.logger;
import java.io.FileInputStream;
import java.util.Properties;
import java.util.logging.ConsoleHandler;
import java.util.logging.Handler;
import java.util.logging.Level;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class LogUtil {
public static UsbLogger ch_ntb_usb, ch_ntb_usb_test;
private static final String PLUGIN_ID = "ch.ntb.usb";
private static final String PROPERTIES_FILE = ".configure";
private static boolean debugEnabled;
static {
// set all loglevels here
ch_ntb_usb = getLogger("ch.ntb.usb", Level.OFF);
ch_ntb_usb_test = getLogger("ch.ntb.usb.test", Level.ALL);
createLoggersFromProperties();
}
public static void setLevel(UsbLogger logger, Level loglevel) {
public static void setLevel(Logger logger, Level loglevel) {
Handler[] h = logger.getHandlers();
for (int i = 0; i < h.length; i++) {
h[i].setLevel(loglevel);
@@ -22,7 +27,19 @@ public class LogUtil {
logger.setLevel(loglevel);
}
private static void initLevel(UsbLogger logger, Level loglevel) {
public static Logger getLogger(String name) {
LogManager manager = LogManager.getLogManager();
// check if logger is already registered
Logger logger = manager.getLogger(name);
if (logger == null) {
logger = Logger.getLogger(name);
manager.addLogger(logger);
}
logger.setLevel(null);
return logger;
}
private static void initLevel(Logger logger, Level loglevel) {
Handler[] h = logger.getHandlers();
for (int i = 0; i < h.length; i++) {
logger.removeHandler(h[i]);
@@ -34,9 +51,43 @@ public class LogUtil {
logger.setUseParentHandlers(false);
}
private static UsbLogger getLogger(String name, Level loglevel) {
UsbLogger logger = UsbLogger.getLogger(name);
initLevel(logger, loglevel);
return logger;
private static void createLoggersFromProperties() {
try {
FileInputStream fis = new FileInputStream(PROPERTIES_FILE);
Properties prop = new Properties();
prop.load(fis);
// get global debug enable flag
debugEnabled = Boolean.parseBoolean(prop.getProperty(PLUGIN_ID
+ "/debug"));
// get and configure loggers
boolean moreLoggers = true;
int loggerCount = 0;
while (moreLoggers) {
String loggerProp = prop.getProperty(PLUGIN_ID
+ "/debug/logger" + loggerCount);
loggerCount++;
if (loggerProp != null) {
// parse string and get logger name and log level
int slashIndex = loggerProp.indexOf('/');
String loggerName = loggerProp.substring(0, slashIndex)
.trim();
String logLevel = loggerProp.substring(slashIndex + 1,
loggerProp.length());
// register logger
Level level;
if (debugEnabled) {
level = Level.parse(logLevel);
} else {
level = Level.OFF;
}
Logger logger = getLogger(loggerName);
initLevel(logger, level);
} else {
moreLoggers = false;
}
}
} catch (Exception e) {
e.printStackTrace();
}
}
}

View File

@@ -1,27 +0,0 @@
package ch.ntb.usb.logger;
import java.util.logging.LogManager;
import java.util.logging.Logger;
public class UsbLogger extends Logger {
protected UsbLogger(String name, String resourceBundleName) {
super(name, resourceBundleName);
}
public void debug(String msg) {
log(LogLevel.DEBUG, msg);
}
public static synchronized UsbLogger getLogger(String name) {
LogManager manager = LogManager.getLogManager();
UsbLogger result = (UsbLogger) manager.getLogger(name);
if (result == null) {
result = new UsbLogger(name, null);
manager.addLogger(result);
result = (UsbLogger) manager.getLogger(name);
}
result.setLevel(null);
return result;
}
}

View File

@@ -10,7 +10,7 @@ import ch.ntb.usb.logger.LogUtil;
public class TestImplementation {
private static Logger logger = LogUtil.ch_ntb_usb_test;
private static Logger logger = LogUtil.getLogger("ch.ntb.usb.test");
public static String sendData = "0x5b 0x02 0x01 0x00 0x03 0x03 0xf0 0xf0 0x1f";