Comments (10)
http://www.jcommander.org/#_lists
or
http://www.jcommander.org/#list-value
from schemaspy.
I updated the issue and jcommander doesnt solve the issue. But that might be because I was unclear about the issue.
from schemaspy.
@npetzall -loadjars
parameter was added to the SchemaSpy to resolve issue with Cloudera Impala JDBC driver. You cna read more here - Support for Impala #64
Now -loadjars
is loading only additional drivers that are in the same folder where JDBC driver it is, nothing more nothing less.
Based on my understanding you would like to extend -dp
functionality in a little different manner for other purposes to cover other JDBC cases similar to Cloudera Impala.
I will try to thnik about this change and maybe we can improve this a little
from schemaspy.
Impala wouldn't actually need a loadjars since the jars could have been specified.
Jar1:Jar2:Jar3 etc etc.
So having -loadjars which is incompatible with the above seems complex.
I'll have another look at it tonight.
from schemaspy.
-dp
Allows to specify driverjar and additional jars
format:
lib/one.jar
or
lib/one.jar:lib/two.jar:lib/three.jar
-loadjars
Allow to specify driverjar and it will load all jars in same folder (now it actually loads .?ar(jar,war,nar etc)
However it puts constraint on -dp path it can not be in de second form:
lib/one.jar:lib/two.jar,lib/three.jar
The proposed solution with a small twist.
-dp would allow specific jar, list of jars lib/one.jar:lib/two.jar:lib/three.jar:lib/anyOtherTypeOfFile
and even list of directories lib:ext-lib
.
If -dp element is a directory it will include all .?ar file and even the directory to the classpath of driver loading.
So instead of listing jars or even a single jar and adding -loadjars true, it would load them.
Everything above would just be: -dp lib
from schemaspy.
@npetzall thank you for detailed explanation and description. I fully agree with you that it will be much easier for SchemaSpy users to have only one parameter -dp and few specyfic option how to load the driver or additional files related to it.
I would like to start working on this enhancement after when I will merge changes made by @Riggs333 to the Config class with new JCommander added to the project.
from schemaspy.
@rafalkasa this can be done right now, the change is local to DbDriverLoader. You can leave the -loadjars option and it can be removed after his PR. DbDriverLoader will just stop using loadjars flag.
from schemaspy.
@rafalkasa Ok if i grab this one?
from schemaspy.
Yes sure you can grab this one, I'm more than happy that you have energy and time to working on SchemaSpy
from schemaspy.
I haven't verified order since it hasn't been an issue.
We need to talk about classloaders and not classpaths.
When the driver is loaded we create a new classloaders if -dp has resulted in existing path(s).
This classloaders uses the classloaders of schemaspy as it's parent classloaders so they are chained.
I did a quick look in Class.java and sadly it's a native call. But what I've heard about classloading is that it checks the parent first. Child first is normally found in applicationservers like tomcat to avoid static classes to be shared between applications.
So there is no requirement to use dp or that it needs to point at a file not on classpaths.
This fact is used in the docker image which doesn't use -dp but classpath.
So if order is truly important I can verify it.
Any change in order would require a use-case just so that we can implement it as a test, describing why we want that behavior.
from schemaspy.
Related Issues (20)
- schemespy is not creating folder HOT 2
- [Feature request] Add table description to the relation diagrams
- Incorrect edge rendering with latest graphviz HOT 2
- SchemaSpy: Error: java.lang.UnsupportedClassVersionError HOT 2
- Wrong queries for Postgres HOT 3
- Add a "comment" column to a table of routines parameters. HOT 1
- I'm getting the following ERROR: column p.proisagg does not exist HOT 1
- Import Schema from CSV instead of DB HOT 1
- Release schedule HOT 1
- SchemaSpy automatically detects only Foreign Keys that reference a Primary Key HOT 7
- marcelstoer:chore/jar-noteAre there any objections to this PR marked as "important"? HOT 1
- Docker: arm image HOT 1
- Moving GUI components
- GUI does not respond to re-sizing HOT 1
- No relationships image created HOT 6
- Too much information in error.
- Sign snapshots
- Cant get line breaks in Table Comments to work. HOT 6
- I am unable to get comments
- Oracle database - null password given HOT 5
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from schemaspy.