cayenne-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Andrus Adamchik <>
Subject Re: [jira] [Created] (CAY-1598) Per DataMap listeners are called for all entities in DataDomain
Date Thu, 18 Aug 2011 10:34:42 GMT
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)


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

View raw message