Author: slotia
Date: 2009-07-21 04:30:10 -0700 (Tue, 21 Jul 2009)
New Revision: 17498
Added:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/BlockingQueueFactory.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/StatusBarUpdater.java
Removed:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogAppender.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Queues.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/UserLogAppender.java
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/ConsoleTaskFactory.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogDialog.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogTaskFactory.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Log4jInit.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/LowPriorityDaemonThreadFactory.java
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/QueueAppender.java
core3/log-swing/trunk/src/main/resources/META-INF/spring/bundle-context.xml
Log:
1) Logging events that are either at a warn or info level are sent to the
Console; other events are sent to the Developer Log
2) Cleaned up the code so that Spring does a lot of the internal wiring
Added:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/BlockingQueueFactory.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/BlockingQueueFactory.java
(rev 0)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/BlockingQueueFactory.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -0,0 +1,13 @@
+package org.cytoscape.log.internal;
+
+import org.apache.log4j.spi.LoggingEvent;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.LinkedBlockingQueue;
+
+public class BlockingQueueFactory
+{
+ public static BlockingQueue<LoggingEvent> newBlockingQueue()
+ {
+ return new LinkedBlockingQueue<LoggingEvent>();
+ }
+}
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/ConsoleTaskFactory.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/ConsoleTaskFactory.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/ConsoleTaskFactory.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -31,22 +31,23 @@
*/
public class ConsoleTaskFactory implements TaskFactory
{
- final BlockingQueue<LoggingEvent> internalQueue;
- final ExecutorService service;
+ final BlockingQueue<LoggingEvent> queue;
final CytoStatusBar statusBar;
final CySwingApplication app;
+ final ExecutorService service;
ConsoleDialog dialog = null;
- public ConsoleTaskFactory(CytoStatusBar statusBar, CySwingApplication
app)
+ public ConsoleTaskFactory( BlockingQueue<LoggingEvent> queue,
+ CytoStatusBar statusBar,
+ CySwingApplication app,
+ ExecutorService service)
{
+ this.queue = queue;
this.statusBar = statusBar;
this.app = app;
- internalQueue = new LinkedBlockingQueue<LoggingEvent>();
- service = Executors.newFixedThreadPool(2, new
LowPriorityDaemonThreadFactory());
+ this.service = service;
- StatusBarUpdater updater = new StatusBarUpdater(statusBar,
internalQueue);
- service.submit(updater);
statusBar.addActionListener(new ConsoleAction());
}
@@ -60,7 +61,7 @@
if (dialog == null)
{
dialog = new ConsoleDialog(statusBar, app);
- ConsoleDialogUpdater updater = new
ConsoleDialogUpdater(dialog, internalQueue);
+ ConsoleDialogUpdater updater = new
ConsoleDialogUpdater(dialog, queue);
service.submit(updater);
}
return dialog;
@@ -106,43 +107,3 @@
dialog.append(event.getLevel(), message, timeStamp);
}
}
-
-class StatusBarUpdater extends QueueProcesser
-{
- static final Map<Integer,String> LEVEL_TO_ICON_MAP = new
TreeMap<Integer,String>();
- static
- {
- LEVEL_TO_ICON_MAP.put(Level.DEBUG.toInt(),
"/petit-info.png");
- LEVEL_TO_ICON_MAP.put(Level.ERROR.toInt(),
"/petit-error.png");
- LEVEL_TO_ICON_MAP.put(Level.FATAL.toInt(),
"/petit-error.png");
- LEVEL_TO_ICON_MAP.put(Level.INFO.toInt(),
"/petit-info.png");
- LEVEL_TO_ICON_MAP.put(Level.TRACE.toInt(),
"/petit-info.png");
- LEVEL_TO_ICON_MAP.put(Level.WARN.toInt(),
"/petit-warning.png");
- }
-
- ImageIcon getIcon(int level)
- {
- String path = LEVEL_TO_ICON_MAP.get(level);
- if (path == null)
- path = "/petit-info.png";
- return new ImageIcon(getClass().getResource(path));
- }
-
- final CytoStatusBar statusBar;
- final BlockingQueue<LoggingEvent> internalQueue;
-
- public StatusBarUpdater(CytoStatusBar statusBar,
BlockingQueue<LoggingEvent> internalQueue)
- {
- super(Queues.getUserLogQueue());
- this.statusBar = statusBar;
- this.internalQueue = internalQueue;
- }
-
- public void processEvent(LoggingEvent event)
- {
- String message = event.getMessage().toString();
- ImageIcon icon = getIcon(event.getLevel().toInt());
- statusBar.setMessage(message, icon);
- internalQueue.offer(event);
- }
-}
Deleted:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogAppender.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogAppender.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogAppender.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -1,12 +0,0 @@
-package org.cytoscape.log.internal;
-
-/**
- * @author Pasteur
- */
-public class DeveloperLogAppender extends QueueAppender
-{
- public DeveloperLogAppender()
- {
- super(Queues.getDeveloperLogQueue());
- }
-}
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogDialog.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogDialog.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogDialog.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -170,25 +170,6 @@
}
}
- void addBunchOfLogEvents(int count)
- {
- java.text.DateFormat df =
java.text.DateFormat.getDateTimeInstance(java.text.DateFormat.SHORT,
java.text.DateFormat.MEDIUM);
- String[] logs = { "org.cytoscape.yadda", "org.cytoscape.blah" };
- String[] levels = { "debug", "warning", "info", "error" };
- String[] threads = { "Main-0", "MyThread-0", "MyThread-1" };
- String[] messages = { "Ghaalib", "Iqbaal", "Faiz" };
- for (int i = 0; i < count; i++)
- {
- String[] entry = new String[5];
- entry[0] = df.format(new Date(i * 60000L));
- entry[1] = logs[i % logs.length];
- entry[2] = levels[i % levels.length];
- entry[3] = threads[i % threads.length];
- entry[4] = messages[i % messages.length];
- addLogEvent(entry);
- }
- }
-
/**
* Gets the selected log
* @return The currently selected fully-qualified log name, or
<code>null</code> if the root is selected.
@@ -325,7 +306,7 @@
/**
* Determines if a log event matches the following criteria:
- * a) Does the log event comes from the currently selected log?
+ * a) Does the log event come from the currently selected log?
* b) Does the log event match the specified regular expression?
*/
boolean logEventMatches(String[] event, int target, String log)
@@ -341,8 +322,8 @@
/**
* Creates a new instance of <code>SolicitedLogEventsUpdater</code> and
- * executes it. If a SolicitedLogEventsUpdater is already running, this
- * will cancel it.
+ * executes it. If a <code>SolicitedLogEventsUpdater</code> is already
+ * running, this will cancel it.
*/
void refreshSnapshots()
{
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogTaskFactory.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogTaskFactory.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/DeveloperLogTaskFactory.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -25,14 +25,16 @@
public class DeveloperLogTaskFactory implements TaskFactory
{
final ExecutorService service;
+ final BlockingQueue<LoggingEvent> queue;
final CySwingApplication app;
final TaskManager manager;
DeveloperLogDialog dialog = null;
- public DeveloperLogTaskFactory(CySwingApplication app, TaskManager
manager)
+ public DeveloperLogTaskFactory(ExecutorService service,
BlockingQueue<LoggingEvent> queue, CySwingApplication app, TaskManager manager)
{
- service = Executors.newSingleThreadExecutor(new
LowPriorityDaemonThreadFactory());
+ this.service = service;
+ this.queue = queue;
this.app = app;
this.manager = manager;
}
@@ -59,7 +61,7 @@
if (dialog == null)
{
dialog = new DeveloperLogDialog(app, manager);
- DeveloperLogUpdater updater = new
DeveloperLogUpdater(dialog);
+ DeveloperLogUpdater updater = new
DeveloperLogUpdater(dialog, queue);
service.submit(updater);
}
return dialog;
@@ -68,13 +70,13 @@
class DeveloperLogUpdater extends QueueProcesser
{
- static DateFormat DATE_FORMATTER =
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
+ static final DateFormat DATE_FORMATTER =
DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT);
final DeveloperLogDialog dialog;
- public DeveloperLogUpdater(DeveloperLogDialog dialog)
+ public DeveloperLogUpdater(DeveloperLogDialog dialog,
BlockingQueue<LoggingEvent> queue)
{
- super(Queues.getDeveloperLogQueue());
+ super(queue);
this.dialog = dialog;
}
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Log4jInit.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Log4jInit.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Log4jInit.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -1,6 +1,6 @@
package org.cytoscape.log.internal;
-//import org.apache.log4j.PropertyConfigurator;
+import org.apache.log4j.Appender;
import org.apache.log4j.Logger;
/**
@@ -8,15 +8,9 @@
*/
public class Log4jInit
{
- public Log4jInit()
+ public Log4jInit(Appender rootAppender)
{
-
//PropertyConfigurator.configure(Log4jInit.class.getResource("/log4j-configuration.xml"));
-
- Logger userLog = Logger.getLogger("org.cytoscape.userlog");
- userLog.addAppender(new UserLogAppender());
- userLog.setAdditivity(false);
-
- Logger developerLog = Logger.getRootLogger();
- developerLog.addAppender(new DeveloperLogAppender());
+ Logger log = Logger.getRootLogger();
+ log.addAppender(rootAppender);
}
}
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/LowPriorityDaemonThreadFactory.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/LowPriorityDaemonThreadFactory.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/LowPriorityDaemonThreadFactory.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -5,7 +5,7 @@
/**
* @author Pasteur
*/
-class LowPriorityDaemonThreadFactory implements ThreadFactory
+public class LowPriorityDaemonThreadFactory implements ThreadFactory
{
public Thread newThread(Runnable r)
{
Modified:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/QueueAppender.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/QueueAppender.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/QueueAppender.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -6,18 +6,22 @@
import org.apache.log4j.AppenderSkeleton;
import org.apache.log4j.spi.Filter;
import org.apache.log4j.spi.LoggingEvent;
-import org.apache.log4j.Layout;
+import org.apache.log4j.Level;
/**
* @author Pasteur
*/
-class QueueAppender extends AppenderSkeleton implements Appender
+public class QueueAppender extends AppenderSkeleton implements Appender
{
- final Queue<LoggingEvent> queue;
+ final Queue<LoggingEvent> userLogQueue;
+ final Queue<LoggingEvent> statusBarQueue;
+ final Queue<LoggingEvent> developerLogQueue;
- public QueueAppender(Queue<LoggingEvent> queue)
+ public QueueAppender(Queue<LoggingEvent> userLogQueue,
Queue<LoggingEvent> statusBarQueue, Queue<LoggingEvent> developerLogQueue)
{
- this.queue = queue;
+ this.userLogQueue = userLogQueue;
+ this.statusBarQueue = statusBarQueue;
+ this.developerLogQueue = developerLogQueue;
}
public void append(LoggingEvent event)
@@ -32,7 +36,15 @@
else if (result == Filter.DENY)
return;
}
- queue.offer(event);
+
+ if ( event.getLevel().equals(Level.INFO) ||
+ event.getLevel().equals(Level.WARN))
+ {
+ userLogQueue.offer(event);
+ statusBarQueue.offer(event);
+ }
+ else
+ developerLogQueue.offer(event);
}
public boolean requiresLayout()
Deleted:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Queues.java
===================================================================
--- core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Queues.java
2009-07-21 03:07:00 UTC (rev 17497)
+++ core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/Queues.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -1,24 +0,0 @@
-package org.cytoscape.log.internal;
-
-import java.util.concurrent.BlockingQueue;
-import java.util.concurrent.LinkedBlockingQueue;
-import org.apache.log4j.spi.LoggingEvent;
-
-/**
- * @author Pasteur
- */
-class Queues
-{
- static BlockingQueue<LoggingEvent> userLogQueue = new
LinkedBlockingQueue<LoggingEvent>();
- static BlockingQueue<LoggingEvent> developerLogQueue = new
LinkedBlockingQueue<LoggingEvent>();
-
- public static BlockingQueue<LoggingEvent> getUserLogQueue()
- {
- return userLogQueue;
- }
-
- public static BlockingQueue<LoggingEvent> getDeveloperLogQueue()
- {
- return developerLogQueue;
- }
-}
Added:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/StatusBarUpdater.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/StatusBarUpdater.java
(rev 0)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/StatusBarUpdater.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -0,0 +1,57 @@
+package org.cytoscape.log.internal;
+
+import org.cytoscape.log.statusbar.CytoStatusBar;
+import org.apache.log4j.spi.LoggingEvent;
+import org.apache.log4j.Level;
+
+import java.util.Map;
+import java.util.TreeMap;
+import java.util.concurrent.BlockingQueue;
+import java.util.concurrent.ExecutorService;
+import javax.swing.ImageIcon;
+
+class StatusBarUpdater extends QueueProcesser
+{
+ static final Map<Integer,String> LEVEL_TO_ICON_MAP = new
TreeMap<Integer,String>();
+ static
+ {
+ LEVEL_TO_ICON_MAP.put(Level.DEBUG.toInt(),
"/petit-info.png");
+ LEVEL_TO_ICON_MAP.put(Level.ERROR.toInt(),
"/petit-error.png");
+ LEVEL_TO_ICON_MAP.put(Level.FATAL.toInt(),
"/petit-error.png");
+ LEVEL_TO_ICON_MAP.put(Level.INFO.toInt(),
"/petit-info.png");
+ LEVEL_TO_ICON_MAP.put(Level.TRACE.toInt(),
"/petit-info.png");
+ LEVEL_TO_ICON_MAP.put(Level.WARN.toInt(),
"/petit-warning.png");
+ }
+
+ ImageIcon getIcon(int level)
+ {
+ String path = LEVEL_TO_ICON_MAP.get(level);
+ if (path == null)
+ path = "/petit-info.png";
+ return new ImageIcon(getClass().getResource(path));
+ }
+
+ final CytoStatusBar statusBar;
+
+ public StatusBarUpdater(CytoStatusBar statusBar,
BlockingQueue<LoggingEvent> queue)
+ {
+ super(queue);
+ this.statusBar = statusBar;
+ }
+
+ public void processEvent(LoggingEvent event)
+ {
+ String message = event.getMessage().toString();
+ ImageIcon icon = getIcon(event.getLevel().toInt());
+ statusBar.setMessage(message, icon);
+ }
+
+ public static StatusBarUpdater executeStatusBarUpdater( ExecutorService
service,
+ CytoStatusBar
statusBar,
+
BlockingQueue<LoggingEvent> queue)
+ {
+ StatusBarUpdater updater = new StatusBarUpdater(statusBar,
queue);
+ service.submit(updater);
+ return updater;
+ }
+}
Deleted:
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/UserLogAppender.java
===================================================================
---
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/UserLogAppender.java
2009-07-21 03:07:00 UTC (rev 17497)
+++
core3/log-swing/trunk/src/main/java/org/cytoscape/log/internal/UserLogAppender.java
2009-07-21 11:30:10 UTC (rev 17498)
@@ -1,12 +0,0 @@
-package org.cytoscape.log.internal;
-
-/**
- * @author Pasteur
- */
-public class UserLogAppender extends QueueAppender
-{
- public UserLogAppender()
- {
- super(Queues.getUserLogQueue());
- }
-}
Modified:
core3/log-swing/trunk/src/main/resources/META-INF/spring/bundle-context.xml
===================================================================
--- core3/log-swing/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2009-07-21 03:07:00 UTC (rev 17497)
+++ core3/log-swing/trunk/src/main/resources/META-INF/spring/bundle-context.xml
2009-07-21 11:30:10 UTC (rev 17498)
@@ -16,12 +16,42 @@
<context:annotation-config />
+ <bean id="threadFactory"
class="org.cytoscape.log.internal.LowPriorityDaemonThreadFactory" />
+
+ <bean id="executorService" class="java.util.concurrent.Executors"
factory-method="newCachedThreadPool">
+ <constructor-arg ref="threadFactory" />
+ </bean>
+
+ <bean id="userQueue"
class="org.cytoscape.log.internal.BlockingQueueFactory"
factory-method="newBlockingQueue" />
+ <bean id="statusBarQueue"
class="org.cytoscape.log.internal.BlockingQueueFactory"
factory-method="newBlockingQueue" />
+ <bean id="developerQueue"
class="org.cytoscape.log.internal.BlockingQueueFactory"
factory-method="newBlockingQueue" />
+
+ <bean id="rootAppender"
class="org.cytoscape.log.internal.QueueAppender">
+ <constructor-arg ref="userQueue" />
+ <constructor-arg ref="statusBarQueue" />
+ <constructor-arg ref="developerQueue" />
+ </bean>
+
+ <bean id="log4jInitialization"
class="org.cytoscape.log.internal.Log4jInit">
+ <constructor-arg ref="rootAppender" />
+ </bean>
+
+ <bean id="statusBarUpdater"
class="org.cytoscape.log.internal.StatusBarUpdater"
factory-method="executeStatusBarUpdater">
+ <constructor-arg ref="executorService" />
+ <constructor-arg ref="cytoStatusBarRef" />
+ <constructor-arg ref="statusBarQueue" />
+ </bean>
+
<bean id="consoleTaskFactory"
class="org.cytoscape.log.internal.ConsoleTaskFactory">
+ <constructor-arg ref="userQueue" />
<constructor-arg ref="cytoStatusBarRef" />
<constructor-arg ref="cySwingApplicationRef" />
+ <constructor-arg ref="executorService" />
</bean>
<bean id="developerLogTaskFactory"
class="org.cytoscape.log.internal.DeveloperLogTaskFactory">
+ <constructor-arg ref="executorService" />
+ <constructor-arg ref="developerQueue" />
<constructor-arg ref="cySwingApplicationRef" />
<constructor-arg ref="taskManagerRef" />
</bean>
@@ -29,18 +59,4 @@
<bean id="testTaskFactory"
class="org.cytoscape.log.internal.TestTaskFactory">
</bean>
- <!--
- <bean id="log4jInitialization"
class="org.springframework.beans.factory.config.MethodInvokingFactoryBean">
- <property name="targetClass"
value="org.springframework.util.Log4jConfigurer"/>
- <property name="targetMethod" value="initLogging"/>
- <property name="arguments">
- <list>
- <value>log4j-configuration.xml</value>
- </list>
- </property>
- </bean>
- -->
-
- <bean id="log4jInitialization"
class="org.cytoscape.log.internal.Log4jInit">
- </bean>
</beans>
--~--~---------~--~----~------------~-------~--~----~
You received this message because you are subscribed to the Google Groups
"cytoscape-cvs" group.
To post to this group, send email to [email protected]
To unsubscribe from this group, send email to
[email protected]
For more options, visit this group at
http://groups.google.com/group/cytoscape-cvs?hl=en
-~----------~----~----~----~------~----~------~--~---