On Mon, Mar 15, 2004 at 10:51:30PM -0500, Srinath Perera wrote:
> Thanks very much, that seem to solve a big problem I am having
> for some time.
No problem.
> >The part I haven't decided is where you get the ContainerIndex from--I
> > don't like the static getInstance method. It's likely ContainerIndex
> > will be made a GBean as well and also registered with the kernel, then
> > you can get it as an injected dependency or look it up from the kernel
> > directly.
> yes I am not sure, the webservice (caller for the invoke method) have all
> the information about the ejb it want to call. (name of the ejb ect..)
> We need to get Container Index using these information.
>
> When you decide on what would the best way to get the information please
> let me know.
I'd go with using int ids and grabbing the ContainerIndex via
getInstance. If worst comes to worst I can always change getInstance
to get the instance from the kernel for you, so you should be good.
> Mean time I try do the development using the openEJB. Even though the
> finer details differs that principle is same(IMHO).
Right.
Just to make sure, you are moving ahead with the codehaus cvs and not
the sf.net cvs right?
-David
> > On Mon, Mar 15, 2004 at 09:25:12PM -0800, Srinath Perera wrote:
> >> Hi all;
> >>
> >> for the JSR109 implementation for geranimo I want to write a code to
> >> call a
> >> EJB from the
> >> the same VM. I do not want use the Local interface.
> >>
> >> (what should happen is there is a servlet running in the webcontainer
> >> that
> >> run in the same VM in the J2EE container. this servlet want to call the
> >> ejb
> >> in the
> >> J2EE container directly calling J2EE container methods)
> >>
> >> I find a way to do it inside OpenEJB like this
> >>
> >> String deploymentID = . get deployment id from request
> >>
> >> DeploymentInfo deployment =
> >> OpenEJB.getDeploymentInfo(deploymentID);
> >>
> >> RPCContainer container =
> >> (RPCContainer)deployment.getContainer();
> >>
> >> container.invoke(deploymentID,callmethod,
> >> args, securityIdentity);
> >>
> >> when Open EJB is integrated to the apache does this thing preserved.
> >> Will
> >> this thing work in the gernimo as well.
> >
> > You'll have to change your code slightly with the new source, but
> > you're safe. In my rework/merge of the old main and nova branches, I
> > preserved the basic "flat" invocation style as it's a must for things
> > like web services, corba, etc. where clients aren't necessarily
> > java-aware--let alone cglib-aware.
> >
> > To summarize the new architecture:
> > - DeploymentInfo is merged with RpcContainter and are now just
> > EJBContainer
> > - Instead of DeploymentID, it's ContainerID
> > - The OpenEJB static class is being depricated (this part is in flux)
> >
> > The new code:
> >
> > String containerID = ... // get container id (aka deployment id) from
> > request
> > ContainerIndex index = ContainerIndex.getInstance();
> > EJBContainer container = index.getContainer(containerID);
> > container.invoke(callMethod, args, primKey);
> >
> > All container ids are indexed numerically, so it is possible to save
> > some space on the line by sending clients the index rather than the
> > full id. So:
> >
> > // At some point earlier...
> > ContainerIndex index = ContainerIndex.getInstance();
> > int containerIndex = index.getContainerIndex(containerID);
> > // send client containerIndex instead of containerID
> >
> > // Then later...
> > String cotnainerIndex = ... // get container index from request
> > ContainerIndex index = ContainerIndex.getInstance();
> > EJBContainer container = index.getContainer(containerIndex);
> > container.invoke(callMethod, args, primKey);
> >
> > That might be a smarter way to go as the nature of cotnainerID may
> > change--I don't think it will remain a String.
> >
> > The ContainerIndex is a temporary replacement for
> > OpenEJB.getDeploymentInfo; that the part in flux I mentioned.
> > Containers are GBeans and will be registered with the kernel. Odds
> > are I'll simply rework ContainerIndex to be kernel-aware so it knows
> > when containers come and go.
> >
> > The part I haven't decided is where you get the ContainerIndex from--I
> > don't like the static getInstance method. It's likely ContainerIndex
> > will be made a GBean as well and also registered with the kernel, then
> > you can get it as an injected dependency or look it up from the kernel
> > directly.
> >
> > At any rate, all this code is in the new OpenEJB cvs. See
> > http://wiki.apache.org/geronimo/OpenEJB for cvs and building
> > instructions.
> >
> >
> > -David
> >
> >
>
>
> ------------------------------------
> Lanka Sofware Foundation
> ------------------------------------
|