Package org.opends.server.protocols.jmx
Class JmxClientConnection
- java.lang.Object
-
- org.opends.server.api.ClientConnection
-
- org.opends.server.protocols.jmx.JmxClientConnection
-
- All Implemented Interfaces:
EventListener,NotificationListener
public class JmxClientConnection extends ClientConnection implements NotificationListener
This class defines the set of methods and structures that must be implemented by a Directory Server client connection.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from class org.opends.server.api.ClientConnection
ClientConnection.Transaction
-
-
Field Summary
Fields Modifier and Type Field Description protected StringjmxConnectionIDThe JMX connection ID for this client connection.-
Fields inherited from class org.opends.server.api.ClientConnection
authenticationInfo, bindInProgress, saslBindInProgress, startTLSInProgress
-
-
Constructor Summary
Constructors Constructor Description JmxClientConnection(JmxConnectionHandler jmxConnectionHandler, AuthenticationInfo authInfo)Creates a new Jmx client connection that will be authenticated as as the specified user.
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcancelAllOperations(CancelRequest cancelRequest)Attempts to cancel all operations in progress on this connection.voidcancelAllOperationsExcept(CancelRequest cancelRequest, int messageID)Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.CancelResultcancelOperation(int messageID, CancelRequest cancelRequest)Attempts to cancel the specified operation.voiddisconnect(DisconnectReason disconnectReason, boolean sendNotification, org.forgerock.i18n.LocalizableMessage message)Closes the connection to the client, optionally sending it a message indicating the reason for the closure.protected voidfinalize()Called by the Gc when the object is garbage collected Release the cursor in case the iterator was badly used and releaseCursor was never called.StringgetClientAddress()Retrieves a string representation of the address of the client.intgetClientPort()Retrieves the port number for this connection on the client system.ConnectionHandler<?>getConnectionHandler()Retrieves the connection handler that accepted this client connection.longgetConnectionID()Retrieves the unique identifier that has been assigned to this connection.InetAddressgetLocalAddress()Retrieves thejava.net.InetAddressfor the Directory Server system to which the client has established the connection.StringgetMonitorSummary()Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.longgetNumberOfOperations()To be implemented.OperationgetOperationInProgress(int messageID)Retrieves the operation in progress with the specified message ID.Collection<Operation>getOperationsInProgress()Retrieves the set of operations in progress for this client connection.StringgetProtocol()Retrieves the protocol that the client is using to communicate with the Directory Server.InetAddressgetRemoteAddress()Retrieves thejava.net.InetAddressassociated with the remote client system.StringgetSecurityMechanism()Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.StringgetServerAddress()Retrieves a string representation of the address on the server to which the client connected.intgetServerPort()Retrieves the port number for this connection on the server system if available.intgetSSF()Return the Security Strength Factor of a client connection.voidhandleNotification(Notification notif, Object handback)booleanisConnectionValid()Returns whether the Directory Server believes this connection to be valid and available for communication.booleanisSecure()Indicates whether this client connection is currently using a secure mechanism to communicate with the server.intnextMessageID()Retrieves the message ID that should be used for the next Jmx operation.longnextOperationID()Retrieves the operation ID that should be used for the next Jmx operation.InternalSearchOperationprocessSearch(SearchRequest request)Processes an Jmx search operation with the provided information.booleanremoveOperationInProgress(int messageID)Removes the provided operation from the set of operations in progress for this client connection.protected booleansendIntermediateResponseMessage(IntermediateResponse intermediateResponse)Sends the provided intermediate response message to the client.voidsendResponse(Operation operation)Sends a response to the client based on the information in the provided operation.voidsendSearchEntry(SearchOperation searchOperation, SearchResultEntry searchEntry)Sends the provided search result entry to the client.booleansendSearchReference(SearchOperation searchOperation, SearchResultReference searchReference)Sends the provided search result reference to the client.voidtoString(StringBuilder buffer)Appends a string representation of this client connection to the provided buffer.-
Methods inherited from class org.opends.server.api.ClientConnection
deregisterPersistentSearch, finalizeConnectionInternal, finishBind, finishSaslBind, finishStartTLS, getAuthenticationInfo, getCertificateAlias, getChannel, getClientHostPort, getConnectTime, getConnectTimeString, getGroups, getIdleTime, getIdleTimeLimit, getKeyManagerProviderDN, getLookthroughLimit, getMaxBlockedWriteTimeLimit, getPersistentSearches, getSASLAuthStateInfo, getServerHostPort, getSizeLimit, getSocketChannel, getTimeLimit, getTransaction, getTrustManagerProviderDN, getWriteSelector, hasAllPrivileges, hasPersistentSearch, hasPrivilege, hasPrivilege, isInnerConnection, isMemberOf, mustChangePassword, registerPersistentSearch, sendIntermediateResponse, setAuthenticationInfo, setIdleTimeLimit, setLookthroughLimit, setMustChangePassword, setSASLAuthStateInfo, setSizeLimit, setTimeLimit, setUnauthenticated, startTransaction, toString, updateAuthenticationInfo, updatePrivileges
-
-
-
-
Field Detail
-
jmxConnectionID
protected String jmxConnectionID
The JMX connection ID for this client connection.
-
-
Constructor Detail
-
JmxClientConnection
public JmxClientConnection(JmxConnectionHandler jmxConnectionHandler, AuthenticationInfo authInfo)
Creates a new Jmx client connection that will be authenticated as as the specified user.- Parameters:
jmxConnectionHandler- The connection handler on which we should be registeredauthInfo- the User authentication info
-
-
Method Detail
-
handleNotification
public void handleNotification(Notification notif, Object handback)
- Specified by:
handleNotificationin interfaceNotificationListener
-
nextOperationID
public long nextOperationID()
Retrieves the operation ID that should be used for the next Jmx operation.- Returns:
- The operation ID that should be used for the next Jmx operation.
-
nextMessageID
public int nextMessageID()
Retrieves the message ID that should be used for the next Jmx operation.- Returns:
- The message ID that should be used for the next Jmx operation.
-
getConnectionID
public long getConnectionID()
Retrieves the unique identifier that has been assigned to this connection.- Specified by:
getConnectionIDin classClientConnection- Returns:
- The unique identifier that has been assigned to this connection.
-
getConnectionHandler
public ConnectionHandler<?> getConnectionHandler()
Retrieves the connection handler that accepted this client connection.- Specified by:
getConnectionHandlerin classClientConnection- Returns:
- The connection handler that accepted this client connection.
-
getProtocol
public String getProtocol()
Retrieves the protocol that the client is using to communicate with the Directory Server.- Specified by:
getProtocolin classClientConnection- Returns:
- The protocol that the client is using to communicate with the Directory Server.
-
getClientAddress
public String getClientAddress()
Retrieves a string representation of the address of the client.- Specified by:
getClientAddressin classClientConnection- Returns:
- A string representation of the address of the client.
-
getClientPort
public int getClientPort()
Retrieves the port number for this connection on the client system.- Specified by:
getClientPortin classClientConnection- Returns:
- The port number for this connection on the client system.
-
getServerAddress
public String getServerAddress()
Retrieves a string representation of the address on the server to which the client connected.- Specified by:
getServerAddressin classClientConnection- Returns:
- A string representation of the address on the server to which the client connected.
-
getServerPort
public int getServerPort()
Retrieves the port number for this connection on the server system if available.- Specified by:
getServerPortin classClientConnection- Returns:
- The port number for this connection on the server system or -1 if there is no server port associated with this connection (e.g. internal client).
-
getRemoteAddress
public InetAddress getRemoteAddress()
Retrieves thejava.net.InetAddressassociated with the remote client system.- Specified by:
getRemoteAddressin classClientConnection- Returns:
- The
java.net.InetAddressassociated with the remote client system. It may benullif the client is not connected over an IP-based connection.
-
getLocalAddress
public InetAddress getLocalAddress()
Retrieves thejava.net.InetAddressfor the Directory Server system to which the client has established the connection.- Specified by:
getLocalAddressin classClientConnection- Returns:
- The
java.net.InetAddressfor the Directory Server system to which the client has established the connection. It may benullif the client is not connected over an IP-based connection.
-
isConnectionValid
public boolean isConnectionValid()
Returns whether the Directory Server believes this connection to be valid and available for communication.- Specified by:
isConnectionValidin classClientConnection- Returns:
- true if the connection is valid, false otherwise
-
isSecure
public boolean isSecure()
Indicates whether this client connection is currently using a secure mechanism to communicate with the server. Note that this may change over time based on operations performed by the client or server (e.g., it may go fromfalsetotrueif the client uses the StartTLS extended operation).- Specified by:
isSecurein classClientConnection- Returns:
trueif the client connection is currently using a secure mechanism to communicate with the server, orfalseif not.
-
getSecurityMechanism
public String getSecurityMechanism()
Retrieves the human-readable name of the security mechanism that is used to protect communication with this client.- Returns:
- The human-readable name of the security mechanism that is used to
protect communication with this client, or
nullif no security is in place.
-
sendResponse
public void sendResponse(Operation operation)
Sends a response to the client based on the information in the provided operation.- Specified by:
sendResponsein classClientConnection- Parameters:
operation- The operation for which to send the response.
-
processSearch
public InternalSearchOperation processSearch(SearchRequest request)
Processes an Jmx search operation with the provided information.- Parameters:
request- The search request.- Returns:
- A reference to the internal search operation that was processed and contains information about the result of the processing as well as lists of the matching entries and search references.
-
sendSearchEntry
public void sendSearchEntry(SearchOperation searchOperation, SearchResultEntry searchEntry) throws DirectoryException
Sends the provided search result entry to the client.- Specified by:
sendSearchEntryin classClientConnection- Parameters:
searchOperation- The search operation with which the entry is associated.searchEntry- The search result entry to be sent to the client.- Throws:
DirectoryException- If a problem occurs while attempting to send the entry to the client and the search should be terminated.
-
sendSearchReference
public boolean sendSearchReference(SearchOperation searchOperation, SearchResultReference searchReference) throws DirectoryException
Sends the provided search result reference to the client.- Specified by:
sendSearchReferencein classClientConnection- Parameters:
searchOperation- The search operation with which the reference is associated.searchReference- The search result reference to be sent to the client.- Returns:
trueif the client is able to accept referrals, orfalseif the client cannot handle referrals and no more attempts should be made to send them for the associated search operation.- Throws:
DirectoryException- If a problem occurs while attempting to send the reference to the client and the search should be terminated.
-
sendIntermediateResponseMessage
protected boolean sendIntermediateResponseMessage(IntermediateResponse intermediateResponse)
Sends the provided intermediate response message to the client.- Specified by:
sendIntermediateResponseMessagein classClientConnection- Parameters:
intermediateResponse- The intermediate response message to be sent.- Returns:
trueif processing on the associated operation should continue, orfalseif not.
-
disconnect
public void disconnect(DisconnectReason disconnectReason, boolean sendNotification, org.forgerock.i18n.LocalizableMessage message)
Closes the connection to the client, optionally sending it a message indicating the reason for the closure. Note that the ability to send a notice of disconnection may not be available for all protocols or under all circumstances.- Specified by:
disconnectin classClientConnection- Parameters:
disconnectReason- The disconnect reason that provides the generic cause for the disconnect.sendNotification- Indicates whether to try to provide notification to the client that the connection will be closed.message- The message to send to the client. It may benullif no notification is to be sent.
-
getOperationsInProgress
public Collection<Operation> getOperationsInProgress()
Retrieves the set of operations in progress for this client connection. This list must not be altered by any caller.- Specified by:
getOperationsInProgressin classClientConnection- Returns:
- The set of operations in progress for this client connection.
-
getOperationInProgress
public Operation getOperationInProgress(int messageID)
Retrieves the operation in progress with the specified message ID.- Specified by:
getOperationInProgressin classClientConnection- Parameters:
messageID- The message ID of the operation to retrieve.- Returns:
- The operation in progress with the specified message ID, or
nullif no such operation could be found.
-
removeOperationInProgress
public boolean removeOperationInProgress(int messageID)
Removes the provided operation from the set of operations in progress for this client connection. Note that this does not make any attempt to cancel any processing that may already be in progress for the operation.- Specified by:
removeOperationInProgressin classClientConnection- Parameters:
messageID- The message ID of the operation to remove from the set of operations in progress.- Returns:
trueif the operation was found and removed from the set of operations in progress, orfalseif not.
-
cancelOperation
public CancelResult cancelOperation(int messageID, CancelRequest cancelRequest)
Attempts to cancel the specified operation.- Specified by:
cancelOperationin classClientConnection- Parameters:
messageID- The message ID of the operation to cancel.cancelRequest- An object providing additional information about how the cancel should be processed.- Returns:
- A cancel result that either indicates that the cancel was successful or provides a reason that it was not.
-
cancelAllOperations
public void cancelAllOperations(CancelRequest cancelRequest)
Attempts to cancel all operations in progress on this connection.- Specified by:
cancelAllOperationsin classClientConnection- Parameters:
cancelRequest- An object providing additional information about how the cancel should be processed.
-
cancelAllOperationsExcept
public void cancelAllOperationsExcept(CancelRequest cancelRequest, int messageID)
Attempts to cancel all operations in progress on this connection except the operation with the specified message ID.- Specified by:
cancelAllOperationsExceptin classClientConnection- Parameters:
cancelRequest- An object providing additional information about how the cancel should be processed.messageID- The message ID of the operation that should not be canceled.
-
getMonitorSummary
public String getMonitorSummary()
Retrieves a one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler. It should be in a format that is both humand readable and machine parseable (e.g., a space-delimited name-value list, with quotes around the values).- Specified by:
getMonitorSummaryin classClientConnection- Returns:
- A one-line summary of this client connection in a form that is suitable for including in the monitor entry for the associated connection handler.
-
toString
public void toString(StringBuilder buffer)
Appends a string representation of this client connection to the provided buffer.- Specified by:
toStringin classClientConnection- Parameters:
buffer- The buffer to which the information should be appended.
-
finalize
protected void finalize()
Called by the Gc when the object is garbage collected Release the cursor in case the iterator was badly used and releaseCursor was never called.
-
getNumberOfOperations
public long getNumberOfOperations()
To be implemented.- Specified by:
getNumberOfOperationsin classClientConnection- Returns:
- number of operations performed on this connection
-
getSSF
public int getSSF()
Return the Security Strength Factor of a client connection.- Specified by:
getSSFin classClientConnection- Returns:
- An integer representing the SSF value of a connection.
-
-