| Summary: | [Annotation] Proxies are not handled properly when artifacts are retrieved from ArtifactManager | ||
|---|---|---|---|
| Product: | [Technology] Tigerstripe | Reporter: | Navid Mehregani <nmehrega> |
| Component: | Annotations | Assignee: | Project Inbox <tigerstripe.annotations-inbox> |
| Status: | CLOSED FIXED | QA Contact: | |
| Severity: | critical | ||
| Priority: | P3 | ||
| Version: | unspecified | ||
| Target Milestone: | 0.5M0 | ||
| Hardware: | PC | ||
| OS: | Mac OS X - Carbon (unsup.) | ||
| Whiteboard: | |||
|
Description
Navid Mehregani
Code review was completed on November 9 2011. Major changes are noted below: ArtifactManager has been split between an interface and implementation classes. ArtifactManager is now an interface with the following implementations: ArtifactManagerImpl (Same as what ArtifactManager looked like before) and ContextualArtifactManager (New class, which wraps all objects into proxy objects). ContextualModelProject is new and implements ITigerstripeModelProject. It's used to return a "proxy-aware" version of artifact manager (i.e. ContextualArtifactManager). WrapHelper class is used by ContextualArtifactManager to wrap objects in ContextProjectAwareProxy objects ContextualModelProject and ContextualArtifactManager objects are returned by "invoke" method of ContextProjectAwareProxy. There is a Contextual annotation added to indicate which methods should return these objects. The annotation is read by ContextProjectAwareProxy. |