On Fri Aug 12 17:37:36 2011, Andrus Adamchik wrote:
I am in favor of not having per-DataMap listener scope, just to keep things 
simple. So having per-DataDomain (aka global) scope and per-ObjEntity (or set 
of entities) scope seems sufficient.

Now the Modeler support. I don't know about others, but to me listeners don't belong in 
the mapping at all. Callbacks on DataObjects - yes, but listeners are classes with 
business logic not related to OR mapping. So my vote would be to kill the 
"Listeners" tab for DataMap (which we have to do anyways), but do not add an 
equivalent under DataDomain. Also consider that if we do add listener mapping under 
DataDomain tab, the listener XML would have to go into *-cayenne.xml file now, and that 
seems like a bad idea.

Andrus


On Aug 11, 2011, at 7:58 PM, Dzmitry Kazimirchyk wrote:

On 08/11/2011 10:35 AM, Dzmitry Kazimirchyk (JIRA) wrote:
Per DataMap listeners are called for all entities in DataDomain

Listeners assigned to DataMap in *.map.xml are registered as defaultListeners 
in EntityResolver which means that they are called for each entity in 
DataDomain regardless of their DataMap.

Do we need a DataMap listeners in Cayenne?
What we have now as DataMap listeners are actually global listeners. And there 
were no complains about this before. So can we just switch to global listeners 
instead of implementing them for DataMap?

I've just committed CAY-1599 and now global listeners can be registered using 
annotation api. So about this: should we completely remove DataMap listener 
registration from the modeler or maybe move it to DataDomain level?

Any opinions on this?


I like it in the Modeler because it exposes the functionality to users very clearly. And they are part of OR mapping, otherwise they wouldn't be part of Cayenne at all. 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.

Ari

--
-------------------------->
Aristedes Maniatis
GPG fingerprint CBFB 84B4 738D 4E87 5E5C  5EFA EF6A 7D2E 3E49 102A

Reply via email to