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]
