So if there are no strong objections, I guess we'll go ahead with proposed 
implementation (taking out incorrect DataMap listener mapping without providing 
a new DataDomain listener replacement in the Modeler)

Andrus

On Aug 12, 2011, at 11:44 AM, Andrus Adamchik wrote:

> 
> On Aug 12, 2011, at 11:31 AM, Aristedes Maniatis wrote:
> 
>> I like it in the Modeler because it exposes the functionality to users very 
>> clearly.
> 
> This is my concern as well. But my point is that once you become comfortable 
> enough with Cayenne to use it for something more advanced, it becomes 
> useless. Specifically different applications very often reuse the mapping, 
> but not the listeners. Again, I am fine with mapping DataObject callbacks in 
> the Modeler.
> 
>> And they are part of OR mapping, otherwise they wouldn't be part of Cayenne 
>> at all.
> 
> The keyword here is "mapping". Cayenne is mapping + runtime framework. I 
> think listeners belong in the later category, as they are not about mapping 
> the DB structure, but rather about business logic and application workflow. I 
> think this taking them out of the Model (at least the global ones for now) 
> will underscore a separation of the application layers - Cayenne manages 
> DataObjects, so you can map a callback method of a DataObject via Modeler. 
> Cayenne DOES NOT manage objects implementing business logic, but provides 
> extension points for them to act on Cayenne events. BTW listeners can be 
> pretty complex objects that require certain app dependencies that are not 
> available in the Cayenne DI container (but may be available from the app 
> container such as Spring or Guice).
> 
> So I think we can present an even better picture of the event system to the 
> end users with this approach.
> 
>> Sure you could instead add listeners using some sort of notation/injection 
>> in the code, but Hibernate people would say that the entire model could be 
>> described in that way.
> 
> Let's not even go there :-)
> 
> Andrus

Reply via email to