Class ClientGui

  • All Implemented Interfaces:
    java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.util.EventListener, javax.accessibility.Accessible, javax.management.NotificationListener

    public class ClientGui
    extends javax.swing.JPanel
    implements javax.management.NotificationListener
    Swing GUI that connects to a Java process via JMX and allows the user to view and modify the Log4j 2 configuration, as well as monitor status logs.
    See Also:
    http://docs.oracle.com/javase/6/docs/technotes/guides/management/ jconsole.html, Serialized Form
    • Nested Class Summary

      • Nested classes/interfaces inherited from class javax.swing.JPanel

        javax.swing.JPanel.AccessibleJPanel
      • Nested classes/interfaces inherited from class javax.swing.JComponent

        javax.swing.JComponent.AccessibleJComponent
      • Nested classes/interfaces inherited from class java.awt.Container

        java.awt.Container.AccessibleAWTContainer
      • Nested classes/interfaces inherited from class java.awt.Component

        java.awt.Component.AccessibleAWTComponent, java.awt.Component.BaselineResizeBehavior, java.awt.Component.BltBufferStrategy, java.awt.Component.FlipBufferStrategy
    • Field Summary

      Fields 
      Modifier and Type Field Description
      private Client client  
      private java.util.Map<javax.management.ObjectName,​java.awt.Component> contextObjNameToTabbedPaneMap  
      private static int INITIAL_STRING_WRITER_SIZE  
      private static long serialVersionUID  
      private java.util.Map<javax.management.ObjectName,​javax.swing.JTextArea> statusLogTextAreaMap  
      private javax.swing.JTabbedPane tabbedPaneContexts  
      • Fields inherited from class javax.swing.JComponent

        listenerList, TOOL_TIP_TEXT_KEY, ui, UNDEFINED_CONDITION, WHEN_ANCESTOR_OF_FOCUSED_COMPONENT, WHEN_FOCUSED, WHEN_IN_FOCUSED_WINDOW
      • Fields inherited from class java.awt.Component

        accessibleContext, BOTTOM_ALIGNMENT, CENTER_ALIGNMENT, LEFT_ALIGNMENT, RIGHT_ALIGNMENT, TOP_ALIGNMENT
      • Fields inherited from interface java.awt.image.ImageObserver

        ABORT, ALLBITS, ERROR, FRAMEBITS, HEIGHT, PROPERTIES, SOMEBITS, WIDTH
    • Constructor Summary

      Constructors 
      Constructor Description
      ClientGui​(Client client)  
    • Method Summary

      All Methods Static Methods Instance Methods Concrete Methods 
      Modifier and Type Method Description
      private void addWidgetForLoggerContext​(LoggerContextAdminMBean ctx)  
      private javax.swing.JTextArea createTextArea()  
      private void createWidgets()  
      private void handle​(java.lang.String msg, java.lang.Exception ex)  
      void handleNotification​(javax.management.Notification notif, java.lang.Object paramObject)  
      private void handleNotificationInAwtEventThread​(javax.management.Notification notif, java.lang.Object paramObject)  
      private static void installLookAndFeel()  
      static void main​(java.lang.String[] args)
      Connects to the specified location and shows this panel in a window.
      private void onMBeanRegistered​(javax.management.ObjectName mbeanName)
      Called every time a Log4J2 MBean was registered in the MBean server.
      private void onMBeanUnregistered​(javax.management.ObjectName mbeanName)
      Called every time a Log4J2 MBean was unregistered from the MBean server.
      private void populateWidgets()  
      private void registerListeners​(StatusLoggerAdminMBean status)  
      private void removeWidgetForLoggerContext​(javax.management.ObjectName loggerContextObjName)  
      private javax.swing.JScrollPane scroll​(javax.swing.JTextArea text)  
      private static void usage()  
      • Methods inherited from class javax.swing.JPanel

        getAccessibleContext, getUI, getUIClassID, paramString, setUI, updateUI
      • Methods inherited from class javax.swing.JComponent

        addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getActionForKeyStroke, getActionMap, getAlignmentX, getAlignmentY, getAncestorListeners, getAutoscrolls, getBaseline, getBaselineResizeBehavior, getBorder, getBounds, getClientProperty, getComponentGraphics, getComponentPopupMenu, getConditionForKeyStroke, getDebugGraphicsOptions, getDefaultLocale, getFontMetrics, getGraphics, getHeight, getInheritsPopupMenu, getInputMap, getInputMap, getInputVerifier, getInsets, getInsets, getListeners, getLocation, getMaximumSize, getMinimumSize, getNextFocusableComponent, getPopupLocation, getPreferredSize, getRegisteredKeyStrokes, getRootPane, getSize, getToolTipLocation, getToolTipText, getToolTipText, getTopLevelAncestor, getTransferHandler, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, hide, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingOrigin, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, print, printAll, printBorder, printChildren, printComponent, processComponentKeyEvent, processKeyBinding, processKeyEvent, processMouseEvent, processMouseMotionEvent, putClientProperty, registerKeyboardAction, registerKeyboardAction, removeAncestorListener, removeNotify, removeVetoableChangeListener, repaint, repaint, requestDefaultFocus, requestFocus, requestFocus, requestFocusInWindow, requestFocusInWindow, resetKeyboardActions, reshape, revalidate, scrollRectToVisible, setActionMap, setAlignmentX, setAlignmentY, setAutoscrolls, setBackground, setBorder, setComponentPopupMenu, setDebugGraphicsOptions, setDefaultLocale, setDoubleBuffered, setEnabled, setFocusTraversalKeys, setFont, setForeground, setInheritsPopupMenu, setInputMap, setInputVerifier, setMaximumSize, setMinimumSize, setNextFocusableComponent, setOpaque, setPreferredSize, setRequestFocusEnabled, setToolTipText, setTransferHandler, setUI, setVerifyInputWhenFocusTarget, setVisible, unregisterKeyboardAction, update
      • Methods inherited from class java.awt.Container

        add, add, add, add, add, addContainerListener, addImpl, addPropertyChangeListener, addPropertyChangeListener, applyComponentOrientation, areFocusTraversalKeysSet, countComponents, deliverEvent, doLayout, findComponentAt, findComponentAt, getComponent, getComponentAt, getComponentAt, getComponentCount, getComponents, getComponentZOrder, getContainerListeners, getFocusTraversalKeys, getFocusTraversalPolicy, getLayout, getMousePosition, insets, invalidate, isAncestorOf, isFocusCycleRoot, isFocusCycleRoot, isFocusTraversalPolicyProvider, isFocusTraversalPolicySet, layout, list, list, locate, minimumSize, paintComponents, preferredSize, printComponents, processContainerEvent, processEvent, remove, remove, removeAll, removeContainerListener, setComponentZOrder, setFocusCycleRoot, setFocusTraversalPolicy, setFocusTraversalPolicyProvider, setLayout, transferFocusDownCycle, validate, validateTree
      • Methods inherited from class java.awt.Component

        action, add, addComponentListener, addFocusListener, addHierarchyBoundsListener, addHierarchyListener, addInputMethodListener, addKeyListener, addMouseListener, addMouseMotionListener, addMouseWheelListener, bounds, checkImage, checkImage, coalesceEvents, contains, createImage, createImage, createVolatileImage, createVolatileImage, disableEvents, dispatchEvent, enable, enableEvents, enableInputMethods, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, firePropertyChange, getBackground, getBounds, getColorModel, getComponentListeners, getComponentOrientation, getCursor, getDropTarget, getFocusCycleRootAncestor, getFocusListeners, getFocusTraversalKeysEnabled, getFont, getForeground, getGraphicsConfiguration, getHierarchyBoundsListeners, getHierarchyListeners, getIgnoreRepaint, getInputContext, getInputMethodListeners, getInputMethodRequests, getKeyListeners, getLocale, getLocation, getLocationOnScreen, getMouseListeners, getMouseMotionListeners, getMousePosition, getMouseWheelListeners, getName, getParent, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, imageUpdate, inside, isBackgroundSet, isCursorSet, isDisplayable, isEnabled, isFocusable, isFocusOwner, isFocusTraversable, isFontSet, isForegroundSet, isLightweight, isMaximumSizeSet, isMinimumSizeSet, isPreferredSizeSet, isShowing, isValid, isVisible, keyDown, keyUp, list, list, list, location, lostFocus, mouseDown, mouseDrag, mouseEnter, mouseExit, mouseMove, mouseUp, move, nextFocus, paintAll, postEvent, prepareImage, prepareImage, processComponentEvent, processFocusEvent, processHierarchyBoundsEvent, processHierarchyEvent, processInputMethodEvent, processMouseWheelEvent, remove, removeComponentListener, removeFocusListener, removeHierarchyBoundsListener, removeHierarchyListener, removeInputMethodListener, removeKeyListener, removeMouseListener, removeMouseMotionListener, removeMouseWheelListener, removePropertyChangeListener, removePropertyChangeListener, repaint, repaint, repaint, requestFocus, requestFocus, requestFocusInWindow, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setMixingCutoutShape, setName, setSize, setSize, show, show, size, toString, transferFocus, transferFocusBackward, transferFocusUpCycle
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
    • Field Detail

      • INITIAL_STRING_WRITER_SIZE

        private static final int INITIAL_STRING_WRITER_SIZE
        See Also:
        Constant Field Values
      • client

        private final Client client
      • contextObjNameToTabbedPaneMap

        private final java.util.Map<javax.management.ObjectName,​java.awt.Component> contextObjNameToTabbedPaneMap
      • statusLogTextAreaMap

        private final java.util.Map<javax.management.ObjectName,​javax.swing.JTextArea> statusLogTextAreaMap
      • tabbedPaneContexts

        private javax.swing.JTabbedPane tabbedPaneContexts
    • Constructor Detail

      • ClientGui

        public ClientGui​(Client client)
                  throws java.io.IOException,
                         javax.management.JMException
        Throws:
        java.io.IOException
        javax.management.JMException
    • Method Detail

      • createWidgets

        private void createWidgets()
      • populateWidgets

        private void populateWidgets()
                              throws java.io.IOException,
                                     javax.management.JMException
        Throws:
        java.io.IOException
        javax.management.JMException
      • addWidgetForLoggerContext

        private void addWidgetForLoggerContext​(LoggerContextAdminMBean ctx)
                                        throws javax.management.MalformedObjectNameException,
                                               java.io.IOException,
                                               javax.management.InstanceNotFoundException
        Throws:
        javax.management.MalformedObjectNameException
        java.io.IOException
        javax.management.InstanceNotFoundException
      • removeWidgetForLoggerContext

        private void removeWidgetForLoggerContext​(javax.management.ObjectName loggerContextObjName)
                                           throws javax.management.JMException,
                                                  java.io.IOException
        Throws:
        javax.management.JMException
        java.io.IOException
      • createTextArea

        private javax.swing.JTextArea createTextArea()
      • scroll

        private javax.swing.JScrollPane scroll​(javax.swing.JTextArea text)
      • registerListeners

        private void registerListeners​(StatusLoggerAdminMBean status)
                                throws javax.management.InstanceNotFoundException,
                                       javax.management.MalformedObjectNameException,
                                       java.io.IOException
        Throws:
        javax.management.InstanceNotFoundException
        javax.management.MalformedObjectNameException
        java.io.IOException
      • handleNotification

        public void handleNotification​(javax.management.Notification notif,
                                       java.lang.Object paramObject)
        Specified by:
        handleNotification in interface javax.management.NotificationListener
      • handleNotificationInAwtEventThread

        private void handleNotificationInAwtEventThread​(javax.management.Notification notif,
                                                        java.lang.Object paramObject)
      • onMBeanRegistered

        private void onMBeanRegistered​(javax.management.ObjectName mbeanName)
        Called every time a Log4J2 MBean was registered in the MBean server.
        Parameters:
        mbeanName - ObjectName of the registered Log4J2 MBean
      • onMBeanUnregistered

        private void onMBeanUnregistered​(javax.management.ObjectName mbeanName)
        Called every time a Log4J2 MBean was unregistered from the MBean server.
        Parameters:
        mbeanName - ObjectName of the unregistered Log4J2 MBean
      • handle

        private void handle​(java.lang.String msg,
                            java.lang.Exception ex)
      • main

        public static void main​(java.lang.String[] args)
                         throws java.lang.Exception
        Connects to the specified location and shows this panel in a window.

        Useful links: http://www.componative.com/content/controller/developer/insights /jconsole3/

        Parameters:
        args - must have at least one parameter, which specifies the location to connect to. Must be of the form host:port or service:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi or service:jmx:rmi://<host>:<port>/jndi/rmi://<host>:<port>/jmxrmi
        Throws:
        java.lang.Exception - if anything goes wrong
      • usage

        private static void usage()
      • installLookAndFeel

        private static void installLookAndFeel()