When designing DI (and specifically filling in the standard DI modules), I 
always asked myself a question whether this or that piece is a part of "model" 
or "runtime services". Before DI was in place, our model was in a way 
fulfilling DI role, so we'd stick something like a JGroups port in it, which 
was completely inflexible of course... Now all the runtime decisions about this 
or that "service" can be deferred till runtime, i.e. *after* modeling, which is 
good and flexible.

I think with PkGenerator we have a similar case. We allow the model to define a 
few standard strategies, but then override (or implement them) depending on 
deployment conditions if needed. Very similar to how DI handles DbAdapter now.

Andrus


On Jul 6, 2012, at 5:31 PM, Michael Gentry wrote:
> I think it would be nice if alternative PK generators could be
> specified in the Modeler.
> 
> mrg
> 
> On Fri, Jul 6, 2012 at 2:57 AM, Andrus Adamchik <and...@objectstyle.org> 
> wrote:
>> Per this document Cayenne supports various PK generation strategies with 
>> "Meaningful Primary Key" being user-defined, and the rest generated by the 
>> framework:
>> 
>> http://cayenne.apache.org/doc/primary-key-generation.html
>> 
>> PkGenerator is an existing interface that implements these strategies. The 
>> task is about making it managed by Cayenne dependency injection (DI) 
>> container. A similar task done in 3.1 was switching DbAdapter to DI. 
>> Currently DbAdapter owns PkGenerator. The task is about breaking this 
>> dependency and making PkGenerator directly injectable where it is needed.
>> 
>> BTW this may sound simple, but is actually a fairly deep design task. So if 
>> you feel like you need to learn Cayenne runtime before taking on it, I'd 
>> recommend maybe other tasks from my earlier list. But of course you are 
>> welcome to take on this one right away :)
>> 
>> Andrus
>> 
>> 
>> On Jul 5, 2012, at 5:59 PM, Eshan Sudharaka wrote:
>> 
>>> Or is it about adding the primary key functionality like auto increment
>>> which we can see in JPA ? (generating the values of the primary keys for
>>> each rows of a table)
>>> On Thu, Jul 5, 2012 at 8:00 PM, Eshan Sudharaka <esudhar...@gmail.com>wrote:
>>> 
>>>> Hi,
>>>> I am interested in this task and need some more information regarding
>>>> this. I have a basic question regarding this PkGenerator.
>>>> 
>>>> As i see DbEntity contains a collection of DbAttributes for primary key
>>>> construction and I think this collection is initialized when we configure
>>>> primary keys through the cayenne modeler. So It is bit unclear me to
>>>> understand the requirement of having a Pkgenerator while is is the users
>>>> responsibility to set the primary key for a DbEntity. It would be great if
>>>> you can explain to logic behind this.
>>>> 
>>>> --
>>>> *~Thanks & Regards~*
>>>> ***
>>>> *
>>>> Eshan
>>>> 
>>>> 
>>> 
>>> 
>>> --
>>> *~Thanks & Regards~*
>>> ***
>>> *
>>> P.A.Eshan Sudharaka
>>> Dept of Computer Science and Engineering
>>> University of Moratuwa
>>> Sri Lanka
>>> http://esudharaka.blogspot.com/
>> 
> 

Reply via email to