Ibm streams Java operator classloading issue

91 views Asked by At

I'm using IBM Streams 4.1.1 I can't use Elasticsearch client in my Java operator, because it has transitive dependency guava-18.0 lib

 <groupId>org.elasticsearch</groupId>
 <artifactId>elasticsearch</artifactId>
 <version>2.3.2</version>

When I submit my job I see NoSuchMethodError : com/google/common/util/concurrent/MoreExecutors.derectExecutor

It happens because IBM stream has in ext/lib guava-14. How to solve this issue?

1

There are 1 answers

0
Aleksandr Filichkin On BEST ANSWER

I got the asnwer : https://developer.ibm.com/answers/questions/332772/java-operator-classloader-issue.html

This is fixed in IBM Streams 4.2.

The Streams runtime now only includes the documented jars in the classloader available to the operator (in addition to any the operator specifies):

Operator API and samples
Apache Log4j
Apache Common Math
JSON4J

,This issue has been fixed in IBM Streams 4.2, so that the operator class path provided by the Streams runtime is limited to the operator apis, Apache common math, JSON4J and Apache log4j as documented.