void configureDestinationFromRoutingPath ( List fwdPath ) throws JMSException { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . entry ( this , tc , "configureDestinationFromRoutingPath" , fwdPath ) ; // Clear the cache of the encoding string since we are changing properties. clearCachedEncodings ( ) ; // Clear the producerDestinationAddress, as changing the FRP would make it out-of-date clearCachedProducerDestinationAddress ( ) ; // Store the property if it has entries... if ( ( fwdPath != null ) && ( fwdPath . size ( ) > 0 ) ) { // There is at least one element in this path. // The last element in the list is used to configure the 'big' destination. int lastEltIndex = fwdPath . size ( ) - 1 ; // The last element of the reverse routing path becomes the destination, and // anything left over goes into the forward path of the destination. SIDestinationAddress lastElt = ( SIDestinationAddress ) fwdPath . get ( lastEltIndex ) ; // Fill in the destination name information early so that it is there when // the forward routing path is set. String destName = lastElt . getDestinationName ( ) ; setDestName ( destName ) ; // Set up the bus name to point at the bus of the last element as // well. //not setting the bus name for Liberty .. as in other config paths the bus name was not set. // this is leading the same destination with different properties. //String destBusName = lastElt.getBusName(); //setBusName(destBusName); // If there is more than one element then we store the rest of the path // in the wrapper object. if ( fwdPath . size ( ) > 1 ) { properties . put ( FORWARD_ROUTING_PATH , new StringArrayWrapper ( fwdPath ) ) ; } // Otherwise, i.e. if there is only one element, we stash away the destination // as we need to use it as the producerDestinationAddress. else { if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isDebugEnabled ( ) ) SibTr . debug ( this , tc , "caching producerDestinationAddress: " + lastElt ) ; producerDestinationAddress = lastElt ; } } // ...otherwise, remove it else { properties . remove ( FORWARD_ROUTING_PATH ) ; } if ( TraceComponent . isAnyTracingEnabled ( ) && tc . isEntryEnabled ( ) ) SibTr . exit ( this , tc , "configureDestinationFromRoutingPath" ) ; }
configureReplyDestinationFromRoutingPath Configure the ReplyDestination from the ReplyRoutingPath . The RRP from the message is used as the FRP for this Reply Destination so most of the function is performed by configureDestinationFromRoutingPath . This method keeps hold of the bus names as well as the destination names .