Howard M. Lewis Ship wrote:
This looks pretty darn good. Just a few thoughts/observations:I really like the idea as long as we have both the options.
1) Could we just merge ConstructorFactory into BuilderFactory, to provide both sets of options (using constructors, then optionally setting properties).
Don't we need the primitives? I think we do.2) Could we use http://jakarta.apache.org/commons/beanutils/api/org/apache/commons/beanutils/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.
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.6) What if the constructor expects the Log, Messages or service id to be a parameter? Need <log/> <messages/> <service-id/> elements.
-- 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'llsee about integrating it
with hivemind.BuilderFactory.this case:
--
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
thought I'dint, 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
<properties> tagwrite 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
parameterswhich 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
specify theandto 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
Wannhedenessential.
--
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
fields/methodsSent: Wednesday, October 01, 2003 10:18 AM
To: [EMAIL PROTECTED]
Subject: Re: [HiveMind] extend BuildFactory to use static
Then how about a new factory service which lets you
IoC patternconstructor parameters? This is also a very common
machine-generatedAFAIK.news:[EMAIL PROTECTED]
--knut
"Howard M. Lewis Ship" <[EMAIL PROTECTED]> wrote in message
Outside of Kurt's use case ... wrapping around
variables andsingletons is a stepcode, I feel that this talk of accessing static
backwards.
The point of HiveMind is to eliminate those static
--------------------------------------------------------------------http://jakarta.apache.org/tapestrystatic inits, do things thread-safe and just-in-time.
--
Howard M. Lewis Ship
Creator, Tapestry: Java Web Components
http://jakarta.apache.org/commons/sandbox/hivemind/ http://javatapestry.blogspot.com
--------------------------------------------------------------------[EMAIL PROTECTED]-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
---------------------------------------------------------------------http://www.opera.com/m2/[EMAIL PROTECTED]-
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail:
--
Using M2, Opera's revolutionary e-mail client:
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]
