In deed this is an area where hivemind lacks a really smart solution.

1. You could use multiple module files. One that includes the service definition
(interface only) and one for each implementation (ldap, db):


        <implementation service-id="com.mycorp.security.data.UserData">
          <create-instance class="com.mycorp.security.data.ldap.UserDataImpl"/>
        </implementation>

In the application you could decide which implementation file to include.
But: This doesn't work very well with automatic loading hivemodule.sdl from META-INF directory (ok it works, but you must create a separate jar for each implementation).
Instead you could build your registry manually (like HiveMindTestCase does)


2. Use service overriding (http://jakarta.apache.org/hivemind/override.html
)

3. Look here for a possible future solution : http://wiki.apache.org/jakarta-hivemind/ConditionalContributionsProposal

Achim Huegen


Am Sat, 10 Jul 2004 02:01:36 -0700 (PDT) schrieb Erik Rasmussen <[EMAIL PROTECTED]>:


First of all, thank you to those who helped me with my
previous question.   I've tried posting a few thank
yous already, but they've been rejected.

My design question is, where should I keep my
hivemodule.sdl files?

Let's say I've got some classes that look like:

com.mycorp.security.service.SecurityService
com.mycorp.security.service.SecurityServiceImpl
com.mycorp.security.data.UserData
com.mycorp.security.data.GroupData
com.mycorp.security.data.db.UserDataImpl
com.mycorp.security.data.db.GroupDataImpl
com.mycorp.security.data.ldap.UserDataImpl
com.mycorp.security.data.ldap.GroupDataImpl

So I've got the business logic in SecurityServiceImpl
and it requires instances of UserData and GroupData to
run.  Initially, I thought I should put the
hivemodule.sdl in:
/com/mycorp/security/hivemodule.sdl
To keep it, well, "modularized".  Once I had my
security.jar, I could plug that functionality into any
application.

But the whole point of this facade/service pattern is
that I can swap out a different implementation of
UserData and GroupData and SecurityService wouldn't
need to know.  But in order to do that "swap", I have
to change hivemodule.sdl!  Please don't tell me I have
to have one hivemodule.sdl per application...  :-(

What's the best/recommended solution to this?  Where
should the hivemodule.sdl files live?

Thanks,
Erik


__________________________________ Do you Yahoo!? New and Improved Yahoo! Mail - 100MB free storage! http://promotions.yahoo.com/new_mail

---------------------------------------------------------------------
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]



Reply via email to