Hi, I've been trying to upgrade to Storm 0.10.0 version. While it worked great in 0.9.5, the uber-jar is now failing.
I'm using such dependencies : <dependency> <groupId>com.optimaize.languagedetector</groupId> <artifactId>language-detector</artifactId> <version>0.5</version> </dependency> Which uses guava 16.0.1 under the hood. And I'm building the uber-jar like so : <plugin> <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-shade-plugin</artifactId> <version>2.4.2</version> <configuration> <createDependencyReducedPom>true</createDependencyReducedPom> </configuration> <executions> <execution> <phase>package</phase> <goals> <goal>shade</goal> </goals> <configuration> <filters> <filter> <artifact>*:*</artifact> <excludes> <exclude>META-INF/*.SF</exclude> <exclude>META-INF/*.DSA</exclude> <exclude>META-INF/*.RSA</exclude> </excludes> </filter> </filters> <transformers> <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer" > <resource>core-site.xml</resource> <file>src/main/resources/core-site.xml</file> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer" > <resource>hdfs-site.xml</resource> <file>src/main/resources/hdfs-site.xml</file> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer" > <resource>ant-parsefilters.json</resource> <file>src/main/resources/my-parsefilters.json</file> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer" > <resource>ant-urlfilters.json</resource> <file>src/main/resources/my-urlfilters.json</file> </transformer> <transformer implementation="org.apache.maven.plugins.shade.resource.ServicesResourceTransformer" /> <transformer implementation="org.apache.maven.plugins.shade.resource.ManifestResourceTransformer" > <mainClass>com....</mainClass> </transformer> </transformers> </configuration> </execution> </executions> </plugin> Whatever combination of dependencies on guava I try : - Specify it as a dependency on its own; - exclude it from the lang-detector dependency, ... I always end with an issue while initializing this component : java.lang.NoSuchMethodError: com.google.common.base.Splitter.splitToList(Ljava/lang/CharSequence;)Ljava/util/List; at com.optimaize.langdetect.i18n.LdLocale.fromString(LdLocale.java:77) at com.optimaize.langdetect.profiles.BuiltInLanguages.<clinit>(BuiltInLanguages.java:21) at com.optimaize.langdetect.profiles.LanguageProfileReader.readAllBuiltIn(LanguageProfileReader.java:118) at com....ml.LangClassifier.<init>(LangClassifier.java:31) at com....bigdata.storm.bolts.LangBolt.prepare(LangBolt.java:83) at backtype.storm.daemon.executor$fn__5694$fn__5707.invoke(executor.clj:757) at backtype.storm.util$async_loop$fn__545.invoke(util.clj:477) at clojure.lang.AFn.run(AFn.java:22) at java.lang.Thread.run(Thread.java:745) I really can't understand how to pack the dependencies in the uber-jar so that it is resolved. I've noticed several tickets about this. Thought I haven't found how to handle this issue. Does anybody knows the correct way to handle this ? -- BR, Aurelie ānā