org.apache.excalibur.instrument.client.http
Class HTTPInstrumentManagerConnection

java.lang.Object
  extended by java.awt.Component
      extended by java.awt.Container
          extended by javax.swing.JComponent
              extended by org.apache.excalibur.instrument.client.InstrumentManagerConnection
                  extended by org.apache.excalibur.instrument.client.http.HTTPInstrumentManagerConnection
All Implemented Interfaces:
java.awt.image.ImageObserver, java.awt.MenuContainer, java.io.Serializable, java.lang.Runnable, org.apache.avalon.framework.logger.LogEnabled

public class HTTPInstrumentManagerConnection
extends InstrumentManagerConnection

A Connection to the remote InstrumentManager which connects using the HTTP connector.

Since:
4.1
Version:
CVS $Revision: 1.4 $ $Date: 2004/02/28 11:47:23 $
Author:
Avalon Development Team
See Also:
Serialized Form

Nested Class Summary
 
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
private  boolean m_connected
          Flag which keeps track of whether or not the remote server was there the last time we attempted to connect.
private  boolean m_disabled
          If we ever decide that we are not talking to an Instrument Manager then disable the connection to avoid pounding the remote server with lots of 404 requests.
private  HTTPInstrumentSampleData[] m_leasedSampleAry
           
private  java.util.List m_leasedSamples
           
private  HTTPInstrumentManagerData m_manager
           
private  java.net.URL m_url
           
 
Fields inherited from class javax.swing.JComponent
accessibleContext, 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
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
HTTPInstrumentManagerConnection(java.net.URL url)
          Creates a new HTTPInstrumentManagerConnection.
 
Method Summary
 void enableLogging(org.apache.avalon.framework.logger.Logger logger)
           
 InstrumentManagerData getInstrumentManager()
          Returns the Instrument Manager.
 java.lang.Object getKey()
          Returns the key used to identify this object.
(package private)  org.apache.avalon.framework.configuration.Configuration getState(java.lang.String path)
          Requests the current state of the object at the specified path.
 java.lang.String getTabTitle()
          Returns the title to display in the tab for the connection.
(package private)  java.net.URL getURL()
          Returns the URL of the remote InstrumentManager.
protected  void invokeGC()
          Invokes GC on the JVM running the InstrumentManager.
 boolean isConnected()
          Returns true if connected.
 void loadState(org.apache.avalon.framework.configuration.Configuration state)
          Loads the state from a Configuration object.
 org.apache.avalon.framework.configuration.Configuration saveState()
          Saves the current state into a Configuration.
 void updateSampleFrames()
          Updates all registered SampleFrames with the latest data from the server.
(package private)  java.lang.String urlEncode(java.lang.String val)
          URL encode the specified string.
 
Methods inherited from class org.apache.excalibur.instrument.client.InstrumentManagerConnection
getListenerArray, getLogger, getSampleFrameArray, getTabTooltip, getTitle, init, isDeleted, run, toString, update
 
Methods inherited from class javax.swing.JComponent
addAncestorListener, addNotify, addVetoableChangeListener, computeVisibleRect, contains, createToolTip, disable, enable, firePropertyChange, firePropertyChange, firePropertyChange, fireVetoableChange, getAccessibleContext, 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, getUIClassID, getVerifyInputWhenFocusTarget, getVetoableChangeListeners, getVisibleRect, getWidth, getX, getY, grabFocus, isDoubleBuffered, isLightweightComponent, isManagingFocus, isOpaque, isOptimizedDrawingEnabled, isPaintingForPrint, isPaintingTile, isRequestFocusEnabled, isValidateRoot, paint, paintBorder, paintChildren, paintComponent, paintImmediately, paintImmediately, paramString, 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, updateUI
 
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, getPeer, getPropertyChangeListeners, getPropertyChangeListeners, getSize, getToolkit, getTreeLock, gotFocus, handleEvent, hasFocus, hide, 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, resize, resize, setBounds, setBounds, setComponentOrientation, setCursor, setDropTarget, setFocusable, setFocusTraversalKeysEnabled, setIgnoreRepaint, setLocale, setLocation, setLocation, setName, setSize, setSize, show, show, size, transferFocus, transferFocusBackward, transferFocusUpCycle
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

m_url

private java.net.URL m_url

m_connected

private boolean m_connected
Flag which keeps track of whether or not the remote server was there the last time we attempted to connect.


m_disabled

private boolean m_disabled
If we ever decide that we are not talking to an Instrument Manager then disable the connection to avoid pounding the remote server with lots of 404 requests.


m_manager

private HTTPInstrumentManagerData m_manager

m_leasedSamples

private java.util.List m_leasedSamples

m_leasedSampleAry

private HTTPInstrumentSampleData[] m_leasedSampleAry
Constructor Detail

HTTPInstrumentManagerConnection

public HTTPInstrumentManagerConnection(java.net.URL url)
Creates a new HTTPInstrumentManagerConnection.

Method Detail

enableLogging

public void enableLogging(org.apache.avalon.framework.logger.Logger logger)
Specified by:
enableLogging in interface org.apache.avalon.framework.logger.LogEnabled
Overrides:
enableLogging in class InstrumentManagerConnection

getKey

public java.lang.Object getKey()
Returns the key used to identify this object.

Specified by:
getKey in class InstrumentManagerConnection
Returns:
The key used to identify this object.

isConnected

public boolean isConnected()
Returns true if connected.

Specified by:
isConnected in class InstrumentManagerConnection
Returns:
True if connected.

getInstrumentManager

public InstrumentManagerData getInstrumentManager()
Returns the Instrument Manager.

Specified by:
getInstrumentManager in class InstrumentManagerConnection
Returns:
The Instrument Manager.

getTabTitle

public java.lang.String getTabTitle()
Returns the title to display in the tab for the connection.

Overrides:
getTabTitle in class InstrumentManagerConnection
Returns:
The tab title.

invokeGC

protected void invokeGC()
Invokes GC on the JVM running the InstrumentManager.

Specified by:
invokeGC in class InstrumentManagerConnection

saveState

public org.apache.avalon.framework.configuration.Configuration saveState()
Saves the current state into a Configuration.

Overrides:
saveState in class InstrumentManagerConnection
Returns:
The state as a Configuration.

loadState

public void loadState(org.apache.avalon.framework.configuration.Configuration state)
               throws org.apache.avalon.framework.configuration.ConfigurationException
Loads the state from a Configuration object.

Overrides:
loadState in class InstrumentManagerConnection
Parameters:
state - Configuration object to load state from.
Throws:
org.apache.avalon.framework.configuration.ConfigurationException - If there were any problems loading the state.

urlEncode

java.lang.String urlEncode(java.lang.String val)
URL encode the specified string.

Parameters:
val - String to be URL encoded.
Returns:
The URL encoded string.

updateSampleFrames

public void updateSampleFrames()
Updates all registered SampleFrames with the latest data from the server. The status of all Sample Frames is also handled by this method, so it must handle disconnected connections and missing or expired samples correctly. This method overrides the default to implement a batch update to get all snapshots from the server in a single request.

Overrides:
updateSampleFrames in class InstrumentManagerConnection

getURL

java.net.URL getURL()
Returns the URL of the remote InstrumentManager.

Returns:
The URL of the remote InstrumentManager.

getState

org.apache.avalon.framework.configuration.Configuration getState(java.lang.String path)
Requests the current state of the object at the specified path. If the request fails for any reason, including not being valid content then the method will return null.

Parameters:
path - The path of the object whose state is requested.
Returns:
The state as a Configuration object, or null if it failed.