You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (Commented) (JIRA)" <ji...@apache.org> on 2012/01/21 17:27:42 UTC
[jira] [Commented] (CAY-1616) Remove internal dependencies on
deprecated ObjectContext.localObject
[ https://issues.apache.org/jira/browse/CAY-1616?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13190460#comment-13190460 ]
Andrus Adamchik commented on CAY-1616:
--------------------------------------
After reviewing the patches, I decided to go a different way... The solution originally suggested in this Jira and implemented by Dzmitri was logical, but unfortunately too invasive. Also noticed a few places in the patch breaking separation of concerns (client classes implementing interface from access package, which is not available in ROP... not that it is documented anywhere :-)).
Anyways, per r1234358 "turns out all non-merge versions of the old localObject call are done on DataContext, not on generic ObjectContext, and are scoped inside access package. So I just created a package private method for this case" ...
Now we are down to just 2 calls of localObject (the merging variety) + a bunch of unit tests. Will see what we can do with those.
> Remove internal dependencies on deprecated ObjectContext.localObject
> --------------------------------------------------------------------
>
> Key: CAY-1616
> URL: https://issues.apache.org/jira/browse/CAY-1616
> Project: Cayenne
> Issue Type: Task
> Components: Core Library
> Affects Versions: 3.1M3
> Reporter: Andrus Adamchik
> Assignee: Andrus Adamchik
> Attachments: cross-context-mapping-strategy-implementation.patch, cross-context-mapping-strategy-unit-tests.patch, cross-context-mappingstrategy-switching.patch
>
>
> CAY-1611 introduces user-facing API for obtaining context-local objects. Still Cayenne internals keep using the old deprecated localObject(ObjectId, Persistent) method in many places. We need to create a replacement. For a replacement I am looking at binding a new DI service similar to this:
> CrossContextMappingStrategy
> Persistent locateInContext(ObjectId id);
> Persistent locateInChildContext(Persistent parentContextObject);
>
> From there it will all be about figuring a way to inject CrossContextMappingStrategy in various places where 'localObject' is used currently. Also possibly BaseContext should use the first method for its 'localObject' implementation.
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira