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]
