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
-~----------~----~----~----~------~----~------~--~---

Reply via email to