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?
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.