Today Jdbc-all package is created using drill-java-exec as dependency and then excluding unnecessary dependency. Also there is size check for jdbc-all jar to avoid including any unwanted dependency. But configured size has increased over time and doesn't really provide a good mechanism to enforce small footprint of jdbc-all jar. Following are some recommendation to improve it:
1) Divide java-exec module into separate client/server and common module
2) Have size check for client artifact only.
3) Update jdbc-all pom to include newly created client artifact and jdbc driver artifact.
- Have multiple profiles to include and exclude any profile specific dependency. For
example MapR profile will exclude hadoop dependency whereas apache profile will
- We can create 2 artifacts for jdbc-all: one with and other without (for smaller jar size) Hadoop dependencies.
4) Update client side protobuf to not have server side definitions like QueryProfile / CoreOperatorType etc