Re: Continue Eclipse Freemarker DLTK?

Daniel Dekany <[email protected]> Fri, 2 Aug 2013 12:24:40 +0200
Newsgroups gmane.comp.web.freemarker.devel
Message-ID <[email protected]>
Friday, August 2, 2013, 9:42:49 AM, Angelo zerr wrote:

> Hi Daniel,
>
> I like your idea. Is it possible for you to implement that with RMI
> and I will do the same thing for DBGP.

It is, but the question is when...

First I will have to finish the overloaded-method fixes (that's
something unrelated to debugging and DLTK), and that alone will take
some time. The logical thing would be if next I start working on
refactoring freemarker.debug and then add stepping. But, I don't think
Liferay will accept a FreeMarker release past summer (to be part of
their next release), and Greg said he could use the stepping in the
Liferay IDE, and certainly a lot more (because I bet many things are
missing from the debugger API). So, Greg, what if I roll out 2.3.21
earlier than the end of summer, and then at some later point 2.3.22
where the only change is improved debugging support? Would they still
hesitate to use that release in the product? I don't know, I'm just
trying to shove this feature in, while time is clearly running out...

> I would like to restart from scratch my DBGP debugger to : 
>
> 1) remove dependencies of DLTK.
> 2) manage debugging with existing application (I call that for the moment remote debugging).
>
> If DLTK dependencies are removed, I tell me that DBGP debugger
> could be hosted in the Freemarker JAR.
> Why? Because it will avoid to the user who wish to debug Freemarker
> to add an extra freemarker-dbgp.jar in their classpath.

Certainly, if the "standard" Eclipse FreeMarker plugin will use DBGP,
it should be able to connect with as little hassle as possible.
(Although it doesn't influence development, so we can decide it later
too.)

Speaking of which... As far as I see, DBGP requires the IDE(!) to
listen on port 9000 (or whatever you set up), and it's the application
server that connects there, and waits a continuation command from the
IDE. I don't get it. That sounds like if this protocol was designed
for applications locally, in a single-user environment. So let's say
you have a running development/staging server somewhere. How do you
tell the server (which is already running!) that you want to start
debugging from this-and-that workstation? Do you have to also open a
port on the server, and tell it with some non-standard protocol, that
please connect back to yourWorkstationIp:9000? And even after that,
connecting back to a workstation from a server can be a real headache.
You have to fight through all the fire walls and NAT. (The sane way is
to connect to the server on a fixed port, then you use that channel
for two-way communication.) How does DLTK do this?

Last not least, although FreeMarker doesn't compile to bytecode, is it
possible that we can still piggyback the standard Java debugging
protocol somehow? I guess not, but anyway, that would give the ideal
user experience. You just debug your application as normally, only you
can put break-points into templates. It's maybe impossible, just a
wild idea. If nothing else, maybe we can start the XxxDebuggerServer
through it, so that the system properties need not be set by the user.

> Regards Angelo
>
>
> 2013/8/2 Daniel Dekany <[email protected]>
> Friday, August 2, 2013, 12:03:24 AM, Daniel Dekany wrote:
>
>>   . `XxxDebuggerServer`, whose instantiation is done by FreeMarker,
>>      based on the system property (`freemarker.debug.debuggerServer`),
>>      unless it was already set with static
>>      Environment.setDebuggerServer(). `XxxDebuggerServer`, after
>>      translating from/to Xxx, delegates to
>>      `LocalDebuggerServer.getInstance()`.
>
> I meant, "delegates to Environment.getDebugger()"...
>
> And BTW, we don't have `DebuggerService` anymore. Of course.
>
> --
> Thanks,
>  Daniel Dekany

-- 
Thanks,
 Daniel Dekany


------------------------------------------------------------------------------
Get your SQL database under version control now!
Version control is standard for application code, but databases havent 
caught up. So what steps can you take to put your SQL databases under 
version control? Why should you start doing it? Read more to find out.
http://pubads.g.doubleclick.net/gampad/clk?id=49501711&iu=/4140/ostg.clktrk