org.apache.juddi.rmi
Class UDDICustodyTransferService

java.lang.Object
  extended by java.rmi.server.RemoteObject
      extended by java.rmi.server.RemoteServer
          extended by java.rmi.server.UnicastRemoteObject
              extended by org.apache.juddi.rmi.UDDICustodyTransferService
All Implemented Interfaces:
Serializable, Remote, UDDICustodyTransferPortType

public class UDDICustodyTransferService
extends UnicastRemoteObject
implements UDDICustodyTransferPortType

UDDISecurityPortType wrapper so it can be exposed as a service over RMI.

Author:
Kurt T Stam
See Also:
Serialized Form

Field Summary
 
Fields inherited from class java.rmi.server.RemoteObject
ref
 
Constructor Summary
protected UDDICustodyTransferService(int port)
           
 
Method Summary
 void discardTransferToken(DiscardTransferToken body)
          The discard_transferToken API is a client API used to discard a transferToken obtained through the get_transferToken API at the same node.
 void getTransferToken(String authInfo, KeyBag keyBag, javax.xml.ws.Holder<String> nodeID, javax.xml.ws.Holder<XMLGregorianCalendar> expirationTime, javax.xml.ws.Holder<byte[]> opaqueToken)
          The get_transferToken API is a client API used to initiate the transfer of custody of one or more businessEntity or tModel entities from one node to another.
 void transferEntities(TransferEntities body)
          The transfer_entities API is used by publishers to whom custody is being transferred to actually perform the transfer.
 
Methods inherited from class java.rmi.server.UnicastRemoteObject
clone, exportObject, exportObject, exportObject, unexportObject
 
Methods inherited from class java.rmi.server.RemoteServer
getClientHost, getLog, setLog
 
Methods inherited from class java.rmi.server.RemoteObject
equals, getRef, hashCode, toString, toStub
 
Methods inherited from class java.lang.Object
finalize, getClass, notify, notifyAll, wait, wait, wait
 

Constructor Detail

UDDICustodyTransferService

protected UDDICustodyTransferService(int port)
                              throws RemoteException
Throws:
RemoteException
Method Detail

discardTransferToken

public void discardTransferToken(DiscardTransferToken body)
                          throws DispositionReportFaultMessage,
                                 RemoteException
Description copied from interface: UDDICustodyTransferPortType
The discard_transferToken API is a client API used to discard a transferToken obtained through the get_transferToken API at the same node. This API accepts either a transferToken or a keyBag as parameters to remove the permission to transfer data associated with a particular transferToken. If a keyBag is provided, all tokens corresponding to the keys in the keyBag will be discarded and will no longer be valid for custody or ownership transfer after the discard_transferToken is processed, irrespective of whether the keys match any known business or tmodelKey values. In the event that the keyBag represents a subset of the keyBag for one or more transferToken elements, the transferToken is discarded and will no longer be valid for transferring any entity. If the token passed in the transferToken argument does not match an existing token known to the system, no action is taken and success is reported. Keys in the keyBag argument that do not have a corresponding token are ignored.

Specified by:
discardTransferToken in interface UDDICustodyTransferPortType
Parameters:
body -

·         authInfo: This OPTIONAL argument is an element that contains an authentication token.  Authentication tokens are obtained using the get_authToken API call or through some other means external to this specification, and represent the identity of the publisher at a UDDI node.

·         transferToken: This is a known transferToken obtained by a publisher at the node where the get_transferToken API was invoked.

·         keyBag: One or more uddiKeys associated either with businessEntity or tModel entities owned by the publisher that were to be transferred to some other publisher and/or node in the registry as the result of invocation of get_transferToken.  At least one businessKey or tModelKey must be provided in a keyBag.

Throws:
DispositionReportFaultMessage
RemoteException -

If an error occurs in processing this API call, a dispositionReport structure MUST be returned to the caller in a SOAP Fault. See Section 4.8 Success and Error Reporting.  In addition to the errors common to all APIs, the following error information is relevant here:

·         E_invalidKeyPassed: signifies that one of the uddiKey values passed for entities to be transferred did not match with any known businessKey or tModelKey values.  The key and element or attribute that caused the problem SHOULD be clearly indicated in the error text.


getTransferToken

public void getTransferToken(String authInfo,
                             KeyBag keyBag,
                             javax.xml.ws.Holder<String> nodeID,
                             javax.xml.ws.Holder<XMLGregorianCalendar> expirationTime,
                             javax.xml.ws.Holder<byte[]> opaqueToken)
                      throws DispositionReportFaultMessage,
                             RemoteException
Description copied from interface: UDDICustodyTransferPortType
The get_transferToken API is a client API used to initiate the transfer of custody of one or more businessEntity or tModel entities from one node to another. As previously stated, the two nodes may or may not be distinct; intra-node transfer between two publishers is simply a degenerate case in which node custody does not change. No actual transfer takes place with the invocation of this API. Instead, this API obtains permission from the custodial node, in the form of a transferToken, to perform the transfer. The publisher who will be recipient of the transferToken returned by this API must invoke the transfer_entities API on the target custodial node to actually transfer the entities.

Specified by:
getTransferToken in interface UDDICustodyTransferPortType
Parameters:
authInfo - · authInfo: This OPTIONAL argument is an element that contains an authentication token. Authentication tokens are obtained using the get_authToken API call or through some other means external to this specification and represent the identity of the publisher at a UDDI node.
keyBag - keyBag: One or more key (of type uddi:uddiKey) associated either with businessEntity or tModel entities owned by the publisher that are to be transferred to some other publisher and/or node in the registry. At least one businessKey or tModelKey must be provided.
nodeID - this is a return value. The transfer token consists of a nodeID, an expirationTime and an opaqueToken. The nodeID is used during the transfer_entities API by the recipient node to confirm with the relinquishing custodial node that the custody transfer is authorized and still valid. The nodeID of the transferToken is the value of the nodeID element of the Replication Configuration Structure. Refer to Section 7.5.2 Configuration of a UDDI Node – operator Element.
expirationTime - this is a return value. The expirationTime, defined as xsd:dateTime, represents the time at which the transfer token is no longer valid.
opaqueToken - this is a return value. The opaqueToken is only meaningful to the node that issues it. The opaqueToken is defined as xsd:base64Binary to allow for a RECOMMENDED encryption of the token under the relinquishing custody node’s own encryption key.
Throws:
DispositionReportFaultMessage
RemoteException -

If an error occurs in processing this API call, a dispositionReport structure MUST be returned to the caller in a SOAP Fault. See section 4.8 Success and Error Reporting.  In addition to the errors common to all APIs, the following error information is relevant here:

·         E_invalidKeyPassed: signifies that one of the uddiKey values passed for entities to be transferred did not match with any known businessKey or tModelKey values.  The key and element or attribute that caused the problem SHOULD be clearly indicated in the error text.

·         E_tokenAlreadyExists: signifies that one or more of the businessKey or tModelKey elements that identify entities to be transferred are associated with a transferToken that is still valid and has not been discarded, used or expired.  The error text SHOULD clearly indicate which entity keys caused the error.

·         E_userMismatch: signifies that one or more of the businessKey or tModelKey elements that identify entities to be transferred are not owned by the publisher identified by the authInfo element.  The error text SHOULD clearly indicate which entity keys caused the error


transferEntities

public void transferEntities(TransferEntities body)
                      throws DispositionReportFaultMessage,
                             RemoteException
Description copied from interface: UDDICustodyTransferPortType
The transfer_entities API is used by publishers to whom custody is being transferred to actually perform the transfer. The recipient publisher must have an unexpired transferToken that was issued by the custodial node for the entities being transferred.

Specified by:
transferEntities in interface UDDICustodyTransferPortType
Parameters:
body - authInfo: This OPTIONAL argument is an element that contains an authentication token. Authentication tokens are obtained using the get_authToken API call or through some other means external to this specification, and represent the identity of the publisher at a UDDI node, in this case, the new owner of the entities being transferred. · transferToken: Required argument obtained from the custodial node via a call to get_transferToken by the publisher requesting a transfer of custody. The transferToken contains an opaque token, an expiration date, and the identity of the custodial node. The transferToken represents permission to transfer the entities that have been identified via a prior call to the get_transferToken API. · keyBag: One or more uddiKeys associated with businessEntity or tModel entities that are to be transferred to this publisher at the target node in the registry. The set of keys must be the same as the set of keys in the keyBag of the get_transferToken API call from which the given transferToken was once obtained.
Throws:
DispositionReportFaultMessage
RemoteException


Copyright © 2004-2013 The Apache Software Foundation. All Rights Reserved.