use of org.talend.esb.sam.agent.feature.EventFeature in project tesb-rt-se by Talend.
the class RuntimeESBConsumerTest method noPropertiesSetProvidesEmptyArgumentList.
@Test
public void noPropertiesSetProvidesEmptyArgumentList() throws Exception {
QName serviceName = new QName("http://services.talend.org/test/Library/1.0", "LibraryProvider");
QName portName = new QName("http://services.talend.org/test/Library/1.0", "LibraryHttpPort");
QName operationName = new QName("http://services.talend.org/test/Library/1.0", "seekBook");
String publishedEndpointUrl = "local://LibraryHttpPort";
String wsdlURL = "classpath:/conf/libraryService/Library.wsdl";
boolean useServiceLocator = false;
LocatorFeature locatorFeature = null;
Map<String, String> locatorProps = new HashMap<String, String>();
EventFeature samFeature = null;
Map<String, String> samProps = new HashMap<String, String>();
boolean useServiceRegistry = false;
EsbSecurity esbSecurity = null;
Policy policy = null;
String username = "";
String password = "";
String alias = "";
Map<String, String> clientProperties = new HashMap<String, String>();
String roleName = "";
Object securityToken = null;
Crypto cryptoProvider = null;
SecurityArguments securityArguments = new SecurityArguments(esbSecurity, policy, username, password, alias, clientProperties, roleName, securityToken, cryptoProvider);
Bus bus = null;
boolean logging = false;
List<Header> soapHeaders = new ArrayList<Header>();
Feature httpHeadersFeature = null;
boolean enhancedResponse = false;
Object correlationIDCallbackHandler = null;
final boolean useGZipCompression = false;
RuntimeESBConsumer consumer = new RuntimeESBConsumer(serviceName, portName, operationName, publishedEndpointUrl, wsdlURL, useServiceLocator, locatorFeature, locatorProps, samFeature, samProps, useServiceRegistry, securityArguments, bus, logging, soapHeaders, httpHeadersFeature, enhancedResponse, correlationIDCallbackHandler, useGZipCompression);
String requestString = "<ns2:SearchFor xmlns:ns2=\"http://types.talend.org/test/Library/Common/1.0\" " + "xmlns:ns3=\"http://types.talend.org/test/GeneralObjects/ErrorHandling/1.0\">" + "<AuthorLastName>Icebear</AuthorLastName><ISBNNumber>123</ISBNNumber></ns2:SearchFor>";
consumer.invoke(getDocumentFromString(requestString));
}
use of org.talend.esb.sam.agent.feature.EventFeature in project tesb-rt-se by Talend.
the class SamEnablingInterceptorProvider method process.
static void process(Message message) {
AssertionInfoMap aim = message.get(AssertionInfoMap.class);
if (aim != null) {
Collection<AssertionInfo> ais = aim.get(SamEnablingPolicyBuilder.SAM_ENABLE);
if (ais != null) {
for (AssertionInfo ai : ais) {
if (ai.getAssertion() instanceof SamEnablingPolicy) {
SamEnablingPolicy vPolicy = (SamEnablingPolicy) ai.getAssertion();
AppliesToType appliesToType = vPolicy.getAppliesToType();
// Service service = ServiceModelUtil.getService(message
// .getExchange());
Exchange ex = message.getExchange();
Bus b = ex.getBus();
if (b.getFeatures().contains(EventFeature.class)) {
ai.setAsserted(true);
return;
}
Endpoint ep = ex.getEndpoint();
Bundle bundle = FrameworkUtil.getBundle(SamEnablingInterceptorProvider.class);
EventFeature eventFeature = null;
if (bundle != null) {
// OSGi
BundleContext context = FrameworkUtil.getBundle(SamEnablingInterceptorProvider.class).getBundleContext();
ServiceReference sref = context.getServiceReference(EventFeature.class.getName());
eventFeature = (EventFeature) context.getService(sref);
} else {
// non-OSGi
if (springContext == null) {
throw springContextException;
}
eventFeature = (EventFeature) springContext.getBean("eventFeature");
}
if (MessageUtils.isRequestor(message)) {
if (MessageUtils.isOutbound(message)) {
// REQ_OUT
if ((appliesToType == AppliesToType.consumer || appliesToType == AppliesToType.always)) {
Client cli = ex.get(Client.class);
if (!cli.getOutInterceptors().contains(WireTapOut.class)) {
eventFeature.initialize(cli, b);
List<Interceptor<? extends Message>> outInterceptors = cli.getOutInterceptors();
message.getInterceptorChain().add(outInterceptors);
outInterceptors.getClass();
}
}
} else {
// RESP_IN
if ((appliesToType == AppliesToType.consumer || appliesToType == AppliesToType.always)) {
Client cli = ex.get(Client.class);
eventFeature.initialize(cli, b);
}
}
} else {
ServerRegistry registry = b.getExtension(ServerRegistry.class);
List<Server> servers = registry.getServers();
if (MessageUtils.isOutbound(message)) {
// RESP_OUT
if ((appliesToType == AppliesToType.provider || appliesToType == AppliesToType.always)) {
for (Server sr : servers) {
EndpointInfo ei = sr.getEndpoint().getEndpointInfo();
if (null != ei && ei.getAddress().equals(ep.getEndpointInfo().getAddress())) {
eventFeature.initialize(sr, b);
}
}
}
} else {
// REQ_IN
if ((appliesToType == AppliesToType.provider || appliesToType == AppliesToType.always)) {
for (Server sr : servers) {
EndpointInfo ei = sr.getEndpoint().getEndpointInfo();
if (null != ei && ei.getAddress().equals(ep.getEndpointInfo().getAddress()) && (!sr.getEndpoint().getInInterceptors().contains(WireTapIn.class))) {
eventFeature.initialize(sr, b);
List<Interceptor<? extends Message>> inInterceptors = sr.getEndpoint().getInInterceptors();
message.getInterceptorChain().add(inInterceptors);
}
}
}
}
}
}
}
}
for (AssertionInfo ai : ais) {
ai.setAsserted(true);
}
}
}
Aggregations