use of java.net.URL in project camel by apache.
the class OsgiFactoryFinder method getResource.
// The clazz can make sure we get right version of class that we need
public BundleEntry getResource(String name, Class<?> clazz) {
BundleEntry entry = null;
Bundle[] bundles = null;
bundles = bundleContext.getBundles();
URL url;
for (Bundle bundle : bundles) {
url = bundle.getEntry(getResourcePath() + name);
if (url != null && checkCompatibility(bundle, clazz)) {
entry = new BundleEntry();
entry.url = url;
entry.bundle = bundle;
break;
}
}
return entry;
}
use of java.net.URL in project camel by apache.
the class BundleDelegatingClassLoader method findResource.
protected URL findResource(String name) {
LOG.trace("FindResource: {}", name);
URL resource = bundle.getResource(name);
if (classLoader != null && resource == null) {
resource = classLoader.getResource(name);
}
return resource;
}
use of java.net.URL in project camel by apache.
the class CxfMessageHelperTest method testGetCxfInMessage.
// setup the default context for testing
@Test
public void testGetCxfInMessage() throws Exception {
HeaderFilterStrategy headerFilterStrategy = new CxfHeaderFilterStrategy();
org.apache.camel.Exchange exchange = new DefaultExchange(context);
// String
exchange.getIn().setBody("hello world");
org.apache.cxf.message.Message message = CxfMessageHelper.getCxfInMessage(headerFilterStrategy, exchange, false);
// test message
InputStream is = message.getContent(InputStream.class);
assertNotNull("The input stream should not be null", is);
assertEquals("Don't get the right message", toString(is), "hello world");
// DOMSource
URL request = this.getClass().getResource("RequestBody.xml");
File requestFile = new File(request.toURI());
FileInputStream inputStream = new FileInputStream(requestFile);
XMLStreamReader xmlReader = StaxUtils.createXMLStreamReader(inputStream);
DOMSource source = new DOMSource(StaxUtils.read(xmlReader));
exchange.getIn().setBody(source);
message = CxfMessageHelper.getCxfInMessage(headerFilterStrategy, exchange, false);
is = message.getContent(InputStream.class);
assertNotNull("The input stream should not be null", is);
assertEquals("Don't get the right message", toString(is), REQUEST_STRING);
// File
exchange.getIn().setBody(requestFile);
message = CxfMessageHelper.getCxfInMessage(headerFilterStrategy, exchange, false);
is = message.getContent(InputStream.class);
assertNotNull("The input stream should not be null", is);
assertEquals("Don't get the right message", toString(is), REQUEST_STRING);
// transport header's case insensitiveness
// String
exchange.getIn().setBody("hello world");
exchange.getIn().setHeader("soapAction", "urn:hello:world");
message = CxfMessageHelper.getCxfInMessage(headerFilterStrategy, exchange, false);
// test message
Map<String, List<String>> headers = CastUtils.cast((Map<?, ?>) message.get(Message.PROTOCOL_HEADERS));
// verify there is no duplicate
assertNotNull("The headers must be present", headers);
assertTrue("There must be one header entry", headers.size() == 1);
// verify the soapaction can be retrieved in case-insensitive ways
verifyHeader(headers, "soapaction", "urn:hello:world");
verifyHeader(headers, "SoapAction", "urn:hello:world");
verifyHeader(headers, "SOAPAction", "urn:hello:world");
}
use of java.net.URL in project camel by apache.
the class AbstractCxfWsdlFirstTest method testInvokingServiceFromCXFClient.
@Test
public void testInvokingServiceFromCXFClient() throws Exception {
JaxwsTestHandler fromHandler = getMandatoryBean(JaxwsTestHandler.class, "fromEndpointJaxwsHandler");
fromHandler.reset();
JaxwsTestHandler toHandler = getMandatoryBean(JaxwsTestHandler.class, "toEndpointJaxwsHandler");
toHandler.reset();
URL wsdlURL = getClass().getClassLoader().getResource("person.wsdl");
PersonService ss = new PersonService(wsdlURL, new QName("http://camel.apache.org/wsdl-first", "PersonService"));
Person client = ss.getSoap();
((BindingProvider) client).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:" + getPort2() + "/" + getClass().getSimpleName() + "/PersonService/");
Holder<String> personId = new Holder<String>();
personId.value = "hello";
Holder<String> ssn = new Holder<String>();
Holder<String> name = new Holder<String>();
client.getPerson(personId, ssn, name);
assertEquals("we should get the right answer from router", "Bonjour", name.value);
personId.value = "";
try {
client.getPerson(personId, ssn, name);
fail("We expect to get the UnknowPersonFault here");
} catch (UnknownPersonFault fault) {
// We expect to get fault here
}
personId.value = "Invoking getPerson with invalid length string, expecting exception...xxxxxxxxx";
try {
client.getPerson(personId, ssn, name);
fail("We expect to get the WebSerivceException here");
} catch (WebServiceException ex) {
// Caught expected WebServiceException here
assertTrue("Should get the xml vaildate error! " + ex.getMessage(), ex.getMessage().indexOf("MyStringType") > 0 || ex.getMessage().indexOf("Could not parse the XML stream") != -1);
}
verifyJaxwsHandlers(fromHandler, toHandler);
}
use of java.net.URL in project camel by apache.
the class CXFWsdlOnlyPayloadModeMultiPartNoSpringTest method testMultiPartMessage.
@Test
public void testMultiPartMessage() {
URL wsdlURL = getClass().getClassLoader().getResource("person.wsdl");
PersonMultiPartService ss = new PersonMultiPartService(wsdlURL, QName.valueOf(getServiceName()));
PersonMultiPartPortType client = ss.getPersonMultiPartPort();
((BindingProvider) client).getRequestContext().put(BindingProvider.ENDPOINT_ADDRESS_PROPERTY, "http://localhost:" + port2 + "/CXFWsdlOnlyPayloadModeMultiPartNoSpringTest/PersonMultiPart");
Holder<Integer> ssn = new Holder<Integer>();
ssn.value = 0;
Holder<String> name = new Holder<String>();
name.value = "Unknown name";
client.getPersonMultiPartOperation("foo", 0, name, ssn);
assertEquals("New Person Name", name.value);
assertTrue(123456789 == ssn.value);
}
Aggregations