Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problems because of shaded artefacts #91

Closed
mvitz opened this issue Jan 17, 2017 · 6 comments
Closed

Problems because of shaded artefacts #91

mvitz opened this issue Jan 17, 2017 · 6 comments

Comments

@mvitz
Copy link

mvitz commented Jan 17, 2017

During working on an example app to show how to connect Liquigraph and Spring Boot I found https://github.com/fbiville/liquigraph-spring-boot-example/issues/4

It seems that some component in this application is not able to work with jackson:2.7.0 which the shaded neo4j-jdbc-http-Driver includes. (btw. Spring-Boot uses 2.8.5 as default Jackson version).

I understand that the neo4j-jdbc-driver is shaded for easier tool usage. But why need the finer-grained drivers shading as well? If there is no way out of shading you should at least relocate these classes as described in https://maven.apache.org/plugins/maven-shade-plugin/examples/class-relocation.html. However keep in mind that shading (even without relocating) may already violate some licenses of dependencies you are using.

@sim51
Copy link

sim51 commented Jan 20, 2017

Hi @mvitz

A good compromise could be to only shade the neo4j-jdbc-driver and not the others.
So later, your project should works if you make a dep to a specific driver (like neo4j-jdbc-http or neo4j-jdbc-bolt), and we also keep the easy of use for tools.

What do you think ?

Cheers

@mvitz
Copy link
Author

mvitz commented Jan 20, 2017

This compromise would be suitable for me and seems to be the best solution for the time being without affecting to much users.

@jexp
Copy link
Member

jexp commented Jan 20, 2017

I think it's a different use-case

  1. using jdbc with a tool (which often only allows for a single jar) -> shadow at least http and bolt
  2. using jdbc in a program -> it should probably not shadow or shadow bolt by default for easier setup

so perhpas we can create different artifacts

  1. a full shadow for bolt + http for use in a tool
  2. non-shadowed versions where you would explicitely put in http or bolt and they would pull their dependencies via maven
  3. optionally a small version of just bolt embedded

@mvitz
Copy link
Author

mvitz commented Jan 20, 2017

d188b9a fulfills 1. and 2. of your list.

@inserpio
Copy link
Collaborator

inserpio commented May 14, 2017

@jexp we currently have both neo4j-jdbc-bolt-3.x.x.jar and neo4j-jdbc-http-3.2.0.jar not shaded and neo4j-jdbc-driver-3.x.x.jar shaded. Should we close this?

@glaggia-larus
Copy link

As it is done, I close this.

There is a similar problem with the new embedded version.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

5 participants