Good post, Jay!
On May 14, 2008, at 6:51 PM, Jay D. McHugh wrote:
> Hello again.
>
> (This is a resend because I left out part of my first paragraph by
> accident)
>
> Just in case someone else needs to do this. And, I must say that it
> is probably almost always a bad thing to do. In most cases, the
> need to have the exact same interface exposed on a range of classes
> that perform completely different functions should be rare.
Just a note that having several beans share the same business
interface isn't a bad thing to do by any stretch.
Also to note that with 2.1.1 you should be able to do quite a lot more
with subclassing than you could previously. Not sure if that helps
your exact scenario, but thought it might be a good addition to the
thread.
-David
> I just happen to have a block of utility classes that do data
> cleanup for me. They are too processor/disk intensive to be run all
> at the same time so I implemented them as a series of timer beans
> that chain together. Since I may need to add or remove new
> processes at a later date - I wanted to have a generic interface to
> work with so that I could add/delete/swap the processes without
> having to worry about the exact action that the timer would be
> performing.
>
> Here is how you would have several session bean classes that utilize
> the same interface class:
>
> 1) Create the one interface class.
> 2) Create the multiple bean classes implementing the interface class.
>
> Here is where it gets interesting (not particularly interesting
> though)
> 3) Inject an instance of your bean using the following syntax:
>
> @EJB(beanName="SpecificBeanImplementationClass") private
> GenericInterface specificBeanInstance;
>
> That should have all been on one line, but it was too long so it
> auto-wrapped. And of course the pretend names should be replaced
> with your particular class, interface, and instance names.
>
> Maybe this might help someone else,
>
> Jay
>
> Jay McHugh wrote:
>> (This will probably end up appearing twice eventually - sorry)
>> Hello all,
>> I have about 25 (currently - will probably increase over time)
>> timer beans
>> that really only need to expose the method to schedule them.
>> But I haven't been able to figure out how to share one interface
>> class and
>> still be able to inject the correct, particular timer out of the 25
>> different timer classes.
>> Is this possible/has anyone done anything like this?
>> Thanks,
>> Jay
>