[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15332785#comment-15332785 ] Enis Soztutar commented on PHOENIX-2535: Great work!. bq. Enis Soztutar Interesting question. Do we want to publish fat shaded jars for client or I can just skip the install phase for client and server. I don't remember for sure, but we were discussing that it would be good to publish the artifact for full client? I think it will help. Some libraries are publishing fat-jars into maven which is very convenient for users. I think we should definitely do that. Let's open a follow up issue. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15332645#comment-15332645 ] Josh Elser commented on PHOENIX-2535: - Great work, [~sergey.soldatov]. This is a great step in the right direction! > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15332638#comment-15332638 ] Hudson commented on PHOENIX-2535: - FAILURE: Integrated in Phoenix-master #1261 (See [https://builds.apache.org/job/Phoenix-master/1261/]) PHOENIX-2535 Create shaded clients (thin + thick) (ssa: rev 4f6ee74c0a7b94282575300cfd698e78198685fb) * phoenix-queryserver/pom.xml * phoenix-queryserver/src/main/java/org/apache/phoenix/queryserver/server/PhoenixMetaFactoryImpl.java * phoenix-assembly/pom.xml * phoenix-assembly/src/build/client-minimal.xml * phoenix-server/src/test/java/org/apache/phoenix/DriverCohabitationTest.java * phoenix-queryserver-client/src/main/resources/META-INF/services/java.sql.Driver * phoenix-server-client/src/main/resources/version/org-apache-phoenix-remote-jdbc.properties * phoenix-queryserver/src/it/java/org/apache/phoenix/end2end/QueryServerThread.java * phoenix-queryserver/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java * phoenix-assembly/src/build/components-major-client.xml * phoenix-server-client/src/build/thin-client.xml * phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerBasicsIT.java * phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/Main.java * phoenix-assembly/src/build/components-minimal.xml * phoenix-assembly/src/build/client-without-hbase.xml * phoenix-core/src/main/java/org/apache/phoenix/query/QueryServicesOptions.java * phoenix-queryserver/src/main/java/org/apache/phoenix/queryserver/server/Main.java * phoenix-queryserver/src/main/java/org/apache/phoenix/queryserver/server/PhoenixMetaFactory.java * phoenix-queryserver-client/src/main/java/org/apache/phoenix/queryserver/client/Driver.java * phoenix-server/pom.xml * phoenix-server-client/pom.xml * phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/PhoenixMetaFactory.java * phoenix-server/src/build/query-server-runnable.xml * phoenix-assembly/src/build/components/all-common-jars.xml * bin/log4j.properties * phoenix-queryserver-client/src/main/java/org/apache/phoenix/queryserver/client/ThinClientUtil.java * phoenix-assembly/src/build/server.xml * phoenix-server/src/it/java/org/apache/phoenix/end2end/QueryServerThread.java * phoenix-server/src/it/resources/log4j.properties * bin/phoenix_utils.py * phoenix-hive/pom.xml * phoenix-queryserver/src/test/java/org/apache/phoenix/DriverCohabitationTest.java * phoenix-assembly/src/build/client.xml * pom.xml * phoenix-server-client/src/main/java/org/apache/phoenix/queryserver/client/ThinClientUtil.java * bin/tephra * phoenix-server-client/src/main/resources/META-INF/services/java.sql.Driver * phoenix-queryserver-client/pom.xml * phoenix-client/pom.xml * phoenix-queryserver/src/build/query-server-runnable.xml * phoenix-server-client/src/main/java/org/apache/phoenix/queryserver/client/Driver.java * bin/queryserver.py * phoenix-assembly/src/build/client-spark.xml * phoenix-server/src/main/java/org/apache/phoenix/queryserver/server/PhoenixMetaFactoryImpl.java * phoenix-queryserver/src/it/resources/log4j.properties * phoenix-queryserver-client/src/main/resources/version/org-apache-phoenix-remote-jdbc.properties > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15332571#comment-15332571 ] Sergey Soldatov commented on PHOENIX-2535: -- [~jamestaylor], [~elserj], [~enis], [~mujtabachohan] thank you for the review/comments. Committed to the master and 4.x branches. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15331151#comment-15331151 ] James Taylor commented on PHOENIX-2535: --- Great! [~elserj] already +1'ed it, so I'm +1 too. Thanks! > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15331149#comment-15331149 ] Sergey Soldatov commented on PHOENIX-2535: -- [~jamestaylor] actually there was an another commit that fixed install goal and removed the stuff mentioned by [~elserj]. I don't quite understand how those notifications works. Sometimes they appears here, sometimes not. I think it's ready if there is no other questions. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15331143#comment-15331143 ] James Taylor commented on PHOENIX-2535: --- [~sergey.soldatov] - is this good to go for 4.8 release? Can we just skip install phase for now and do that in a follow up JIRA if needed? WDYT, [~enis]? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15321757#comment-15321757 ] Sergey Soldatov commented on PHOENIX-2535: -- [~enis] Interesting question. Do we want to publish fat shaded jars for client or I can just skip the install phase for client and server. I don't remember for sure, but we were discussing that it would be good to publish the artifact for full client? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15321607#comment-15321607 ] Enis Soztutar commented on PHOENIX-2535: I did a {{mvn clean install -DskipTests}} , which failed with the patch: {code} [INFO] Replacing /Users/enis/projects/git-repos/phoenix/phoenix-client/target/phoenix-4.8.0-HBase-1.2-SNAPSHOT-client.jar with /Users/enis/projects/git-repos/phoenix/phoenix-client/target/phoenix-client-4.8.0-HBase-1.2-SNAPSHOT-shaded.jar [INFO] [INFO] --- maven-install-plugin:2.5.1:install (default-install) @ phoenix-client --- [INFO] [INFO] Reactor Summary: [INFO] [INFO] Apache Phoenix SUCCESS [2.044s] [INFO] Phoenix Core .. SUCCESS [37.499s] [INFO] Phoenix - Flume ... SUCCESS [1.686s] [INFO] Phoenix - Pig . SUCCESS [1.081s] [INFO] Phoenix Query Server Client ... SUCCESS [5.403s] [INFO] Phoenix Query Server .. SUCCESS [3.574s] [INFO] Phoenix - Pherf ... SUCCESS [3.717s] [INFO] Phoenix - Spark ... SUCCESS [17.787s] [INFO] Phoenix - Hive SUCCESS [13.561s] [INFO] Phoenix Client FAILURE [49.333s] [INFO] Phoenix Server SKIPPED [INFO] Phoenix Assembly .. SKIPPED [INFO] Phoenix - Tracing Web Application . SKIPPED [INFO] [INFO] BUILD FAILURE [INFO] [INFO] Total time: 2:15.989s [INFO] Finished at: Wed Jun 08 15:46:32 PDT 2016 [INFO] Final Memory: 119M/663M [INFO] [ERROR] Failed to execute goal org.apache.maven.plugins:maven-install-plugin:2.5.1:install (default-install) on project phoenix-client: The packaging for this project did not assign a file to the build artifact -> [Help 1] {code} > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15321155#comment-15321155 ] Josh Elser commented on PHOENIX-2535: - bq. Going to pull down Sergey Soldatov's latest and verify it locally. I think it's good but I want to do a quick run-through to doublecheck. Did some simple testing of sqlline.py and sqlline-thin.py locally with HBase 1.2.2-SNAPSHOT and it works for me. +1 > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15320764#comment-15320764 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66280325 --- Diff: phoenix-queryserver/pom.xml --- @@ -24,6 +26,50 @@ org.apache.maven.plugins maven-failsafe-plugin + +org.apache.maven.plugins +maven-shade-plugin + + +query-server +package + + shade + + + phoenix-${project.version}-queryserver + false + true + false + + + org.apache.phoenix:phoenix-server --- End diff -- Shouldn't these be phoenix-queryserver and phoenix-queryserver-client? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318918#comment-15318918 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66113124 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client + jar + + +true + +true +true +${project.basedir}/.. +org.apache.phoenix.shaded + + + + + + +org.apache.maven.plugins +maven-site-plugin + + true + + + + +org.apache.maven.plugins +maven-jar-plugin + + +default-jar +none + + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + + shade + + + phoenix-${project.version}-client + false + true + false + + + + + +LICENSE.txt +ASL2.0 + + + + false + + + + csv-bulk-load-config.properties + + ${project.basedir}/../config/csv-bulk-load-config.properties + + + + README.md + ${project.basedir}/../README.md + + + LICENSE.txt + ${project.basedir}/../LICENSE.txt + + + + + *:* + + + org.apache.phoenix:phoenix-client + + + + + + + + com.codahale + ${shaded.package}.com.codahale + + + com.fasterxml + ${shaded.package}.com.fasterxml + + + com.google + ${shaded.package}.com.google + + + + + + + com.jamesmurty + ${shaded.package}.com.jamesmurty + + + com.jcraft + ${shaded.package}.com.jcraft + + + com.lmax + ${shaded.package}.com.lmax + + + com.thoughtworks + ${shaded.package}.com.thoughtworks + + + com.sun.jersey + ${shaded.package}.com.sun.jersey + + + com.yammer + ${shaded.package}.com.yammer + + + + + io.netty + ${shaded.package}.io.netty + + + + + org.antlr + ${shaded.package}.org.antlr + + + org.aopalliance + ${shaded.package}.org.aopalliance + + + org.codehaus + ${shaded.package}.org.codehaus + + + org.eclipse.jetty + ${shaded.package}.org.eclipse.jetty + + + org.fusesource +
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318915#comment-15318915 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66113006 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client + jar + + +true + +true +true +${project.basedir}/.. +org.apache.phoenix.shaded + + + + + + +org.apache.maven.plugins +maven-site-plugin + + true + + + + +org.apache.maven.plugins +maven-jar-plugin + + +default-jar +none + + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + + shade + + + phoenix-${project.version}-client + false + true + false + + + + + +LICENSE.txt +ASL2.0 + + + + false + + + + csv-bulk-load-config.properties + + ${project.basedir}/../config/csv-bulk-load-config.properties + + + + README.md + ${project.basedir}/../README.md + + + LICENSE.txt + ${project.basedir}/../LICENSE.txt + + + + + *:* + + + org.apache.phoenix:phoenix-client + + + + + + + + com.codahale + ${shaded.package}.com.codahale + + + com.fasterxml + ${shaded.package}.com.fasterxml + + + com.google + ${shaded.package}.com.google + + + + + + + com.jamesmurty + ${shaded.package}.com.jamesmurty + + + com.jcraft + ${shaded.package}.com.jcraft + + + com.lmax + ${shaded.package}.com.lmax + + + com.thoughtworks + ${shaded.package}.com.thoughtworks + + + com.sun.jersey + ${shaded.package}.com.sun.jersey + + + com.yammer + ${shaded.package}.com.yammer + + + + + io.netty + ${shaded.package}.io.netty + + + + + org.antlr + ${shaded.package}.org.antlr + + + org.aopalliance + ${shaded.package}.org.aopalliance + + + org.codehaus + ${shaded.package}.org.codehaus + + + org.eclipse.jetty + ${shaded.package}.org.eclipse.jetty + + + org.fusesource +
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318749#comment-15318749 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66099747 --- Diff: bin/queryserver.py --- @@ -119,7 +119,7 @@ # The command is run through subprocess so environment variables are automatically inherited java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + hadoop_config_path + os.pathsep + \ -phoenix_utils.phoenix_queryserver_jar + os.pathsep + phoenix_utils.phoenix_client_jar + \ +phoenix_utils.phoenix_client_jar + \ --- End diff -- Right, realized that later :). Given my opinion on removing the queryserver classes from the client jar, I think this should be switched back to queryserver + client. It makes a more natural usage, IMO. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318741#comment-15318741 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66099573 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client + jar + + +true + +true +true +${project.basedir}/.. +org.apache.phoenix.shaded + + + + + + +org.apache.maven.plugins +maven-site-plugin + + true + + + + +org.apache.maven.plugins +maven-jar-plugin + + +default-jar +none + + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + + shade + + + phoenix-${project.version}-client + false + true + false + + + + + +LICENSE.txt +ASL2.0 + + + + false + + + + csv-bulk-load-config.properties + + ${project.basedir}/../config/csv-bulk-load-config.properties + + + + README.md + ${project.basedir}/../README.md + + + LICENSE.txt + ${project.basedir}/../LICENSE.txt + + + + + *:* + + + org.apache.phoenix:phoenix-client + + + + + + + + com.codahale + ${shaded.package}.com.codahale + + + com.fasterxml + ${shaded.package}.com.fasterxml + + + com.google + ${shaded.package}.com.google + + + + + + + com.jamesmurty + ${shaded.package}.com.jamesmurty + + + com.jcraft + ${shaded.package}.com.jcraft + + + com.lmax + ${shaded.package}.com.lmax + + + com.thoughtworks + ${shaded.package}.com.thoughtworks + + + com.sun.jersey + ${shaded.package}.com.sun.jersey + + + com.yammer + ${shaded.package}.com.yammer + + + + + io.netty + ${shaded.package}.io.netty + + + + + org.antlr + ${shaded.package}.org.antlr + + + org.aopalliance + ${shaded.package}.org.aopalliance + + + org.codehaus + ${shaded.package}.org.codehaus + + + org.eclipse.jetty + ${shaded.package}.org.eclipse.jetty + + + org.fusesource +
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318735#comment-15318735 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66099062 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client + jar + + +true + +true +true +${project.basedir}/.. +org.apache.phoenix.shaded + + + + + + +org.apache.maven.plugins +maven-site-plugin + + true + + + + +org.apache.maven.plugins +maven-jar-plugin + + +default-jar +none + + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + + shade + + + phoenix-${project.version}-client + false + true + false + + + + + +LICENSE.txt +ASL2.0 + + + + false + + + + csv-bulk-load-config.properties + + ${project.basedir}/../config/csv-bulk-load-config.properties + + + + README.md + ${project.basedir}/../README.md + + + LICENSE.txt + ${project.basedir}/../LICENSE.txt + + + + + *:* + + + org.apache.phoenix:phoenix-client + + + + + + + + com.codahale + ${shaded.package}.com.codahale + + + com.fasterxml + ${shaded.package}.com.fasterxml + + + com.google + ${shaded.package}.com.google + + + + + + + com.jamesmurty + ${shaded.package}.com.jamesmurty + + + com.jcraft + ${shaded.package}.com.jcraft + + + com.lmax + ${shaded.package}.com.lmax + + + com.thoughtworks + ${shaded.package}.com.thoughtworks + + + com.sun.jersey + ${shaded.package}.com.sun.jersey + + + com.yammer + ${shaded.package}.com.yammer + + + + + io.netty + ${shaded.package}.io.netty + + + + + org.antlr + ${shaded.package}.org.antlr + + + org.aopalliance + ${shaded.package}.org.aopalliance + + + org.codehaus + ${shaded.package}.org.codehaus + + + org.eclipse.jetty + ${shaded.package}.org.eclipse.jetty + + + org.fusesource +
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318724#comment-15318724 ] Josh Elser commented on PHOENIX-2535: - bq. is it ready to be committed? No, not quite, but I think it's close. I left some comments on the the [PR|https://github.com/apache/phoenix/pull/159/files]. The queryserver and queryserver-client artifacts were being pulled into phoenix-client which I believe is wrong and the phoenix-queryserver jars are missing the lib directory of the bin tarball. I diffed the contents of the lib directory with an installation of master from a few weeks ago and it looks fine aside from those missing jars. I also left two super minor requests for better descriptions in the new poms. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318722#comment-15318722 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66097640 --- Diff: bin/queryserver.py --- @@ -119,7 +119,7 @@ # The command is run through subprocess so environment variables are automatically inherited java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + hadoop_config_path + os.pathsep + \ -phoenix_utils.phoenix_queryserver_jar + os.pathsep + phoenix_utils.phoenix_client_jar + \ +phoenix_utils.phoenix_client_jar + \ --- End diff -- those classes are part of client jar, since it uses calcite which is shaded in client jar. Or we need to bundle that package into queryserver jar. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318719#comment-15318719 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66097370 --- Diff: phoenix-assembly/src/build/components/all-common-jars.xml --- @@ -88,12 +93,12 @@ ${project.basedir}/../phoenix-server/target/ --- End diff -- Need to change this directory. There is no phoenix-queryserver*.jar included in the lib/ directory in the tarball. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318706#comment-15318706 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66096699 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client + jar + + +true + +true +true +${project.basedir}/.. +org.apache.phoenix.shaded + + + + + + +org.apache.maven.plugins +maven-site-plugin + + true + + + + +org.apache.maven.plugins +maven-jar-plugin + + +default-jar +none + + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + + shade + + + phoenix-${project.version}-client + false + true + false + + + + + +LICENSE.txt +ASL2.0 + + + + false + + + + csv-bulk-load-config.properties + + ${project.basedir}/../config/csv-bulk-load-config.properties + + + + README.md + ${project.basedir}/../README.md + + + LICENSE.txt + ${project.basedir}/../LICENSE.txt + + + + + *:* + + + org.apache.phoenix:phoenix-client + + + + + + + + com.codahale + ${shaded.package}.com.codahale + + + com.fasterxml + ${shaded.package}.com.fasterxml + + + com.google + ${shaded.package}.com.google + + + + + + + com.jamesmurty + ${shaded.package}.com.jamesmurty + + + com.jcraft + ${shaded.package}.com.jcraft + + + com.lmax + ${shaded.package}.com.lmax + + + com.thoughtworks + ${shaded.package}.com.thoughtworks + + + com.sun.jersey + ${shaded.package}.com.sun.jersey + + + com.yammer + ${shaded.package}.com.yammer + + + + + io.netty + ${shaded.package}.io.netty + + + + + org.antlr + ${shaded.package}.org.antlr + + + org.aopalliance + ${shaded.package}.org.aopalliance + + + org.codehaus + ${shaded.package}.org.codehaus + + + org.eclipse.jetty + ${shaded.package}.org.eclipse.jetty + + + org.fusesource +
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318685#comment-15318685 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66094488 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client + jar + + +true + +true +true +${project.basedir}/.. +org.apache.phoenix.shaded + + + + + + +org.apache.maven.plugins +maven-site-plugin + + true + + + + +org.apache.maven.plugins +maven-jar-plugin + + +default-jar +none + + + + + +org.apache.maven.plugins +maven-shade-plugin + + +package + + shade + + + phoenix-${project.version}-client + false + true + false + + + + + +LICENSE.txt +ASL2.0 + + + + false + + + + csv-bulk-load-config.properties + + ${project.basedir}/../config/csv-bulk-load-config.properties + + + + README.md + ${project.basedir}/../README.md + + + LICENSE.txt + ${project.basedir}/../LICENSE.txt + + + + + *:* + + + org.apache.phoenix:phoenix-client + + + + + + + + com.codahale + ${shaded.package}.com.codahale + + + com.fasterxml + ${shaded.package}.com.fasterxml + + + com.google + ${shaded.package}.com.google + + + + + + + com.jamesmurty + ${shaded.package}.com.jamesmurty + + + com.jcraft + ${shaded.package}.com.jcraft + + + com.lmax + ${shaded.package}.com.lmax + + + com.thoughtworks + ${shaded.package}.com.thoughtworks + + + com.sun.jersey + ${shaded.package}.com.sun.jersey + + + com.yammer + ${shaded.package}.com.yammer + + + + + io.netty + ${shaded.package}.io.netty + + + + + org.antlr + ${shaded.package}.org.antlr + + + org.aopalliance + ${shaded.package}.org.aopalliance + + + org.codehaus + ${shaded.package}.org.codehaus + + + org.eclipse.jetty + ${shaded.package}.org.eclipse.jetty + + + org.fusesource +
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318682#comment-15318682 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66094212 --- Diff: bin/queryserver.py --- @@ -119,7 +119,7 @@ # The command is run through subprocess so environment variables are automatically inherited java_cmd = '%(java)s -cp ' + hbase_config_path + os.pathsep + hadoop_config_path + os.pathsep + \ -phoenix_utils.phoenix_queryserver_jar + os.pathsep + phoenix_utils.phoenix_client_jar + \ +phoenix_utils.phoenix_client_jar + \ --- End diff -- Why is the queryserver jar no longer included when launching the queryserver? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318680#comment-15318680 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66094042 --- Diff: phoenix-server/pom.xml --- @@ -7,52 +30,98 @@ 4.8.0-HBase-1.2-SNAPSHOT phoenix-server - Phoenix Query Server - A query server for exposing Phoenix to thin clients - - - - The Apache Software License, Version 2.0 - http://www.apache.org/licenses/LICENSE-2.0.txt - repo - - - - - -Apache Software Foundation -http://www.apache.org - - + Phoenix Server + Phoenix Server --- End diff -- Nit: A better description would be awesome > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318678#comment-15318678 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user joshelser commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r66093991 --- Diff: phoenix-client/pom.xml --- @@ -0,0 +1,381 @@ + + + +http://maven.apache.org/POM/4.0.0; + xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.2-SNAPSHOT + + phoenix-client + Phoenix Client + Phoenix Client --- End diff -- Nit: A better description would be awesome > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15318258#comment-15318258 ] Ankit Singhal commented on PHOENIX-2535: [~sergey.soldatov] has updated the pull request with the changes as per last review. [~enis],[~elserj],[~mujtaba] ,[~ndimiduk], what do you say , is it ready to be committed? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15311829#comment-15311829 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12807622/PHOENIX-2535-7.patch against master branch at commit 837ec4672e3d326e652103f187820ff629b09f65. ATTACHMENT ID: 12807622 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 6 new or modified tests. {color:red}-1 javac{color}. The applied patch generated 329 javac compiler warnings (more than the master's current 85 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 33 warning messages. {color:red}-1 release audit{color}. The applied patch generated 4 release audit warnings (more than the master's current 0 warnings). {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: +phoenix_queryserver_jar = find(PHOENIX_QUERYSERVER_JAR_PATTERN, os.path.join(current_dir, "..", "phoenix-queryserver", "target", "*")) +phoenix_thin_client_jar = find(PHOENIX_THIN_CLIENT_JAR_PATTERN, os.path.join(current_dir, "..", "phoenix-queryserver-client", "target", "*")) + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + + + implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> + + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:red}-1 core tests{color}. The patch failed these unit tests: Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/380//testReport/ Release audit warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/380//artifact/patchprocess/patchReleaseAuditWarnings.txt Javadoc warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/380//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/380//console This message is automatically generated. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15311797#comment-15311797 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on the issue: https://github.com/apache/phoenix/pull/159 Updated version for better review > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15311784#comment-15311784 ] Sergey Soldatov commented on PHOENIX-2535: -- This target is collecting all dependency jars into lib directory. Not sure whether it's used by someone, that's why I kept it as is. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch, PHOENIX-2535-7.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15311481#comment-15311481 ] Sergey Soldatov commented on PHOENIX-2535: -- [~mujtabachohan], [~enis] I will remove the unused xmls. I also found a way to avoid creating the default artifact (well, I had to debug shading plugin to find a proper routine to avoid "project main artifact does not exist" error message as it usually happen if the packaging is jar and the artifact is missing). Will update the patch and upload it shortly. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15310908#comment-15310908 ] Enis Soztutar commented on PHOENIX-2535: [~sergey.soldatov] did you see my comment here: https://issues.apache.org/jira/browse/PHOENIX-2535?focusedCommentId=15253006=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel#comment-15253006? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15308866#comment-15308866 ] Mujtaba Chohan commented on PHOENIX-2535: - Few minor issues at quick glance in [PHOENIX-2535-6.patch|https://issues.apache.org/jira/secure/attachment/12806600/PHOENIX-2535-6.patch] phoenix-client-4.8.0-HBase-1.2-SNAPSHOT.jar still getting generated: {code} phoenix-client/target$ ll *.jar 100975598 phoenix-4.8.0-HBase-1.2-SNAPSHOT-client.jar 13383 phoenix-client-4.8.0-HBase-1.2-SNAPSHOT.jar {code} Directories/files that should be marked for delete: {code} phoenix-assembly/src/build/client.xml phoenix-assembly/src/build/client-spark.xml phoenix-assembly/src/build/server.xml phoenix-server phoenix-server-client {code} Will try out the patch by deploying it on server as well. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15307920#comment-15307920 ] James Taylor commented on PHOENIX-2535: --- Your feedback on this would be much appreciated too, [~elserj]. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15306884#comment-15306884 ] James Taylor commented on PHOENIX-2535: --- Thanks for getting back to this, [~sergey.soldatov]. Please review, [~enis] and [~mujtabachohan]. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15303906#comment-15303906 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12806600/PHOENIX-2535-6.patch against master branch at commit 95c004112bae47624f4764154e90cc36a54827f1. ATTACHMENT ID: 12806600 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+1 tests included{color}. The patch appears to include 6 new or modified tests. {color:red}-1 javac{color}. The applied patch generated 329 javac compiler warnings (more than the master's current 85 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 33 warning messages. {color:red}-1 release audit{color}. The applied patch generated 4 release audit warnings (more than the master's current 0 warnings). {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: +phoenix_queryserver_jar = find(PHOENIX_QUERYSERVER_JAR_PATTERN, os.path.join(current_dir, "..", "phoenix-queryserver", "target", "*")) +phoenix_thin_client_jar = find(PHOENIX_THIN_CLIENT_JAR_PATTERN, os.path.join(current_dir, "..", "phoenix-queryserver-client", "target", "*")) + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + + + implementation="org.apache.maven.plugins.shade.resource.ApacheNoticeResourceTransformer"> + + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:green}+1 core tests{color}. The patch passed unit tests in . {color:red}-1 core zombie tests{color}. There are 1 zombie test(s): Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/370//testReport/ Release audit warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/370//artifact/patchprocess/patchReleaseAuditWarnings.txt Javadoc warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/370//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/370//console This message is automatically generated. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch, > PHOENIX-2535-6.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15303060#comment-15303060 ] Sergey Soldatov commented on PHOENIX-2535: -- [~jamestaylor] My bad, overestimated my free time. Will try to get it by EOD. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15302941#comment-15302941 ] James Taylor commented on PHOENIX-2535: --- [~sergey.soldatov]? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15293580#comment-15293580 ] Sergey Soldatov commented on PHOENIX-2535: -- [~jamestaylor] It was ready to go some time ago. Tomorrow will rebase it on top and update those changes with tephra we got yesterday. If tephra is running from our shaded jar, than it would help. I will check. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15253006#comment-15253006 ] Enis Soztutar commented on PHOENIX-2535: It seems that we are ending with two jars now, one is coming from the main phoenix-client pom, and the other from the phoenix-assembly. under {{phoenix-client/target/}} {code} 89M -rw-r--r-- 1 enis staff 89M Apr 21 16:30 phoenix-4.8.0-HBase-1.1-SNAPSHOT-client.jar 87M -rw-r--r-- 1 enis staff 87M Apr 21 16:28 phoenix-client-4.8.0-HBase-1.1-SNAPSHOT.jar {code} I am not sure whether we actually still need the assembly to contain {{phoenix-assembly/src/build/components/all-common-jars.xml}} etc. It seems that if we are building the jars from the modules, the assembly's job can be just simply to gather these into the tarball. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15252991#comment-15252991 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user enis commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r60671059 --- Diff: phoenix-client/dependency-reduced-pom.xml --- @@ -0,0 +1,263 @@ + --- End diff -- Is this used anymore? I could not find any references, if so we can get rid of it. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15252989#comment-15252989 ] Enis Soztutar commented on PHOENIX-2535: Thanks [~sergey.soldatov]. Let me take a look. [~elserj] you want to do that as well. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15252801#comment-15252801 ] Sergey Soldatov commented on PHOENIX-2535: -- Oh, I don't know why it was not posted here, but I added a commit to the pull request with shading guava as well. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15237099#comment-15237099 ] Enis Soztutar commented on PHOENIX-2535: bq. FYI, although we specify Guava 13 in our pom, Tephra works with Guava 12 too, a requirement we had since HBase uses an older version. Guava is one of the worst offenders in terms of breaking binary compatibility, and is generally the reason (among jackson, PB and a few others) that the clients require shading. Not having guava shading will be a half-solution I think. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15237095#comment-15237095 ] Enis Soztutar commented on PHOENIX-2535: bq. I know some of these Enis Soztutar already pointed out (mortbay, specifically), but com.google.common, pig/flume/hadoop/hbase, asm, and jersey worry me Not sure about the HBase dependency, but we can assume that if a client wants to depend on Phoenix, they will also want to depend on HBase. Since Phoenix version and HBase version HAS TO go together, I think the HBase non-shaded dependency is fine. Flume, Pig and (upcoming Hive) should not be shaded, otherwise the integration will not work. For example, phoenix-flume implements Sources and Sinks which are flume classes. Good thing is that these are already different modules, so that regular clients do not have to depend on these modules. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15236361#comment-15236361 ] James Taylor commented on PHOENIX-2535: --- FYI, although we specify Guava 13 in our pom, Tephra works with Guava 12 too, a requirement we had since HBase uses an older version. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235956#comment-15235956 ] Sergey Soldatov commented on PHOENIX-2535: -- I pushed yet another commit where: * shaded jetty, org/mortbay, org/objectweb * removed building -runnable jar from queryserver module. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235955#comment-15235955 ] Josh Elser commented on PHOENIX-2535: - bq. Josh Elser We used tephra as is (so we run co.cask.tephra.TransactionServiceMain without any wrapper) and it uses com.google.common So the solution for that is to address at the Tephra level then? bq. what is the reason to shade hadoop and hbase if we build phoenix against the specific versions? Just a question, i'm not sure tbqh. I see that HBase doesn't shade Hadoop. I wasn't sure what a reasonable expectation on Hadoop/HBase would be for Phoenix. If it's been thought about already, good enough for me -- just curious :) > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235798#comment-15235798 ] Sergey Soldatov commented on PHOENIX-2535: -- [~elserj] We used tephra as is (so we run co.cask.tephra.TransactionServiceMain without any wrapper) and it uses {{com.google.common}} As for {{org/mortbay}} {{com/sun}} {{org/objectweb}} {{javax}} as well as {{org/eclipse/jetty}} - Query Server resolving jetty Handler through services, so it will fail of we shade jetty and run it from sandbox (so, unshaded queryserver-runnable jar is used). pig/flume modules are used from outside and implements the public API and they supposed to be used outside what is the reason to shade hadoop and hbase if we build phoenix against the specific versions? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235786#comment-15235786 ] Josh Elser commented on PHOENIX-2535: - Also, the previous issue of not shading {{o.a.c.avatica.proto}} is due to the above as well {quote} I've pushed renaming stuff for query server/client in the pull request. Also added exclude from shading for avatica.proto. to make PQS working from tarball. {quote} As long as PQS and the PQS-client have relocated classes in the same package it should work fine. Right now, that isn't the case due to the above. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235776#comment-15235776 ] Josh Elser commented on PHOENIX-2535: - bq. No, I'm talking about how we run query server. For sandbox we take -runnable.jar from the server package, but when we run it from tarball we run it with the regular phoenix-client jar. That's why we have phoenix-client depended on phoenix-server (phoenix-queryserver now). Ok, I see what you mean now. The phoenix-server-$VERSION-runnable.jar is no longer used when invoking {{queryserver.py}}. This doesn't make sense to me. Clients shouldn't be seeing any of the PQS implementation. We have a clear delineation there now, and I think we should keep that. {noformat} $ ./bin/queryserver.py /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home/bin/java -cp /usr/local/lib/hbase/conf:/usr/local/lib/hadoop/etc/hadoop::/usr/local/lib/phoenix-4.8.0-HBase-1.1-SNAPSHOT-shaded/bin/../phoenix-4.8.0-HBase-1.1-SNAPSHOT-client.jar -Dproc_phoenixserver -Dlog4j.configuration=file:/usr/local/lib/phoenix-4.8.0-HBase-1.1-SNAPSHOT-shaded/bin/log4j.properties -Dpsql.root.logger=INFO,console -Dpsql.log.dir=. -Dpsql.log.file=psql.log org.apache.phoenix.queryserver.server.Main {noformat} I see that the old phoenix-server-$VERSION-runnable.jar is still being created but it not longer exists in the tarball's lib/ directory. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235727#comment-15235727 ] Josh Elser commented on PHOENIX-2535: - {noformat} [INFO] --- maven-dependency-plugin:2.1:tree (default-cli) @ phoenix-queryserver-client --- [INFO] org.apache.phoenix:phoenix-queryserver-client:jar:4.8.0-HBase-1.1-SNAPSHOT [INFO] +- org.apache.calcite.avatica:avatica:jar:1.7.1:compile [INFO] | +- com.google.protobuf:protobuf-java:jar:2.5.0:compile (version managed from 3.0.0-beta-1) {noformat} Ok, this is probably why. I think we'll automatically get in the right protobuf from o.a.c.avatica:avatica anyways, so we can just exclude protobuf. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235725#comment-15235725 ] Josh Elser commented on PHOENIX-2535: - It looks like {{phoenix-4.8.0-HBase-1.1-SNAPSHOT-thin-client.jar}} contains both relocated and non-relocated protobuf classes. Not sure where they're coming from yet. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15235684#comment-15235684 ] Josh Elser commented on PHOENIX-2535: - Made a quick list of all non-relocated classes in the phoenix-client jar: {noformat} co/cask/tephra javax org/apache/commons/logging org/eclipse/jetty org/apache/calcite/avatica/proto org/apache/hadoop com/sun/jersey org/apache/pig org/apache/flume contribs/mx/ com/sun/xml com/sun/appserv com/sun/el org/mortbay javax/ws/rs org/apache/hadoop/hbase org/apache/htrace com/google/common edu/umd/cs/findbugs org/objectweb/asm {noformat} I know some of these [~enis] already pointed out (mortbay, specifically), but com.google.common, pig/flume/hadoop/hbase, asm, and jersey worry me. Is there a reason these aren't relocated? Sorry if I missed back-chat. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15234515#comment-15234515 ] Sergey Soldatov commented on PHOENIX-2535: -- [~elserj] No, I'm talking about how we run query server. For sandbox we take {{-runnable.jar}} from the server package, but when we run it from tarball we run it with the regular phoenix-client jar. That's why we have phoenix-client depended on phoenix-server (phoenix-queryserver now). > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15234459#comment-15234459 ] Josh Elser commented on PHOENIX-2535: - bq. speaking about query server/client dependencies in the phoenix-client - we do not ship a separate jar file for PQS, so we run it from client jar. [~sergey.soldatov] I don't follow. There is a phoenix-$version-thin-client.jar that contains the actual JDBC driver for the QueryServer presently. Are you talking about your changes here? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233134#comment-15233134 ] Sergey Soldatov commented on PHOENIX-2535: -- I've pushed renaming stuff for query server/client in the pull request. Also added exclude from shading for avatica.proto. to make PQS working from tarball. [~elserj] speaking about query server/client dependencies in the phoenix-client - we do not ship a separate jar file for PQS, so we run it from client jar. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233086#comment-15233086 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59098738 --- Diff: pom.xml --- @@ -27,9 +27,11 @@ phoenix-flume phoenix-pig phoenix-server-client -phoenix-server --- End diff -- Fixed in next commit > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233084#comment-15233084 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59098717 --- Diff: phoenix-server-client/pom.xml --- @@ -26,29 +26,126 @@ ${project.basedir}/.. +org.apache.phoenix.shaded -maven-assembly-plugin - - -thin-client -package - - single - - - false - phoenix-${project.version} - -src/build/thin-client.xml - - - - - + maven-assembly-plugin + +true + + + + org.apache.maven.plugins + maven-shade-plugin + + + thin-client + package + +shade + + +false +false + true +false +phoenix-${project.version}-thin-client + > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233082#comment-15233082 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user ss77892 commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59098646 --- Diff: phoenix-assembly/pom.xml --- @@ -31,76 +32,30 @@ phoenix-assembly Phoenix Assembly Assemble Phoenix artifacts - pom + jar --- End diff -- Fixed in next commit > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233052#comment-15233052 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user enis commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59096272 --- Diff: pom.xml --- @@ -27,9 +27,11 @@ phoenix-flume phoenix-pig phoenix-server-client -phoenix-server --- End diff -- I like the phoenix-queryserver and phoenix-queryserver-client as names of the modules. phoenix-server-client is hard to parse without knowing phoenix-server is phoenix query server. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233044#comment-15233044 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user enis commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59095759 --- Diff: phoenix-server-client/pom.xml --- @@ -26,29 +26,126 @@ ${project.basedir}/.. +org.apache.phoenix.shaded -maven-assembly-plugin - - -thin-client -package - - single - - - false - phoenix-${project.version} - -src/build/thin-client.xml - - - - - + maven-assembly-plugin + +true + + + + org.apache.maven.plugins + maven-shade-plugin + + + thin-client + package + +shade + + +false +false + true +false +phoenix-${project.version}-thin-client + > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233037#comment-15233037 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user enis commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59095560 --- Diff: phoenix-query-server/pom.xml --- @@ -0,0 +1,116 @@ +http://maven.apache.org/POM/4.0.0; xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance; + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + 4.0.0 + +org.apache.phoenix +phoenix +4.8.0-HBase-1.1-SNAPSHOT + + phoenix-query-server + Phoenix Query Server + A query server for exposing Phoenix to thin clients + + --- End diff -- these are not coming from the apache parent pom? We only have this in the server, not in the client module. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233024#comment-15233024 ] ASF GitHub Bot commented on PHOENIX-2535: - Github user enis commented on a diff in the pull request: https://github.com/apache/phoenix/pull/159#discussion_r59094621 --- Diff: phoenix-assembly/pom.xml --- @@ -31,76 +32,30 @@ phoenix-assembly Phoenix Assembly Assemble Phoenix artifacts - pom + jar --- End diff -- hbase-assembly/pom.xml is still pom here. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15233020#comment-15233020 ] Nick Dimiduk commented on PHOENIX-2535: --- bq. 4.8 RM should especially check whether the publish is going through. I pointed out in 4.7 release that we don't have publishing to staging repo for phoenix. I may have even volunteered to look into it. I don't think there's a ticket; we should probably make a blocker for 4.8. bq. Name these modules as phoenix-queryserver and phoenix-queryserver-client It's getting verbose, but yeah, that looks about right. Make it explicit. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232934#comment-15232934 ] Enis Soztutar commented on PHOENIX-2535: bq. Possible we need to rename it to phoenix-query-client as well? Name these modules as {{phoenix-queryserver}} and {{phoenix-queryserver-client}}? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232931#comment-15232931 ] Enis Soztutar commented on PHOENIX-2535: bq. Once the dust settles here, it would be great to re-evaluate publishing client jars to maven central. It's a real PITA to tell folks doing maven dev to drop a jar into their resources manually. Yes, we are going the maven module route rather than the assembly, so that the jars will end up in maven repo. 4.8 RM should especially check whether the publish is going through. We can do a a SNAPSHOT publish in the mean time just to check. bq. I hate to be the bearer of bad news, but these are most likely not meeting ASF licensing requirements. For every bundled jar that Phoenix ships in a shaded jar, we're going to have to HBase's shaded modules do the right stuff I think. We can just copy from there. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232919#comment-15232919 ] Sergey Soldatov commented on PHOENIX-2535: -- I created a pull request for easier review. Changes: {{phoenix-server}} moved to {{phoenix-query-server}} {{phoenix-server-client}} is shaded. Possible we need to rename it to {{phoenix-query-client}} as well? I tried to get rid queryserver dependency in the client and move to the corresponding modules, but it's really painful. Some mysterious failures during connection between client/server without stack trace. Will dig further while this stuff is reviewed. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232913#comment-15232913 ] ASF GitHub Bot commented on PHOENIX-2535: - GitHub user ss77892 opened a pull request: https://github.com/apache/phoenix/pull/159 PHOENIX-2535 Create shaded clients (thin + thick) Shaded client + PHOENIX-2267 You can merge this pull request into a Git repository by running: $ git pull https://github.com/ss77892/phoenix PHOENIX-2535 Alternatively you can review and apply these changes as the patch at: https://github.com/apache/phoenix/pull/159.patch To close this pull request, make a commit to your master/trunk branch with (at least) the following in the commit message: This closes #159 commit a2d87d81a6bcf966f09c578e20569fbb0625d313 Author: Sergey SoldatovDate: 2016-04-08T20:54:45Z PHOENIX-2535 Create shaded clients (thin + thick) > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232675#comment-15232675 ] Josh Elser commented on PHOENIX-2535: - bq. Yep, at the beginning we have discussed what exactly need to be shaded. And it seems that phoenix-server-client nobody mentioned. I will add shading for this module. Thanks :). I apologize for arriving late to the party. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232672#comment-15232672 ] Sergey Soldatov commented on PHOENIX-2535: -- [~elserj] {quote} Ok. Yeah, if we're doing things correctly, the client should never have to have the phoenix-[query]server jar's classes. Regarding the thin client jar now, we do have a shaded artifact (phoenix-server-client/target/phoenix-4.8.0-HBase-1.1-SNAPSHOT-thin-client.jar), but the shaded classes aren't relocated. That was the other half of my question – did I miss you doing that in your patch? I think that was in the original spirit of the JIRA issue's title. {quote} Yep, at the beginning we have discussed what exactly need to be shaded. And it seems that phoenix-server-client nobody mentioned. I will add shading for this module. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232647#comment-15232647 ] Josh Elser commented on PHOENIX-2535: - bq. phoenix-assembly is generating tarball exactly at the target directory. All this stuff is related to the relative path of jars in this tarball. Oh, that's my bad. I totally misread the assembly descriptor. Thanks for clarifying :) bq. I don't know whether it's a maven-assembly-plugin specific feature or just a bug there, but if we remove those dependencies it will not collect the jar dependencies. This was about the comment above, specifying the maven-shade-plugin in dependencyManagement. Sorry for the confusion. bq. Well, that was in the original pom.xml at phoenix-assembly which was producing client jar, so the client had query server as well as calcite inside. I will get rid of it. Ok. Yeah, if we're doing things correctly, the client should never have to have the phoenix-\[query\]server jar's classes. Regarding the thin client jar now, we do have a shaded artifact ({{phoenix-server-client/target/phoenix-4.8.0-HBase-1.1-SNAPSHOT-thin-client.jar}}), but the shaded classes aren't relocated. That was the other half of my question -- did I miss you doing that in your patch? I think that was in the original spirit of the JIRA issue's title. bq. And that's exactly that those transforms are doing (or supposed to do). At least for licenses in client jar it creates a directory META-INF/license with all non ASF license files like: bq. And we don't have it in the current client jar Ok. Hopefully this isn't too bad (I'm not sure if these have been looked at closely before). Not all people will bundle a LICENSE and NOTICE inside of their jar. Sadly, we get screwed by this. After we get a final patch, I can run through a build and step through each dependency to make sure we're covered. Don't need to hold up your patch for that work (but we should make sure it's kosher before making the next release). (and because I forgot to say it initially) Great work on this. This will be a big improvement. bq. Once the dust settles here, it would be great to re-evaluate publishing client jars to maven central. It's a real PITA to tell folks doing maven dev to drop a jar into their resources manually. *huge* +1 to this one, Nick. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232595#comment-15232595 ] Sergey Soldatov commented on PHOENIX-2535: -- [~elserj] {quote} Why make this change in phoenix-assembly/pom.xml? It seems like you're just working around Maven wanting to create a jar then. If you set this to pom, AFAIUI, that should not be trying to create any JAR for the module. {quote} Actually not. If set it to pom - it's just create a pom file. The only way I have found to disable it - set a non existing phase for {{maven-jar-plugin}} {quote} Is there a reason why you aren't putting JARs generated by a module within that module's target/ directory? This is really confusing to see in practice "I built this module. Where the heck are the artifacts?" {quote} {{phoenix-assembly}} is generating tarball exactly at the {{target}} directory. All this stuff is related to the relative path of jars in this tarball. {quote} Might be a bit more concise to make a property instead of repeating the shaded relocation prefix. E.g. org.apache.phoenix.shaded and then ${shaded.location}.com.fasterxml. Is this more concise? {quote} sounds reasonable. will do that. {quote} This looks unnecessary. The maven-shade-plugin should already be defined in pluginManagement in /pom.xml. {quote} I don't know whether it's a {{maven-assembly-plugin}} specific feature or just a bug there, but if we remove those dependencies it will not collect the jar dependencies. {quote} I'm surprised to see phoenix-server and phoenix-server-client in this list. My initial thought was that phoenix-client would be a shaded jar for the thick driver. Either way, neither thick or thin driver will need phoenix-server. {quote} Well, that was in the original {{pom.xml}} at phoenix-assembly which was producing client jar, so the client had query server as well as calcite inside. I will get rid of it. {quote} I hate to be the bearer of bad news, but these are most likely not meeting ASF licensing requirements. For every bundled jar that Phoenix ships in a shaded jar, we're going to have to Copy any NOTICE text into a NOTICE file in the shaded jar Copy necessary license and copyright information for non-ASLv2 licensed jars into a LICENSE file in the shaded jar. Yes, this will be horrible, but it is required. {quote} And that's exactly that those transforms are doing (or supposed to do). At least for licenses in client jar it creates a directory {{META-INF/license}} with all non ASF license files like: {noformat} META-INF//license: total 176 -rw-r--r-- 1 ssoldatov staff 1592 Apr 7 23:41 LICENSE.base64.txt -rw-r--r-- 1 ssoldatov staff 10174 Apr 7 23:41 LICENSE.commons-logging.txt -rw-r--r-- 1 ssoldatov staff 10174 Apr 7 23:41 LICENSE.felix.txt -rw-r--r-- 1 ssoldatov staff 26441 Apr 7 23:41 LICENSE.jboss-logging.txt -rw-r--r-- 1 ssoldatov staff 1592 Apr 7 23:41 LICENSE.jsr166y.txt -rw-r--r-- 1 ssoldatov staff 1465 Apr 7 23:41 LICENSE.jzlib.txt -rw-r--r-- 1 ssoldatov staff 10174 Apr 7 23:41 LICENSE.log4j.txt -rw-r--r-- 1 ssoldatov staff 1732 Apr 7 23:41 LICENSE.protobuf.txt -rw-r--r-- 1 ssoldatov staff 1203 Apr 7 23:41 LICENSE.slf4j.txt -rw-r--r-- 1 ssoldatov staff 1598 Apr 7 23:41 LICENSE.webbit.txt {noformat} And we don't have it in the current client jar :) > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232444#comment-15232444 ] Nick Dimiduk commented on PHOENIX-2535: --- bq. +1 to rename query server jar yeah, this should have been fixed before the first release. Whatever you call the PQS server jar, be sure the client jar matches so it's super-duper clear what's what. And thanks for cleaning up all these thick client jars too, it's confusing to see. Once the dust settles here, it would be great to re-evaluate publishing client jars to maven central. It's a real PITA to tell folks doing maven dev to drop a jar into their resources manually. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232376#comment-15232376 ] Josh Elser commented on PHOENIX-2535: - (sorry, this is getting long. Do we have reviewboard or something set up going forward?) {code} - pom + jar {code} {code} +default-jar +none + {code} Why make this change in phoenix-assembly/pom.xml? It seems like you're just working around Maven wanting to create a jar then. If you set this to {{pom}}, AFAIUI, that should not be trying to create any JAR for the module. {code} diff --git a/phoenix-assembly/src/build/components/all-common-jars.xml b/phoenix-assembly/src/build/components/all-common-jars.xml index 960c3c9..f8c5abd 100644 --- a/phoenix-assembly/src/build/components/all-common-jars.xml +++ b/phoenix-assembly/src/build/components/all-common-jars.xml @@ -24,12 +24,17 @@ - target + ${project.basedir}/../phoenix-client/target / phoenix-*-client.jar + + + + ${project.basedir}/../phoenix-server/target + / + phoenix-*-server.jar -phoenix-*-mapreduce.jar {code} Is there a reason why you aren't putting JARs generated by a module within that module's target/ directory? This is really confusing to see in practice "I built this module. Where the heck are the artifacts?" {code} + + com.codahale + org.apache.phoenix.shaded.com.codahale + + + com.fasterxml + org.apache.phoenix.shaded.com.fasterxml + {code} Might be a bit more concise to make a property instead of repeating the shaded relocation prefix. E.g. {{org.apache.phoenix.shaded}} and then {{$\{shaded.location\}.com.fasterxml}}. Is this more concise? {code} + + + +org.apache.maven.plugins + maven-shade-plugin + + + {code} This looks unnecessary. The maven-shade-plugin should already be defined in pluginManagement in {{/pom.xml}}. {code} + + + + org.apache.phoenix + phoenix-core + + + org.apache.phoenix + phoenix-flume + + + org.apache.phoenix + phoenix-pig + + + org.apache.phoenix + phoenix-spark + + + org.apache.phoenix + phoenix-server + + + org.apache.phoenix + phoenix-server-client + + {code} I'm surprised to see phoenix-server and phoenix-server-client in this list. My initial thought was that phoenix-client would be a shaded jar for the thick driver. Either way, neither thick or thin driver will need phoenix-server. {code} +phoenix-client {code} Would it better to include the word "shaded" in the module name? {code} + s + + +NOTICE +${project.basedir}/../../NOTICE + ... + +LICENSE.txt +${project.basedir}/../../LICENSE.txt + + {code} I hate to be the bearer of bad news, but these are most likely not meeting ASF licensing requirements. For every bundled jar that Phoenix ships in a shaded jar, we're going to have to # Copy any NOTICE text into a NOTICE file in the shaded jar # Copy necessary license and copyright information for non-ASLv2 licensed jars into a LICENSE file in the shaded jar. Yes, this will be horrible, but it is required. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15232287#comment-15232287 ] Josh Elser commented on PHOENIX-2535: - bq. I have a suggestion. At the moment there is an ambiguous naming for query server and the hbase side jar. They both are phoenix-server and it doesn't look good. There is a couple options: Yeah, this was something that [~apurtell] had pointed out a while back. Let me see if I can find it. It's definitely misleading. Making the PQS jar be "phoenix-queryserver" would help. Including "hbase" somewhere in the HBase server-side jar would be logical. Both would cause some breakages though. I'm not sure which would be better (probably renaming the PQS jar since it's "newer"). > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15231738#comment-15231738 ] Sergey Soldatov commented on PHOENIX-2535: -- I have a suggestion. At the moment there is an ambiguous naming for query server and the hbase side jar. They both are phoenix-server and it doesn't look good. There is a couple options: 1. rename {{phoenix-server}} module to {{phoenix-query-server}} and keep hbase server side jar in {{phoenix-server}} 2. rename {{phoenix-server.jar}} to {{phoenix-hbase-something}} It would be nice to do that, so hbase side jar can be located in its own module and can be published to the artifactory. [~jamestaylor], [~elserj] what do you think? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15231328#comment-15231328 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12797621/PHOENIX-2535-5.patch against master branch at commit 1e47821876af8100d5b4bc4dad03168eca7f5652. ATTACHMENT ID: 12797621 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+0 tests included{color}. The patch appears to be a documentation, build, or dev patch that doesn't require tests. {color:red}-1 javac{color}. The applied patch generated 247 javac compiler warnings (more than the master's current 81 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 25 warning messages. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:green}+1 core tests{color}. The patch passed unit tests in . {color:red}-1 core zombie tests{color}. There are 1 zombie test(s): Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/296//testReport/ Javadoc warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/296//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/296//console This message is automatically generated. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch, PHOENIX-2535-5.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15229442#comment-15229442 ] Thomas D'Silva commented on PHOENIX-2535: - I'm not sure what client-without-hbase and client-minimal are used for. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15229337#comment-15229337 ] Sergey Soldatov commented on PHOENIX-2535: -- I want just to confirm that the stuff I'm doing is correct: * new {{phoenix-client}} module with the {{phoenix-client}} artifact (full shaded client) and update for command line utils to use it * no more {{client-spark}} jar since there is no problems with different versions of libraries * {{phoenix-server}} jar file will be created in the existing {{phoenix-server}} module * {{phoenix-assemble}} will contains only tarball Open questions: Why we need {{client-without-hbase}} and {{client-minimal}} jars if we do not ship it in the tarball nor publish them in the artifactory? If we want them published, whether it's ok to create a separate modules for them? [~jamestaylor], [~enis], [~elserj], [~jmahonin] any comments/suggestions? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15218907#comment-15218907 ] Josh Elser commented on PHOENIX-2535: - bq. If we are going with shaded client all the time, then maybe just do phoenix-client without shaded in the name. This makes sense to be, fwiw. I've looked at the phoenix-client jar as a standalone, consumable entity. Now, maybe I'm off base, but I think "shaded" is implied :) bq. Do also shading in the phoenix-server-client module as well? wdyt Josh Elser? Would be good, but likely not nearly as high-priority as phoenix-client since there's not much more than an HTTP client in presently (maybe hadoop-common in the near future). I'll try to make a moment to pull down Sergey's latest and poke at it locally too (dbl check service-loader files, etc). > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15218898#comment-15218898 ] Enis Soztutar commented on PHOENIX-2535: Thanks Sergey for the updated patch. One question I was thinking of was how clients consume the client jars. The client and server jars are not pushed to the maven repository it seems, only the phoenix-core, phoenix-spark, etc. So, if a MR phoenix application or a JDBC application using phoenix depends on phoenix-core, they will not get the shaded jars at all with the patch as it is. Maybe we have to do a different maven module like {{phoenix-shaded-core}} / {{phoenix-shaded-client}} or something like that (similar to hbase-shaded-client). If we are going with shaded client all the time, then maybe just do {{phoenix-client}} without shaded in the name. Do also shading in the {{phoenix-server-client}} module as well? wdyt [~elserj]? Same thing for the phoenix-spark-client. I think that the way we are doing these jars in the assembly is not correct (not due to this patch of course), since they are not getting pushed to the maven repository, but they are just released inside the tarball. We should do a maven module to build the artifact jars (one module for phoenix-client, phoenix-server-client, phoenix-spark-client, etc) so that these jars get released. bq. Only client is shadowing. Server part stays intact. The only difference that for building it shadow plugin is using instead of assemble. Alright, I saw the server using the shading module, but did not check whether there was actual shading. {{org/objectweb}} is still not shaded. We are also now generating empty jars for phoenix-assembly, which are not needed {{phoenix-assembly-4.8.0-HBase-1.1-SNAPSHOT-XXX.jar}}. I skimmed through some of the code in Phoenix to see whether we maybe breaking backwards compatibility accidentally, but it seems that we are not. A second look from another reviewer will also help if possible. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15217823#comment-15217823 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12796044/PHOENIX-2535-4.patch against master branch at commit b98805039516bfa706f1fa78ed0850d802df5dc8. ATTACHMENT ID: 12796044 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+0 tests included{color}. The patch appears to be a documentation, build, or dev patch that doesn't require tests. {color:red}-1 javac{color}. The applied patch generated 258 javac compiler warnings (more than the master's current 81 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 27 warning messages. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/292//testReport/ Javadoc warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/292//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/292//console This message is automatically generated. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15217765#comment-15217765 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12796040/PHOENIX-2535-4.patch against master branch at commit b98805039516bfa706f1fa78ed0850d802df5dc8. ATTACHMENT ID: 12796040 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+0 tests included{color}. The patch appears to be a documentation, build, or dev patch that doesn't require tests. {color:red}-1 javac{color}. The applied patch generated 258 javac compiler warnings (more than the master's current 81 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 27 warning messages. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:red}-1 core tests{color}. The patch failed these unit tests: ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.hbase.index.covered.example.EndToEndCoveredIndexingIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.DeleteIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.MutableIndexIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.CountDistinctCompressionIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ArithmeticQueryIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.QueryTimeoutIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.SpillableGroupByIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.UserDefinedFunctionsIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.IndexMetadataIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ConnectionUtilIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.MappingTableDataTypeIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ClientTimeArithmeticQueryIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.MultiCfQueryExecIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.AlterTableIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.CsvBulkLoadToolIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.NativeHBaseTypesIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.MutableIndexFailureIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ReadOnlyIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.UnionAllIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.ImmutableIndexWithStatsIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.QueryIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.QueryWithLimitIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ParallelIteratorsIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.TenantSpecificTablesDMLIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.index.txn.TxWriteFailureIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ArrayAppendFunctionIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.NotQueryIT ./phoenix-core/target/failsafe-reports/TEST-org.apache.phoenix.end2end.ContextClassloaderIT
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15217711#comment-15217711 ] Sergey Soldatov commented on PHOENIX-2535: -- [~enis] thank you for your review! * patch reformatted * changed shadowing pattern to org.apache.phoenix.shaded.com * shadowed thrift, apache/directory, org/eclipse, unshadowed flume and tez, htrace, commons/csv * org/mortbay is used in log4j configuration, so I was afraid to shadow it without knowing which kind of side effects it may cause * sqlline is required for starting sqlline.py * Only client is shadowing. Server part stays intact. The only difference that for building it shadow plugin is using instead of assemble. As for the plugin options that are using in hbase - most of them are related to the case when there is a single artifact per module. In our case we creates several artifacts and they are irrelevant. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch, PHOENIX-2535-4.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15217350#comment-15217350 ] Enis Soztutar commented on PHOENIX-2535: HBase's shaded poms also contain these: {code} false false true ${project.build.directory}/dependency-reduced-pom.xml false {code} Did you look into those? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15217347#comment-15217347 ] Enis Soztutar commented on PHOENIX-2535: Thanks [~sergey.soldatov] for pushing this. Some comments: - I think you did reformat the whole pom file. It makes it very hard to review the difference that is added in the patch. Can you please undo that. Looking at some pom.xml files, unlike the java code, 2 space indentation seems to be used. - Instead of {code} +com + shaded.phoenix.com {code} I think we should use {{org.apache.phoenix.shaded.com}}. Similar for others. - Did a dir listing for the phoenix shaded client jar: -- {{javax/}}, {{com.sum}} contents seems to be fine. -- {{org/apache/thrift}}, {{org/objectweb/}}, {{org/apache/directory}}, {{org/eclipse/}} we are not shading these? -- org/mortbay hbase shades this as well. Not log4j though. Maybe needed for slf4j? -- {{sqlline}} seems to have classes around. Needed for it to work? -- We have some of these lying around (from some dependencies). Not sure whether they are needed or not: {code} META-INF/maven/org.apache.twill/ META-INF/maven/org.apache.twill/twill-common/ META-INF/maven/org.apache.twill/twill-common/pom.xml META-INF/maven/org.apache.twill/twill-common/pom.properties {code} - HBase does not shade the htrace dependency. I think it maybe relevant (phoenix trace -> hbase trace -> hdfs trace in the same context). - Did you test it with running the server jars with hbase? I fear if HBase has an internal API that exposes something like guava, and then we are using it in Phoenix, it will be a runtime exception I think. One safe option is to not-shade server jars, but shade the client jars if it does not work. - {{apache/commons/csv/}} is this part of the API (sorry did not check). If we allow extending CSVBulkLoad MR job for example. - flume probably should not be shaded. Otherwise the phoenix-flume will not work (phoenix implements flume APIs). - same thing for pig (although I see both shaded and un-shaded pig classes) > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15205172#comment-15205172 ] Sergey Soldatov commented on PHOENIX-2535: -- [~jmahonin] Thank you for the feedback! sqlline and JDBC using squirrel is the part of my regular testing. It would be nice if someone try to use it with Storm, Flume and others apps > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15204515#comment-15204515 ] Josh Mahonin commented on PHOENIX-2535: --- [~sergey.soldatov] Just tested this new patch with both Spark 1.6.0 and Spark 1.5.2. I ran a very small test that loaded a dataframe from a table, and saved it back to another table and can verify that it worked properly. Good work! A few more eyes on this to verify other use cases don't break at runtime (e.g. sqlline, standard JDBC, Storm, Flume, Pig, etc.) would be a good idea, but this looks good to me. Re: client-spark, it is no longer required with a properly shaded client JAR. It was a bit of a hack originally, so this patch helps make the documentation/deployment bits cleaner too. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15203950#comment-15203950 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12794482/PHOENIX-2535-3.patch against master branch at commit cd8e86ca7170876a30771fcc16c027f8dc8dd386. ATTACHMENT ID: 12794482 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+0 tests included{color}. The patch appears to be a documentation, build, or dev patch that doesn't require tests. {color:red}-1 javac{color}. The applied patch generated 234 javac compiler warnings (more than the master's current 81 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 23 warning messages. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + ${project.basedir}/../../config/csv-bulk-load-config.properties + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + ${project.basedir}/../../config/csv-bulk-load-config.properties + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:green}+1 core tests{color}. The patch passed unit tests in . Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/284//testReport/ Javadoc warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/284//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/284//console This message is automatically generated. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch, > PHOENIX-2535-3.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15201651#comment-15201651 ] Sergey Soldatov commented on PHOENIX-2535: -- [~jmahonin] thank you for trying. I'll take a look. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15201519#comment-15201519 ] Josh Mahonin commented on PHOENIX-2535: --- Sorry it's taken so long, but I've just tried using phoenix-spark using only the client JAR with this patch and I've run into some issues. When trying to load a table as a DataFrame (using the sample on the phoenix-spark doc page [1]) I get the following stack trace: {noformat} java.lang.NoClassDefFoundError: shaded/phoenix/org/apache/spark/sql/sources/RelationProvider at java.lang.ClassLoader.defineClass1(Native Method) at java.lang.ClassLoader.defineClass(ClassLoader.java:800) at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:142) at java.net.URLClassLoader.defineClass(URLClassLoader.java:449) at java.net.URLClassLoader.access$100(URLClassLoader.java:71) at java.net.URLClassLoader$1.run(URLClassLoader.java:361) at java.net.URLClassLoader$1.run(URLClassLoader.java:355) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(URLClassLoader.java:354) at java.lang.ClassLoader.loadClass(ClassLoader.java:425) at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:308) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:412) at java.lang.ClassLoader.loadClass(ClassLoader.java:358) at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62) at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4$$anonfun$apply$1.apply(ResolvedDataSource.scala:62) at scala.util.Try$.apply(Try.scala:161) at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62) at org.apache.spark.sql.execution.datasources.ResolvedDataSource$$anonfun$4.apply(ResolvedDataSource.scala:62) at scala.util.Try.orElse(Try.scala:82) at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.lookupDataSource(ResolvedDataSource.scala:62) at org.apache.spark.sql.execution.datasources.ResolvedDataSource$.apply(ResolvedDataSource.scala:102) at org.apache.spark.sql.DataFrameReader.load(DataFrameReader.scala:119) at org.apache.spark.sql.SQLContext.load(SQLContext.scala:1153) {noformat} I'm not sure why the spark-shell is trying to find its own dependencies in a 'shaded/phoenix' folder, but it seems like something is telling the class loader it should look there. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15188188#comment-15188188 ] Hadoop QA commented on PHOENIX-2535: {color:red}-1 overall{color}. Here are the results of testing the latest attachment http://issues.apache.org/jira/secure/attachment/12792338/PHOENIX-2535-2.patch against master branch at commit 5977e1f7f7c6ba61e806e85ef1e61f8ef030d95d. ATTACHMENT ID: 12792338 {color:green}+1 @author{color}. The patch does not contain any @author tags. {color:green}+0 tests included{color}. The patch appears to be a documentation, build, or dev patch that doesn't require tests. {color:red}-1 javac{color}. The applied patch generated 234 javac compiler warnings (more than the master's current 81 warnings). {color:red}-1 javadoc{color}. The javadoc tool appears to have generated 23 warning messages. {color:green}+1 release audit{color}. The applied patch does not increase the total number of release audit warnings. {color:red}-1 lineLengths{color}. The patch introduces the following lines longer than 100: + xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd;> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + ${project.basedir}/../../config/csv-bulk-load-config.properties + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + ${project.basedir}/../../config/csv-bulk-load-config.properties + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> + implementation="org.apache.maven.plugins.shade.resource.IncludeResourceTransformer"> {color:green}+1 core tests{color}. The patch passed unit tests in . {color:red}-1 core zombie tests{color}. There are 1 zombie test(s): at org.apache.ambari.server.api.rest.KdcServerConnectionVerificationTest.testValidateTCP__Fail_Timeout(KdcServerConnectionVerificationTest.java:164) Test results: https://builds.apache.org/job/PreCommit-PHOENIX-Build/270//testReport/ Javadoc warnings: https://builds.apache.org/job/PreCommit-PHOENIX-Build/270//artifact/patchprocess/patchJavadocWarnings.txt Console output: https://builds.apache.org/job/PreCommit-PHOENIX-Build/270//console This message is automatically generated. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch, PHOENIX-2535-2.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15187534#comment-15187534 ] Josh Mahonin commented on PHOENIX-2535: --- I think shading the Phoenix client would solve the spark-client JAR issue. That said, I can't apply this patch on master. Can you rebase it [~sergey.soldatov]? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15187484#comment-15187484 ] James Taylor commented on PHOENIX-2535: --- [~jmahonin] - will this solve the Spark integration issue (and make it so we don't need a special Spark client jar)? [~enis] - is this what you had in mind? WDYT, [~ndimiduk]? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15185950#comment-15185950 ] Sergey Soldatov commented on PHOENIX-2535: -- Could someone take a look at it? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15168589#comment-15168589 ] Sergey Soldatov commented on PHOENIX-2535: -- [~enis] We can shade guava only for server package and its not depends whether we build against shaded or not shaded hbase. Or I missed something? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > Attachments: PHOENIX-2535-1.patch > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15168271#comment-15168271 ] Enis Soztutar commented on PHOENIX-2535: bq. My vote is, at the very least, the regular and Spark client should be shaded. I'm not sure the use case for minimal and without-hbase. Agreed. bq. Enis Soztutar I'm not 100% sure, but it seems that in this case we need to build phoenix-core against shaded artifacts, so both server and client will depends on them. Good question. If Phoenix also uses shaded jars on the server side, it might be good since then Phoenix can use its own version of guava, etc without depending on Hadoop's or HBase's versions. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15159010#comment-15159010 ] Josh Mahonin commented on PHOENIX-2535: --- My vote is, at the very least, the regular and Spark client should be shaded. I'm not sure the use case for minimal and without-hbase. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15158117#comment-15158117 ] Sergey Soldatov commented on PHOENIX-2535: -- Do we need to shade all clients? At the moment we have regular, minimal, spark, without-hbase. Should they all be shaded? Another question whether we want to shade most of the dependencies like it was done in hbase or we want to shade just some of them (guava/jackson/something else)? [~enis] I'm not 100% sure, but it seems that in this case we need to build phoenix-core against shaded artifacts, so both server and client will depends on them. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15154761#comment-15154761 ] Enis Soztutar commented on PHOENIX-2535: One issue [~sergey.soldatov] raised is that, we should decide whether we are going with only shaded clients, or both shaded and unshaded clients. Obviously only shaded clients will be good because we do not have to deal with maintaining two different sets of artifacts, and with the thin/thick and shaded/non-shaded the combination will be at least 4 just for the client side. We can also decide to do a different thing for 4.x versus 5.0. I think the question is what is the API surface for Phoenix and whether we consider dependencies as API. I think it is clear that as a JDBC driver, the only client-visible interface is JDBC. However, with MR code and Spark code, PDataTypes, etc, we maybe exposing our dependencies to users. BTW, the shaded clients should also depend only on shaded-hbase artifacts if it is possible. > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar >Assignee: Sergey Soldatov > Fix For: 4.8.0 > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)
[jira] [Commented] (PHOENIX-2535) Create shaded clients (thin + thick)
[ https://issues.apache.org/jira/browse/PHOENIX-2535?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel=15114477#comment-15114477 ] James Taylor commented on PHOENIX-2535: --- [~ndimiduk] - any chance you could take this one? > Create shaded clients (thin + thick) > - > > Key: PHOENIX-2535 > URL: https://issues.apache.org/jira/browse/PHOENIX-2535 > Project: Phoenix > Issue Type: Bug >Reporter: Enis Soztutar > Fix For: 4.8.0 > > > Having shaded client artifacts helps greatly in minimizing the dependency > conflicts at the run time. We are seeing more of Phoenix JDBC client being > used in Storm topologies and other settings where guava versions become a > problem. > I think we can do a parallel artifact for the thick client with shaded > dependencies and also using shaded hbase. For thin client, maybe shading > should be the default since it is new? -- This message was sent by Atlassian JIRA (v6.3.4#6332)