On Aug 28, 2008, at 2:00 PM, Andrey Razumovsky wrote:
Also I agree with Ari about not having it as a runtime dependency, and
instead bundling it with the Modeler. There is a lot of value in
the core
library to stay lean. Maybe we can access it with reflection from
DbGenerator to prevent a compile dependency?
We're talking about DbLoader here.
Yep, sorry my bad, I meant DbLoader.
And of course we will not have
any dependency from it, because usage of Inflectior is just an
implementation of naming strategy interface. The question is about
where to
place this class - in core or in modeler. If we design everything
for the
modeler, then why DbLoader class itself is located in the core?
This is considered to be a part of Cayenne core API.
Still, I agree that we can sacrifice this strategy to keep core
library smaller and
less dependent.
So, I'm going to initiate uploading the library to main repo and
include
dependency to the modeler.
+1.
Actually we can follow precedents. See "Optional Runtime Dependencies"
here:
http://cayenne.apache.org/doc/jar-files-and-dependencies.html
It is listing jars that may be required by runtime if a user wants to
use a certain feature in a certain configuration. The way this is
handled in Maven is setting such a jar as a "compile" dependency of
"cayenne-jdk1.5-unpublished" module, but not the user-visible "cayenne-
server" module.
Moreover things like commons-dbcp are also set as compile Modeler
dependencies, achieving the same exact thing we are trying to do here.
Andrus