private void initLinks() {
if (_pinfo.getInvokeArray() != null) {
for (TInvoke invoke : _pinfo.getInvokeArray()) {
String plinkName = invoke.getPartnerLink();
TService service = invoke.getService();
// NOTE: service can be null for partner links
if (service == null)
continue;
if (__log.isDebugEnabled()) {
__log.debug("Processing <invoke> element for process " + _pinfo.getName() + ": partnerlink " + plinkName + " --> "
+ service);
}
_partnerRoleInitialValues.put(plinkName, new Endpoint(service.getName(), service.getPort()));
{
OFailureHandling g = null;
if (invoke.isSetFailureHandling()) {
FailureHandling f = invoke.getFailureHandling();
g = new OFailureHandling();
if (f.isSetFaultOnFailure()) g.faultOnFailure = f.getFaultOnFailure();
if (f.isSetRetryDelay()) g.retryDelay = f.getRetryDelay();
if (f.isSetRetryFor()) g.retryFor = f.getRetryFor();
}
PartnerRoleConfig c = new PartnerRoleConfig(g, invoke.getUsePeer2Peer());
if (__log.isDebugEnabled()) {
__log.debug("PartnerRoleConfig for " + plinkName + " " + c.failureHandling + " usePeer2Peer: " + c.usePeer2Peer);
}
_partnerRoleConfig.put(plinkName, c);
}
}
}
if (_pinfo.getProvideArray() != null) {
for (TProvide provide : _pinfo.getProvideArray()) {
String plinkName = provide.getPartnerLink();
TService service = provide.getService();
if (service == null) {
String errmsg = "Error in <provide> element for process " + _pinfo.getName() + "; partnerlink " + plinkName
+ "did not identify an endpoint";
__log.error(errmsg);
throw new ContextException(errmsg);
}
if (__log.isDebugEnabled()) {
__log.debug("Processing <provide> element for process " + _pinfo.getName() + ": partnerlink " + plinkName + " --> "
+ service.getName() + " : " + service.getPort());
}
_myRoleEndpoints.put(plinkName, new Endpoint(service.getName(), service.getPort()));
if (provide.isSetEnableSharing()) {
_sharedServices.add(service.getName());
}
}
}
}