use of org.oasisOpen.docs.wsrf.sg2.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;
}
use of org.oasisOpen.docs.wsrf.sg2.EntryType in project midpoint by Evolveum.
the class ParamsTypeUtil method createEntryElement.
/**
* Temporary workaround, brutally hacked -- so that the conversion
* of OperationResult into OperationResultType 'somehow' works, at least to the point
* where when we:
* - have OR1
* - serialize it into ORT1
* - then deserialize into OR2
* - serialize again into ORT2
* so we get ORT1.equals(ORT2) - at least in our simple test case :)
*
* FIXME: this should be definitely reworked
*
* @param entry
* @return
*/
private static EntryType createEntryElement(String key, Serializable value) {
EntryType entryType = new EntryType();
entryType.setKey(key);
if (value != null) {
Document doc = DOMUtil.getDocument();
if (value instanceof ObjectType && ((ObjectType) value).getOid() != null) {
// Store only reference on the OID. This is faster and getObject can be used to retrieve
// the object if needed. Although is does not provide 100% accuracy, it is a good tradeoff.
setObjectReferenceEntry(entryType, ((ObjectType) value));
// these values should be put 'as they are', in order to be deserialized into themselves
} else if (value instanceof String || value instanceof Integer || value instanceof Long) {
entryType.setEntryValue(new JAXBElement<Serializable>(SchemaConstants.C_PARAM_VALUE, Serializable.class, value));
} else if (XmlTypeConverter.canConvert(value.getClass())) {
// try {
// entryType.setEntryValue(new JXmlTypeConverter.toXsdElement(value, SchemaConstants.C_PARAM_VALUE, doc, true));
// } catch (SchemaException e) {
// LOGGER.error("Cannot convert value {} to XML: {}",value,e.getMessage());
// setUnknownJavaObjectEntry(entryType, value);
// }
} else if (value instanceof Element || value instanceof JAXBElement<?>) {
entryType.setEntryValue((JAXBElement<?>) value);
// FIXME: this is really bad code ... it means that 'our' JAXB object should be put as is
} else if ("com.evolveum.midpoint.xml.ns._public.common.common_3".equals(value.getClass().getPackage().getName())) {
JAXBElement<Object> o = new JAXBElement<Object>(SchemaConstants.C_PARAM_VALUE, Object.class, value);
entryType.setEntryValue(o);
} else {
setUnknownJavaObjectEntry(entryType, value);
}
}
return entryType;
}
use of org.oasisOpen.docs.wsrf.sg2.EntryType in project tesb-rt-se by Talend.
the class LocatorRestServiceTest method registerEndpointExpectedLocatorException.
@Test(expected = WebApplicationException.class)
public void registerEndpointExpectedLocatorException() throws ServiceLocatorException, InterruptedException {
sl.register(endpoint(), EasyMock.eq(true));
EasyMock.expectLastCall().andStubThrow(new ServiceLocatorException("test"));
replayAll();
RegisterEndpointRequest req = new RegisterEndpointRequest();
EntryType entryType = new EntryType();
entryType.setKey("test");
entryType.getValue().add("test");
req.getEntryType().add(entryType);
req.setEndpointURL(ENDPOINTURL);
req.setServiceName(SERVICE_NAME.toString());
lps.registerEndpoint(req);
}
use of org.oasisOpen.docs.wsrf.sg2.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.oasisOpen.docs.wsrf.sg2.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);
}
Aggregations