I just didn't list out the other primitive types (boolean, long, double, etc.)
<service-id/> would be the constructed service's id, as a string, alternative to <construct service-id-property="..."/> <service service-id="..."/> would be a reference to some other service, analagous to <set-service property="..." service-id="..."/> -- 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:[EMAIL PROTECTED] > Sent: Thursday, October 02, 2003 10:04 AM > To: Jakarta Commons Developers List > Subject: Re: [HiveMind] extend BuildFactory to use static > fields/methods > > > > > Howard M. Lewis Ship wrote: > > >This looks pretty darn good. Just a few thoughts/observations: > > > >1) Could we just merge ConstructorFactory into BuilderFactory, to > >provide both sets of options (using constructors, then optionally > >setting properties). > > > I really like the idea as long as we have both the options. > > >2) Could we use > >http://jakarta.apache.org/commons/beanutils/api/org/apache/co > mmons/bean > >utils/ConstructorUtils.html > >to access the constructor (this applies to elsewhere in the > framework). Method public static > >Object invokeConstructor(Class klass, Object[] args) seems > to do the trick, and I will be changing > >other code to start using this. > >3) The exception thrown on line 133 should be more > descriptive, come from HiveMind.properties, and > >include the correct Location. > >4) Need an update to framework/xdoc/BuilderFactory.xml to > describe new features (once merged into > >BuilderFactory). > >5) For the constructor arguments, would this look better: > > > > <construct ...> > > <string>foo</string> > > <service>service-id</service> > > <configuration>config-id</configuration> > > > >?? Maybe, maybe not. > > > Don't we need the primitives? I think we do. > > >6) What if the constructor expects the Log, Messages or > service id to > >be a parameter? Need <log/> <messages/> <service-id/> elements. > > > How is <service> and <service-id> different? I think we will > need a way > to pass in everything that we can, so we may need <log> and > <messages> > too. Just my 2 cents. > > > > >-- > >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: news [mailto:[EMAIL PROTECTED] On Behalf Of Knut Wannheden > >>Sent: Wednesday, October 01, 2003 6:56 PM > >>To: [EMAIL PROTECTED] > >>Subject: Re: [HiveMind] extend BuildFactory to use static > >>fields/methods > >> > >> > >>Howard, > >> > >>I found it was easiest to develop the service as part of the > >>HiveMind project itself. That way I have all the classpaths > >>set up and could reuse the test harness, etc. Therefore I now > >>attach the additions and changes as a patch. If this isn't > >>convenient for you I will try to separate the code and send > >>it in a different form. > >> > >>--knut > >> > >>"Howard M. Lewis Ship" <[EMAIL PROTECTED]> wrote in message > >>news:[EMAIL PROTECTED] > >> > >> > >>>I do like the idea of mixing the two models; write some tests and > >>>we'll > >>> > >>> > >>see about integrating it > >> > >> > >>>with hivemind.BuilderFactory. > >>> > >>>-- > >>>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: news [mailto:[EMAIL PROTECTED] On Behalf Of Knut Wannheden > >>>>Sent: Wednesday, October 01, 2003 4:57 PM > >>>>To: [EMAIL PROTECTED] > >>>>Subject: Re: [HiveMind] extend BuildFactory to use static > >>>>fields/methods > >>>> > >>>> > >>>>I have written a service implementing this strategy, with a minor > >>>>difference: I didn't add a nested <properties> as you proposed, > >>>>instead the <set-...> elements are immedeate child elements. This > >>>>way the service can be used everywhere hivemind.BuilderFactory is > >>>>used. E.g. > >>>> > >>>><construct class="..."> > >>>> <set-service service-id="..."/> > >>>> <set-boolean .../> > >>>> <int value="42"/> > >>>> <set-int .../> > >>>> <string value="foo"/> > >>>></construct> > >>>> > >>>>The constructor parameter elements and property elements can be > >>>>mixed freely, as long as the constructor parameter elements are > >>>>given in the same order as in the actual constructor. In > >>>> > >>>> > >>this case: > >> > >> > >>>>int, String. > >>>> > >>>>The service supports the following constructor parameter > >>>>elements: <string>, <int>, <long>, <boolean>, <service>, > >>>><configuration>, and <resource>. > >>>> > >>>>If anyone's interested I can supply the source. I just > >>>> > >>>> > >>thought I'd > >> > >> > >>>>write some more unit tests first... > >>>> > >>>>--knut > >>>> > >>>>"Christian Essl" <[EMAIL PROTECTED]> wrote in message > >>>>news:[EMAIL PROTECTED] > >>>> > >>>> > >>>>>That would be realy helpful. Maybe we could add a > >>>>> > >>>>> > >><properties> tag > >> > >> > >>>>>which would include the current BuilderFactory tags and set the > >>>>>properties after the service is constructed. > >>>>> > >>>>><contruct class="..."> > >>>>> <service service-id="..."/> > >>>>> <configuration configuration-id="..."/> > >>>>> <int value="..."/> > >>>>> (etc.) > >>>>> <properties> > >>>>><set-boolean .../> > >>>>>(etc.) > >>>>> </properties> > >>>>></construct> > >>>>> > >>>>> > >>>>>On Wed, 1 Oct 2003 10:22:52 -0400, Howard M. Lewis Ship > >>>>><[EMAIL PROTECTED]> wrote: > >>>>> > >>>>> > >>>>> > >>>>>>Maybe "ConstructorFactory"? Something like: > >>>>>> > >>>>>><contruct class="..."> > >>>>>><service service-id="..."/> > >>>>>><configuration configuration-id="..."/> > >>>>>><int value="..."/> > >>>>>>(etc.) > >>>>>></construct> > >>>>>> > >>>>>>The elements inside the <construct> element are the > >>>>>> > >>>>>> > >>parameters > >> > >> > >>>>>>to the constructor. > >>>>>> > >>>>>>I'll be setting up a HiveMind:Contrib subproject shortly. We > >>>>>>can start putting stuff in there and then migrate it up to > >>>>>>library or framework if it proves to be popular > >>>>>> > >>>>>> > >>>>and > >>>> > >>>> > >>>>>>essential. > >>>>>> > >>>>>>-- > >>>>>>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: news [mailto:[EMAIL PROTECTED] On Behalf Of Knut > >>>>>>> > >>>>>>> > >>>>Wannheden > >>>> > >>>> > >>>>>>>Sent: Wednesday, October 01, 2003 10:18 AM > >>>>>>>To: [EMAIL PROTECTED] > >>>>>>>Subject: Re: [HiveMind] extend BuildFactory to use static > >>>>>>> > >>>>>>> > >>>>fields/methods > >>>> > >>>> > >>>>>>>Then how about a new factory service which lets you > >>>>>>> > >>>>>>> > >>specify the > >> > >> > >>>>>>>constructor parameters? This is also a very common > >>>>>>> > >>>>>>> > >>IoC pattern > >> > >> > >>>>>>>AFAIK. > >>>>>>> > >>>>>>>--knut > >>>>>>> > >>>>>>>"Howard M. Lewis Ship" <[EMAIL PROTECTED]> wrote in message > >>>>>>> > >>>>>>> > >>>>>>news:[EMAIL PROTECTED] > >>>>>>Outside of Kurt's use case ... wrapping around > >>>>>> > >>>>>> > >>machine-generated > >> > >> > >>>>>>code, I feel that this talk of accessing static > >>>>>> > >>>>>> > >>>>singletons is a step > >>>> > >>>> > >>>>>>backwards. > >>>>>> > >>>>>>The point of HiveMind is to eliminate those static > >>>>>> > >>>>>> > >>variables and > >> > >> > >>>>>>static inits, do things thread-safe and just-in-time. > >>>>>> > >>>>>>-- > >>>>>>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: > >>>>>>[EMAIL PROTECTED] > >>>>>>For additional commands, e-mail: > >>>>>> > >>>>>> > >>>>[EMAIL PROTECTED] > >>>> > >>>> > >>>>>> > >>>>>> > >>>>>> > >>-------------------------------------------------------------------- > >> > >> > >>>>>>- > >>>>>>To unsubscribe, e-mail: > >>>>>>[EMAIL PROTECTED] > >>>>>>For additional commands, e-mail: > >>>>>> > >>>>>> > >>>>[EMAIL PROTECTED] > >>>> > >>>> > >>>>> > >>>>>-- > >>>>>Using M2, Opera's revolutionary e-mail client: > >>>>> > >>>>> > >>>http://www.opera.com/m2/ > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>------------------------------------------------------------ > --------- > >> > >> > >>>To unsubscribe, e-mail: [EMAIL PROTECTED] > >>>For additional commands, e-mail: > [EMAIL PROTECTED] > >>> > >>> > >> > >> > >> > > > > > >--------------------------------------------------------------------- > >To unsubscribe, e-mail: [EMAIL PROTECTED] > >For additional commands, e-mail: [EMAIL PROTECTED] > > > > > > > > > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]