Date: 2004-08-12T21:51:54
Editor: KurtHoehn <[EMAIL PROTECTED]>
Wiki: Jakarta HiveMind Wiki
Page: DatasourceService
URL: http://wiki.apache.org/jakarta-hivemind/DatasourceService
no comment
Change Log:
------------------------------------------------------------------------------
@@ -1,3 +1,29 @@
#pragma section-numbers off
= Creating a DataSource Service without writing code =
+One thing that I did not see in !HiveMind was any examples on how to easily
implement a !DataSource into my project using !HiveMind. I then took it upon
myself "again" to fix this so called deficiency. Looking thru the docs and
getting real excited about contributing to a new and kewl framework, I tried to
use every neat little keyword, factory and builder to create a totally reusable
service that of course everyone should have. I go to the !HiveMind JIRA and
submit my request for an enhancement to !HiveMind library, sitting back and
patting myself on the back I realize that I really over thought the process, I
retracted my request and went into hiding until now.
+
+What I realized is that I was recoding all the things that !HiveMind already
does for you. I went back to the code and deleted it and went to my
hivemodule.sdl now .xml and did this
+{{{
+ <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>
+}}}
+
+What I like about this is that the construct class can contain any class that
extents javax.sql.!DataSource and I can configure it thru its own setters. You
can include a !DataSource that has built in pooling, or you can also include
this service with other services that do the pooling for you.
+
+Here is an example implementation:
+{{{
+ Registry r = getRegistry();
+ DataSource datasource = (DataSource) r.getService(
"datasource.DefaultDataSource", javax.sql.DataSource.class );
+ Connection conn = datsource.getConnection();
+}}}
+
+In conclusion what I learned is there is a lot of power built into !HiveMind
and the other is not to junk up the core with what I thought was neat, instead
write a Wiki and hope someone reads it.
---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]