use of org.talend.schemas.esb.locator._2011._11.EntryType in project tesb-rt-se by Talend.
the class LocatorSoapServiceImpl method registerEndpoint.
/**
* Register the endpoint for given service.
*
* @param input
* RegisterEndpointRequestType encapsulate name of service and
* endpointURL. Must not be <code>null</code>
*/
@Override
public void registerEndpoint(QName serviceName, String endpointURL, org.talend.schemas.esb.locator._2011._11.BindingType binding, org.talend.schemas.esb.locator._2011._11.TransportType transport, SLPropertiesType properties) throws ServiceLocatorFault, InterruptedExceptionFault {
if (LOG.isLoggable(Level.FINE)) {
LOG.fine("Registering endpoint " + endpointURL + " for service " + serviceName + "...");
}
try {
initLocator();
BindingType bindingType = binding == null ? BindingType.SOAP11 : BindingType.valueOf(binding.value());
TransportType transportType = transport == null ? TransportType.HTTP : TransportType.valueOf(transport.value());
SLPropertiesImpl slProps = null;
if (properties != null) {
slProps = new SLPropertiesImpl();
List<EntryType> entries = properties.getEntry();
for (EntryType entry : entries) {
slProps.addProperty(entry.getKey(), entry.getValue());
}
}
SimpleEndpoint eprProvider = new SimpleEndpoint(serviceName, endpointURL, bindingType, transportType, slProps);
locatorClient.register(eprProvider, true);
} catch (ServiceLocatorException e) {
ServiceLocatorFaultDetail serviceFaultDetail = new ServiceLocatorFaultDetail();
serviceFaultDetail.setLocatorFaultDetail(serviceName.toString() + "throws ServiceLocatorFault");
throw new ServiceLocatorFault(e.getMessage(), serviceFaultDetail);
} catch (InterruptedException e) {
InterruptionFaultDetail interruptionFaultDetail = new InterruptionFaultDetail();
interruptionFaultDetail.setInterruptionDetail(serviceName.toString() + "throws InterruptionFault");
throw new InterruptedExceptionFault(e.getMessage(), interruptionFaultDetail);
}
}
use of org.talend.schemas.esb.locator._2011._11.EntryType in project tesb-rt-se by Talend.
the class LocatorSoapServiceTest method registerEndpointWithOptionalParameter.
@Test
public void registerEndpointWithOptionalParameter() throws InterruptedExceptionFault, ServiceLocatorFault {
LocatorSoapServiceImpl lps = new LocatorSoapServiceImpl();
lps.setLocatorClient(sl);
SLPropertiesType value = new SLPropertiesType();
EntryType e = new EntryType();
e.setKey(PROPERTY_KEY);
e.getValue().add(PROPERTY_VALUE1);
e.getValue().add(PROPERTY_VALUE2);
value.getEntry().add(e);
lps.registerEndpoint(SERVICE_NAME, ENDPOINTURL, null, null, value);
}
use of org.talend.schemas.esb.locator._2011._11.EntryType in project airavata by apache.
the class StorageCreator method findServerName.
protected String findServerName(String besUrl, EndpointReferenceType smsEpr) throws Exception {
int besIndex = besUrl.indexOf("StorageFactory?res");
String ss = besUrl.substring(0, besIndex);
ss = ss + "Registry";
EndpointReferenceType eprt = WSUtilities.makeServiceEPR(ss, "default_registry", Registry.REGISTRY_PORT);
RegistryClient registry = new RegistryClient(eprt, secProps);
// first, check if server name is already in the EPR...
String dn = WSUtilities.extractServerIDFromEPR(smsEpr);
if (dn != null) {
return dn;
}
// otherwise find a matching service in the registry
String url = smsEpr.getAddress().getStringValue();
if (url.contains("/services/"))
url = url.substring(0, url.indexOf("/services"));
if (log.isDebugEnabled())
log.debug("Checking for services at " + url);
for (EntryType entry : registry.listEntries()) {
if (entry.getMemberServiceEPR().getAddress().getStringValue().startsWith(url)) {
dn = WSUtilities.extractServerIDFromEPR(entry.getMemberServiceEPR());
if (dn != null) {
return dn;
}
}
}
return null;
}
Aggregations