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.NotificationListenerSwing 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 Clientclientprivate java.util.Map<javax.management.ObjectName,java.awt.Component>contextObjNameToTabbedPaneMapprivate static intINITIAL_STRING_WRITER_SIZEprivate static longserialVersionUIDprivate java.util.Map<javax.management.ObjectName,javax.swing.JTextArea>statusLogTextAreaMapprivate javax.swing.JTabbedPanetabbedPaneContexts-
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 voidaddWidgetForLoggerContext(LoggerContextAdminMBean ctx)private javax.swing.JTextAreacreateTextArea()private voidcreateWidgets()private voidhandle(java.lang.String msg, java.lang.Exception ex)voidhandleNotification(javax.management.Notification notif, java.lang.Object paramObject)private voidhandleNotificationInAwtEventThread(javax.management.Notification notif, java.lang.Object paramObject)private static voidinstallLookAndFeel()static voidmain(java.lang.String[] args)Connects to the specified location and shows this panel in a window.private voidonMBeanRegistered(javax.management.ObjectName mbeanName)Called every time a Log4J2 MBean was registered in the MBean server.private voidonMBeanUnregistered(javax.management.ObjectName mbeanName)Called every time a Log4J2 MBean was unregistered from the MBean server.private voidpopulateWidgets()private voidregisterListeners(StatusLoggerAdminMBean status)private voidremoveWidgetForLoggerContext(javax.management.ObjectName loggerContextObjName)private javax.swing.JScrollPanescroll(javax.swing.JTextArea text)private static voidusage()-
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.IOExceptionjavax.management.JMException
-
-
Method Detail
-
createWidgets
private void createWidgets()
-
populateWidgets
private void populateWidgets() throws java.io.IOException, javax.management.JMException- Throws:
java.io.IOExceptionjavax.management.JMException
-
addWidgetForLoggerContext
private void addWidgetForLoggerContext(LoggerContextAdminMBean ctx) throws javax.management.MalformedObjectNameException, java.io.IOException, javax.management.InstanceNotFoundException
- Throws:
javax.management.MalformedObjectNameExceptionjava.io.IOExceptionjavax.management.InstanceNotFoundException
-
removeWidgetForLoggerContext
private void removeWidgetForLoggerContext(javax.management.ObjectName loggerContextObjName) throws javax.management.JMException, java.io.IOException- Throws:
javax.management.JMExceptionjava.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.InstanceNotFoundExceptionjavax.management.MalformedObjectNameExceptionjava.io.IOException
-
handleNotification
public void handleNotification(javax.management.Notification notif, java.lang.Object paramObject)- Specified by:
handleNotificationin 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.ExceptionConnects 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:portorservice:jmx:rmi:///jndi/rmi://<host>:<port>/jmxrmiorservice: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()
-
-