[ https://issues.apache.org/jira/browse/FLINK-6173?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16205993#comment-16205993 ]
ASF GitHub Bot commented on FLINK-6173: --------------------------------------- Github user twalthr commented on a diff in the pull request: https://github.com/apache/flink/pull/4837#discussion_r144866086 --- Diff: flink-libraries/flink-table/pom.xml --- @@ -252,6 +261,29 @@ under the License. <pattern>org.eigenbase</pattern> <shadedPattern>org.apache.flink.shaded.calcite.org.eigenbase</shadedPattern> </relocation> + <relocation> + <pattern>org.pentaho</pattern> + <shadedPattern>org.apache.flink.shaded.calcite.org.pentaho</shadedPattern> + </relocation> + + <!-- flink-table dependencies --> + <relocation> + <pattern>org.apache.commons</pattern> + <shadedPattern>org.apache.flink.shaded.org.apache.commons</shadedPattern> + </relocation> + <relocation> + <pattern>org.reflections</pattern> + <shadedPattern>org.apache.flink.shaded.org.reflections</shadedPattern> + </relocation> + <relocation> + <pattern>org.joda.time</pattern> + <shadedPattern>org.apache.flink.shaded.org.joda.time</shadedPattern> + </relocation> + <!-- not relocated for now --> --- End diff -- The problem is that Calcite is using the Janino properties file for determining the location of the compiler. We could relocate Janino as well but then we also have to change the contents of the properties file. Have you done this before? > flink-table not pack-in com.fasterxml.jackson.* in after #FLINK-5414 > -------------------------------------------------------------------- > > Key: FLINK-6173 > URL: https://issues.apache.org/jira/browse/FLINK-6173 > Project: Flink > Issue Type: Bug > Components: Table API & SQL > Reporter: Zhenghua Gao > Assignee: Timo Walther > Priority: Blocker > Fix For: 1.4.0 > > > Currently, flink-table will pack-in com.fasterxml.jackson.* and rename them > to org.apache.flink.shaded.calcite.com.fasterxml.jackson.* > If a project depends on flink-table, and uses fasterxml as follows(function > explain uses fasterxml indirectly): > {code:title=WordCount.scala|borderStyle=solid} > object WordCountWithTable { > def main(args: Array[String]): Unit = { > // set up execution environment > val env = ExecutionEnvironment.getExecutionEnvironment > val tEnv = TableEnvironment.getTableEnvironment(env) > val input = env.fromElements(WC("hello", 1), WC("hello", 1), WC("ciao", > 1)) > val expr = input.toTable(tEnv) > val result = expr > .groupBy('word) > .select('word, 'frequency.sum as 'frequency) > .filter('frequency === 2) > println(tEnv.explain(result)) > result.toDataSet[WC].print() > } > case class WC(word: String, frequency: Long) > } > {code} > It actually uses org.apache.flink.shaded.calcite.com.fasterxml.jackson.* > I found after FLINK-5414, flink-table didn't pack-in com.fasterxml.jackson.* > and the project would throw class not found exception. > {code:borderStyle=solid} > Exception in thread "main" java.lang.NoClassDefFoundError: > org/apache/flink/shaded/calcite/com/fasterxml/jackson/databind/ObjectMapper > at > org.apache.flink.table.explain.PlanJsonParser.getSqlExecutionPlan(PlanJsonParser.java:32) > at > org.apache.flink.table.api.BatchTableEnvironment.explain(BatchTableEnvironment.scala:143) > at > org.apache.flink.table.api.BatchTableEnvironment.explain(BatchTableEnvironment.scala:164) > at > org.apache.flink.quickstart.WordCountWithTable$.main(WordCountWithTable.scala:34) > at > org.apache.flink.quickstart.WordCountWithTable.main(WordCountWithTable.scala) > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) > at > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) > at > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) > at java.lang.reflect.Method.invoke(Method.java:498) > at com.intellij.rt.execution.application.AppMain.main(AppMain.java:144) > Caused by: java.lang.ClassNotFoundException: > org.apache.flink.shaded.calcite.com.fasterxml.jackson.databind.ObjectMapper > at java.net.URLClassLoader.findClass(URLClassLoader.java:381) > at java.lang.ClassLoader.loadClass(ClassLoader.java:424) > at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:331) > at java.lang.ClassLoader.loadClass(ClassLoader.java:357) > ... 10 more > {code} -- This message was sent by Atlassian JIRA (v6.4.14#64029)