History | Log In     View a printable version of the current page.  
Issue Details (XML | Word | Printable)

Key: IDEADEV-21436
Type: New Feature New Feature
Status: Open Open
Priority: Normal Normal
Assignee: Eugene Zhuravlev
Reporter: Jacques Morel
Votes: 0
Watchers: 2
Operations

If you were logged in you would be able to see more operations.
IDEA: Development

Automatically hide spring plumbing (aop, cglib, jdk proxy, bean lookup...) in debugger if a spring facet has been added to the project

Created: 21 Sep 07 06:40   Updated: 25 Sep 07 16:18
Component/s: Debugger, J2EE.Spring
Fix Version/s: None

Original Estimate: Unknown Remaining Estimate: Unknown Time Spent: Unknown

Build: 7,291
Severity: High


 Description  « Hide
Spring raises the abstraction level of the programming model by providing transparent services that uses a lot of aop "magic" behind the scene.
The problem is that that abstraction level is not maintained in all aspects of the development and the magic plumbing leaks sometimes:
when debugging, a programmer is totally exposed to that plumbing and it can be overwhelming:
1. Scoped bean: inspecting the state of scoped bean proxy is useless right now. One has to know that the proxy implements ScopedObject and call getTargetObject() to retrieve the real bean
2. Advised calls: invoking a method on any dynamic proxy (cglib or jdk) with interceptors mean that the developer has to step through 20-30 invocations in order to get to the advised call.

Solution: IDEA provide a way to hide these:
1. automatically dereference a proxy to show the real state,
2. hide all spring/cglib/jdk plumbing methods to only show business methods and application interceptors.

Related to IDEA-15173



 All   Comments   Work Log   Change History      Sort Order:
Taras Tielkes - 21 Sep 07 20:15
For those that are exploring arcane bugs in spring plumbing (of which there are many) - how do we "un-hide" it?

Jacques Morel - 22 Sep 07 04:26
I don't see it different than the JDK methods. You would want to be able to force stepping into it or turning off the dereferencing

Taras Tielkes - 25 Sep 07 16:18
Jacques, if I understand correctly, you want a pre-packaged set of "Type Renderers" and "Do not step into..." filters, correct?
I think it would help if you could specify what these should be in more detail: Spring AOP infrastructure includes many classes, and these are changing/expanding from release to release.