Return-Path: Mailing-List: contact commons-dev-help@jakarta.apache.org; run by ezmlm Delivered-To: mailing list commons-dev@jakarta.apache.org Received: (qmail 20061 invoked from network); 10 Sep 2003 04:30:25 -0000 Received: from unknown (HELO rwcrmhc11.comcast.net) (204.127.198.35) by daedalus.apache.org with SMTP; 10 Sep 2003 04:30:25 -0000 Received: from comcast.net (pcp01252093pcs.hamden01.ct.comcast.net[68.63.137.34]) by comcast.net (rwcrmhc11) with SMTP id <2003091004303401300dhl04e> (Authid: hkrishnaswamy); Wed, 10 Sep 2003 04:30:34 +0000 Message-ID: <3F5EA882.3040709@comcast.net> Date: Wed, 10 Sep 2003 00:28:50 -0400 From: Harish Krishnaswamy User-Agent: Mozilla/5.0 (Windows; U; Windows NT 5.0; en-US; rv:1.4) Gecko/20030624 Netscape/7.1 (ax) X-Accept-Language: en-us, en MIME-Version: 1.0 To: commons-dev@jakarta.apache.org Subject: Re: [HiveMind] HiveMind vs. Eclipse References: <000001c376fb$ea6b8650$d0020a0a@ALMIGHTYBEAST> In-Reply-To: <000001c376fb$ea6b8650$d0020a0a@ALMIGHTYBEAST> Content-Type: multipart/alternative; boundary="------------040701070106040001030300" X-Spam-Rating: daedalus.apache.org 1.6.2 0/1000/N --------------040701070106040001030300 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Transfer-Encoding: 7bit I think I see your point now. Eclipse is a platform and a registry of extensions to the platform. HiveMind is just a registry of services and configuration. Howard M. Lewis Ship wrote: >Eclipse just has and > >As with HiveMind, you can have s in many plug-ins contribute to the same >. > >The gets all the contributions in a DOM-like format (thinly disguised XML elements >and attributes). > >Eclipse s can have a schema (in W3C Schema format, roughly), but that appears to >only be used by the PDE (this is not verified, however). Eclipse doesn't have the equivalent of >HiveMind's , , and for runtime (not buildtime) validation and >conversion. > >Eclipse includes a special case for dealing with classpath issues when a contribution is the name of >a class; it hooks into the right class loader and may activate the plugin when a class is >instantiated. Beyond that, Eclipse doesn't have a service model. > I think this is where the disconnect is. It is exactly because of this hook that I thought eclipse extensions are similar to services. But I see your point that services have various models and that a service can only be contributed to once. In that respect I agree that HiveMind extension-points are more similar to the Eclipse extension-poits than services. On another angle though, Eclipse is a platform and a registry of extensions to the platform while HiveMind is just a registry of services and configuration, nothing to extend, so from my understanding so far, my names for today are and :). > >Perhaps you are confused by the ability to pass parameters to a service implementation factory (such >as hivemind.Builder)? That looks like an (and leverages the same code), but only a >single module may contribute a service constructor, and therefore, there won't be multiple > elements for any given service. Multiple modules may contribute an . > >HiveMind , , , and don't >have any parallels in Eclipse, beyond the limited support for passing a class name as an attribute >in a contribution. From code I've looked at, different plugins will cooperate by accessing each >other's Plugin singleton's (via static methods). > >Also, to my knowledge, Eclipse is not expressly thread-safe. HiveMind is (to the best of my >knowledge). > > >Note: moved this over to Jakarta Commons Developer. > >-- >Howard M. Lewis Ship >Creator, Tapestry: Java Web Components >http://jakarta.apache.org/tapestry >http://jakarta.apache.org/commons/sandbox/hivemind/ >http://javatapestry.blogspot.com > > > >>-----Original Message----- >>From: Harish Krishnaswamy [mailto:hkrishnaswamy@comcast.net] >>Sent: Tuesday, September 09, 2003 11:45 AM >>To: Tapestry development >>Subject: Re: HiveMind feedback/questions >> >> >> >> >>Howard M. Lewis Ship wrote: >> >> >> >>>>>>-----Original Message----- >>>>>>From: Harish Krishnaswamy [mailto:hkrishnaswamy@comcast.net] >>>>>>Sent: Monday, September 08, 2003 4:20 PM >>>>>>To: Tapestry development >>>>>>Subject: HiveMind feedback/questions >>>>>> >>>>>> >>>>>>I put the Adder example together with a >>>>>> >>>>>> >>LoggingInterceptor in three >> >> >>>>>>modules and its pretty slick. Although the free form >>>>>> >>>>>> >>schema gets my >> >> >>>>>>head spinning ;). I think it'll take a little bit to get adjusted >>>>>>to living >>>>>>without constraints! I like the fact that it can support >>>>>> >>>>>> >>>>>> >>>>>> >>>>both IoC and >>>> >>>> >>>> >>>> >>>>>>SoC, nice! And the documentation is great. >>>>>> >>>>>>I have a few questions: >>>>>>1. What is rationale behind the names and >>>>>>? That would probably clarify my >>>>>>confusion with the >>>>>>names. >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>The naming is a bit tricky. I eventually ended up with >>>>> and because that part of >>>>> >>>>> >>>>> >>>>> >>>>HiveMind is very >>>> >>>> >>>> >>>> >>>>>close to Eclipse's plugin model; I decided that rather than have >>>>>competing names, I'd use the Eclipse names. >>>>> >>>>>To some degree, I wish I had gone with an earlier idea that >>>>> >>>>> >>>>> >>>>> >>>>I discarded >>>> >>>> >>>> >>>> >>>>>(can't remember why) where an extension point could be either a >>>>>configuration extension point, a service extension point, or both. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>> >>>>I had the same thought, but then I thought you might have >>>>differentiated >>>>them because of the special service contributions (create-instance, >>>>...). The other way would have definitely been much more >>>>simpler. Also, >>>>I had all along thought that the Hivemind service was >>>>analogous to the >>>>eclipse extension-point because they both provide behavioral >>>>extensions, >>>>while Hivemind extensions as such only provide objects that >>>>have to be >>>>manipulated by a service or something, am I at a loss here? >>>> >>>> >>>> >>>> >>>> >>>The plugin API is very, very close to the extension points; >>> >>> >>it doesn't really have the concept of a >> >> >>>service. >>>It does have special hooks that do the right class loader >>> >>> >>thing when a contribution is the name of a >> >> >>>class. Eclipse doesn't have the thing to convert the >>> >>> >>contributions directly into Java >> >> >>>objects ... most Eclipse plugins are full of code to walk >>> >>> >>elements and attributes and do the >> >> >>>conversions. >>> >>> >>> >>> >>This is certainly one area where Hivemind overtakes Eclipse. Using >>Hivemind to build Eclipse would have been a lot more simpler! >>But I am >>sorry, I still can't see difference between services and eclipse >>extension points, is it because extension points cannot take >>interceptor >>and factory contributions? But conceptually though, from my >>understanding, services and eclipse extension points can both take >>behavioral contributions and Hivemind extension points >>cannot. Sorry to >>belabor the point, may be I have to do more reading. >> >> >> >>> >>> >>> >>> >>>>> >>>>> >>>>> >>>>> >>>>>>It got me a little confused initially, >>>>>> and >>>>>> >>>>>> >>>>>> >>>>>> >>>> is more >>>> >>>> >>>> >>>> >>>>>>intuitive to me. >>>>>>2. How to debug deferred services when dynamic proxies are >>>>>>used? >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>> >>>>>Place your breakpoints inside your service implementation class. >>>>>Proxies and interceptors shouldn't need to be debugged. In >>>>> >>>>> >>>>> >>>>> >>>>some cases, >>>> >>>> >>>> >>>> >>>>>there's a method in an abstract class you can place breakpoints in. >>>>> >>>>> >>>>> >>>>> >>>>> >>>>I was actually trying to trace the call-chain from >>>>RegistryBuilder and >>>>couldn't proceed after I hit the proxy but I guess I can switch the >>>>service to Singleton for this purpose, right? I shall try >>>>this tomorrow. >>>> >>>> >>>> >>>> >>>Yes, that's a disadvantage of creating the code at runtime; >>> >>> >>there's no "source code" for the >> >> >>>debugger to step through. The advantages, even over >>> >>> >>something like XDoclet, is much easier build >> >> >>>time environment, and always perfectly in-sync, fewer >>> >>> >>build-time artifacts (such as generated Java >> >> >>>files), etc. >>> >>> >>> >>No argument here! >> >> >> >>>-- >>>Howard M. Lewis Ship >>>Creator, Tapestry: Java Web Components >>>http://jakarta.apache.org/tapestry >>>http://jakarta.apache.org/commons/sandbox/hivemind/ >>>http://javatapestry.blogspot.com >>> >>> >>>--------------------------------------------------------------------- >>>To unsubscribe, e-mail: tapestry-dev-unsubscribe@jakarta.apache.org >>>For additional commands, e-mail: tapestry-dev-help@jakarta.apache.org >>> >>> >>> >>> >>> >>> > > > > --------------040701070106040001030300--