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





Reply via email to