Services are cheap and easy.  Some people have been clamorring to have
more power when just instantiating beans (to not just instantiate
them, but configure them, much as you configure a service with
BuilderFactory).

I haven't gotten around to that because I don't use beans that way,
when I use beans at all.  As soon as you need configuration, you're
building something complex that should be a service.

Likewise, folks have been asking to allow services to be classes, not
interfaces.  Yes, you can maybe kludge something together by creating
subclasses and all, but I strongly feel You Should Not Do That; that's
what interfaces are for! If someone is willing to pay me to do that
work, it's one thing (maybe!), but I'm in no hurry to add something
that I feel undermines the intent of the framework when I could be
working on things that will make the framework better!


On Sun, 17 Oct 2004 13:10:20 +0200, Istvan Orban <[EMAIL PROTECTED]> wrote:
> Hi,
> 
> thanks for the answer. I think I just wanted to overcompicate it as
> usual ;)
> 
> I wanted to have my DataSource(s) as private 'services' (objects)
> configured individually for each service which needs it.
> But I guess that's just something I do not really need, and it's easier
> this way.
> 
> Istvan
> 
> 
> 
> >Hello Istvan,
> >
> >First of all the problem you describe is not actually related to
> >configuration points and contributions in HiveMind.
> >I think one easy way to do what you want is to do something like that:
> >
> ><service-point id="DataSource1" interface="javax.sql.DataSource">
> >       <invoke-factory service-id="hivemind.BuilderFactory">
> >               <construct class="org.apache.commons.dbcp.BasicDataSource">
> >                       ...
> >               </construct>
> >       </invoke-factory>
> ></service-point>
> ><service-point id="DataSource2" interface="javax.sql.DataSource">
> >       <invoke-factory service-id="hivemind.BuilderFactory">
> >               <construct class="org.apache.commons.dbcp.BasicDataSource">
> >                       ...
> >               </construct>
> >       </invoke-factory>
> ></service-point>
> >
> >And then for any service that need access to DataSource1:
> >
> ><service-point id="MyDAO" interface="com.acme.MyDAO">
> >       <invoke-factory service-id="hivemind.BuilderFactory">
> >               <construct class="com.acme.MyDAOImpl">
> >                       <set-service property="dataSource"
> >                                       service-id="DataSource1">
> >               </construct>
> >       </invoke-factory>
> ></service-point>
> >
> >What is important here (it seems you missed that) is not to exclusively use
> ><set> when you use BuilderFactory, but use the more appropriate
> ><set-service>.
> >
> >If you have a service that needs both DataSource 1 & 2, just do:
> >
> ><service-point id="MyComplexDAO" interface="com.acme.MyComplexDAO">
> >       <invoke-factory service-id="hivemind.BuilderFactory">
> >               <construct class="com.acme.MyDAOComplexImpl">
> >                       <set-service property="dataSource1"
> >                                       service-id="DataSource1">
> ><set-service property="dataSource2"
> >                                       service-id="DataSource2">
> ></construct>
> >       </invoke-factory>
> ></service-point>
> >
> >Hope this helps
> >
> >
> >-----Original Message-----
> >From: Istvan Orban [mailto:[EMAIL PROTECTED]
> >Sent: Sunday, October 17, 2004 3:13 PM
> >To: [email protected]
> >Subject: Configuration ?
> >
> >Hi,
> >
> >I come across with an other problem. it seems the configuration and
> >contribution part is not fully clear for in Hivemind.
> >
> >I have some services which needs Database access,
> >I have got 2 services accessing the same db, and an other which requests
> >data from a second db.
> >
> >I do not want to create 2 servicse for accessing the the 2 db, although
> >I like this example as how easy to configure DB access with Hivemind
> >
> >    <service-point id="DefaultDataSource" interface="javax.sql.DataSource">
> >        <invoke-factory service-id="hivemind.BuilderFactory">
> >            <construct class="org.apache.commons.dbcp.BasicDataSource">
> >                <set property="driverClassName"
> >value="org.firebirdsql.jdbc.FBDriver"/>
> >                <set property="url"
> >value="jdbc:firebirdsql:localhost/3050:D:/Firebird/data/etstore.gdb"/>
> >                <set property="username" value="SYSDBA"/>
> >                <set property="password" value="masterkey"/>
> >            </construct>
> >        </invoke-factory>
> >    </service-point>
> >
> >
> >My services has a property called Datasource and I would like to feed
> >them somehow using the configuratoin power of Hivemind.
> >But I'm little stuck how could I have 2 configurations where I have 2
> >pooled DataSource with all the config values set
> >and when defining the 3 servies I would just bind the needed Datasource
> >to the service.
> >
> >Could someone give me some useful advices, or directions what should I
> >use, or how could I achive this the best way.
> >
> >Thanks a lot!
> >
> >---------------------------------------------------------------------
> >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]
> 
> 


-- 
Howard M. Lewis Ship
Independent J2EE / Open-Source Java Consultant
Creator, Jakarta Tapestry
Creator, Jakarta HiveMind
http://howardlewisship.com

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to