Package org.apache.logging.log4j.jmx.gui
Class ClientGui
- java.lang.Object
-
- java.awt.Component
-
- java.awt.Container
-
- javax.swing.JComponent
-
- javax.swing.JPanel
-
- org.apache.logging.log4j.jmx.gui.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.
-
-
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
-
-
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
-
-
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
-
-
-
-
Field Detail
-
serialVersionUID
private static final long serialVersionUID
- See Also:
- Constant Field Values
-
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 interfacejavax.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 formhost:port
orservice:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmi
orservice: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()
-
-