camel-flatpack does not work inside of an OSGi bundle in ServiceMix 4
---------------------------------------------------------------------
Key: CAMEL-1788
URL: https://issues.apache.org/activemq/browse/CAMEL-1788
Project: Apache Camel
Issue Type: Bug
Components: camel-flatpack
Affects Versions: 1.6.0
Environment: Flatpack 3.1.1
Fuse ESB 4.1.0.0 (Apache Servicemix)
Camel 1.6.0.0-fuse
Reporter: Scott Parkerson
The following code will not work under Servicemix, but works fine in standalone
Camel:
{code:java}
FlatpackDataFormat fpdf = new FlatpackDataFormat();
fpdf.setDefinition(new ClassPathResource("dataspecs/mypzmap.xml"));
fpdf.setFixed(false);
fpdf.setDelimiter('|');
fpdf.setIgnoreFirstRecord(false);
from("activemq:" +
incomingQueueName).convertBodyTo(String.class).unmarshal(fpdf).to("activemq:input_to_call");
{code}
This NPEs when attempting to unmarshal under SMX 4, but works fine in Camel
1.6.x. I've traced down the problem to this code in Flatpack:
{code:title=net/sf/flatpack/util/ParseUtils.java}
public static Properties loadConvertProperties() throws IOException {
final Properties pzConvertProps = new Properties();
final URL url =
ParserUtils.class.getClassLoader().getResource("fpconvert.properties");
pzConvertProps.load(url.openStream());
return pzConvertProps;
}
{code}
The classloader under SMX is the bundle's classloader, which (of course) cannot
find fpconvert.properties, which makes url null, and then causes
pzConvertProps.load(...) to raise an NPE.
I know that this isn't strictly a bug in Camel or SMX, but I thought I'd file
it here as an action item to either change upstream flatpack or note a possible
workaround on the wiki.
I suspect that this is a problem with all versions of Camel + SMX including the
latest version.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.