Thanks for the answer. However, I guess I was not very clear about what I'm trying to accomplish. Let me be a bit more concise and give an example:
I want to debug Hivemind itself. Suppose I have a project running on Hivemind.
I'm creating registry from a .sdl file (check the code below). I single step
into RegistryBuilder.constructDefaultRegistry() (This, I can accomplish).
public void run() {
Registry registry = RegistryBuilder.constructDefaultRegistry();
Calculator c = (Calculator)
registry.getService("com.kocbank.falez.onlineservers.hsmserver.Calculator",
Calculator.class);
I step into the method and see the following in Eclipse. I can step through
below lines. Wheee..
public static Registry constructDefaultRegistry()
{
ClassResolver resolver = new DefaultClassResolver();
RegistryBuilder builder = new RegistryBuilder();
builder.processModules(resolver);
However, when I try to inspect the resolver object created inside the function,
Eclipse complains that 'resolver cannot be resolved' (yes, I compiled Hivemind
with debug info).
I single step into builder.processModules(resolver); line. And see:
public void processModules(ClassResolver resolver)
{
if (LOG.isDebugEnabled())
LOG.debug("Processing modules visible to " + resolver);
processModulesResources(resolver, HIVE_MODULE_SDL);
processModulesResources(resolver, HIVE_MODULE_XML);
Which is nice. Here, I still can't inspect (or display) resolver object itself.
Eclipse still complains that resolver cannot be resolved. However, in the
variables pane, I can see resolver object's contents. But displayed as arg0.
Not resolver.
In other libraries included in my project, take servlet-api for instance, I can
inspect variables.
I guess this is a bit more clear. Appreciate any comments.
Regards,
Bulent Erdemir
-----Original Message-----
From: Howard Lewis Ship [mailto:[EMAIL PROTECTED]
Sent: Sat 7/10/2004 5:16 AM
To: [email protected]
Subject: Re: Debugging Hivemind
I doubt you can debug the runtime-generated proxies. There's
literally no Java source file to step through. That you can't iPut
the breakpoints in your own code and don't worry about how you get
there :-)
I'm working on a HiveMind-driven project right now, so as necessary I
set break points in my code, i.e.:
Thread [PoolThread-0] (Suspended (breakpoint at line 31 in
ForumThreadDataSource))
ForumThreadDataSource.getThreadsInRange(int, int) line: 31
$Interceptor_fda6d35c7c_11.getThreadsInRange(int, int) line: not
available [local variables unavailable]
$InnerProxy_fda6d3590b_8.getThreadsInRange(int, int) line: not
available [local variables unavailable]
$SingletonProxy_fda6d358f7_7.getThreadsInRange(int, int) line: not
available [local variables unavailable]
ThreadSummaries$Enhance_51(ThreadList).prepareForRender(IRequestCycle)
line: 57
ThreadSummaries$Enhance_51(AbstractComponent).render(IMarkupWriter,
IRequestCycle) line: 853
So I see what you mean; this is a Javassist issue, not a HiveMind issue.
Again, don't be concerned with the HiveMind proxies and interceptors,
set your breakpoints in your own code.
--
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
http://howardlewisship.com
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<<winmail.dat>>
--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
