commons-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Howard M. Lewis Ship" <hls...@comcast.net>
Subject RE: [HiveMind] extend BuildFactory to use static fields/methods
Date Thu, 02 Oct 2003 12:37:45 GMT
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).
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.
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:news@sea.gmane.org] On Behalf Of Knut Wannheden
> Sent: Wednesday, October 01, 2003 6:56 PM
> To: commons-dev@jakarta.apache.org
> 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" <hlship@comcast.net> wrote in message 
> news:018301c38861$4044ecd0$6501a8c0@ALMIGHTYBEAST...
> > 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:news@sea.gmane.org] On Behalf Of Knut Wannheden
> > > Sent: Wednesday, October 01, 2003 4:57 PM
> > > To: commons-dev@jakarta.apache.org
> > > 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" <christianessl@yahoo.de> wrote in message 
> > > news:oprwddvegswo6mmv@mail.yahoo.de...
> > > > 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 
> > > > <hlship@comcast.net> 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:news@sea.gmane.org] On Behalf Of Knut
> > > Wannheden
> > > > >> Sent: Wednesday, October 01, 2003 10:18 AM
> > > > >> To: commons-dev@jakarta.apache.org
> > > > >> 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" <hlship@comcast.net> wrote in message
> > > > > news:016001c38821$2e575700$6501a8c0@ALMIGHTYBEAST...
> > > > > 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: 
> > > > > commons-dev-unsubscribe@jakarta.apache.org
> > > > > For additional commands, e-mail:
> > > commons-dev-help@jakarta.apache.org
> > > > >
> > > > >
> > > > >
> > > 
> --------------------------------------------------------------------
> > > > > -
> > > > > To unsubscribe, e-mail: 
> > > > > commons-dev-unsubscribe@jakarta.apache.org
> > > > > For additional commands, e-mail:
> > > commons-dev-help@jakarta.apache.org
> > > > >
> > > >
> > > >
> > > >
> > > > --
> > > > Using M2, Opera's revolutionary e-mail client:
> > http://www.opera.com/m2/
> >
> >
> >
> >
> > 
> ---------------------------------------------------------------------
> > To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
> > For additional commands, e-mail: commons-dev-help@jakarta.apache.org
> 
> 
> 


---------------------------------------------------------------------
To unsubscribe, e-mail: commons-dev-unsubscribe@jakarta.apache.org
For additional commands, e-mail: commons-dev-help@jakarta.apache.org


Mime
View raw message