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


Reply via email to