Dain Sundstrom wrote:
On Sep 14, 2006, at 3:15 PM, Rick McGuire wrote:

ISSUE #1: I added a NameService argument to the CORBABean constructor. The ConfigAdapter would take this NameService instance, and configure the ORB to use the NameService.getURI() result for it's initial NameService reference. Well, when trying to get Geronimo to build, I got a failure on one of the client plans because there was a CORBABean coded, but no NameService. The CORBABean had use the now obsolete arguments attribute to configure the ORB to use a remote NameService. I thought on this a little, and decided to just add a "local" attribute to the NameService GBean. If local is false, then the bean does not launch a local server instance and the getURI() returns the remote location of the NameService as specified by the host/port combination. This worked very well, but it somehow feels like a convenience hack to me. Does this sound ok, or should I take some other approach with this?

So does this mean we are not using the Sun name service at all even for the existing code that uses the Sun orb?
Not exactly. I restructured the code a bit so that the code that was formerly in the SunNameService class is now in the SunORBConfigAdapter class. The NameService GBean now calls the appropriate ConfigAdapter for launching the ORB. The NameService suffers from the same problem as the rest of the ORB code...you can't mix and match ORB usages in the same JVM instance.


ISSUE #3: In order for the Yoko ORB to function properly, the Yoko jar files need to be part of the endorsed.dir configuration or included on the bootstrap classpath. This makes it very difficult for the Yoko and the Sun code to coexist in the same build tree. The code will compile ok, but unit tests are a problem. There are a couple of tests that caused problems. The SunNameService class had a test which I replicated for the Yoko NameService. If the build was enabled for the Sun ORB, the Yoko test would cause a build failure. If enabled for the Yoko ORB, the Sun test would fail. When I made the changes to have a generic NameService GBean, both of these tests became obsolete, so they are deleted for now. Once we sort out the coexistance strategy, I'll try introducing new tests. There was a similar problem with one of the TSSConfigEditorTest, which needed to create an configure a CORBABean instance.

We should be able to have both corba jars in the endorsed dir, but only add one of the two to the class path. This works because as Jason found out, the jars in the endorsed dir are not automatically added to the class path.

On the Geronimo side, there are similar problems. Building any of the corba configurations depended upon whether the yoko classes were in endorsed.dir. If there were absent, it was not possible to build a yoko-based configuration. If present, it was not possible to build the Sun-based configuration. There was some suggestion that we might need to ship additional full assemblies to accommodate this.

For the openejb2 code tree, I see several possibilities:

1) Leave the Sun ORB code in the tree, make the yoko package a separate module that with a dependency on the openejb2 code. The existing build works ok, and the tests can be built for the Sun ORB. The build of the yoko package could then have its own versions of the tests, which would work find. 2) Replace the Sun ORB code with the yoko code and kick the Sun code into a separate module. Same things apply with the test. 3) Place both ORB adapters in outside modules, each with their own builds and tests.

Possibility 1) Has one serious disadvantage as it leaves the openejb2 code tree coupled to the Sun 1.4.2 JVM. Either 2 or 3 will remove that particular Java 1.4.2 dependency. Does anybody have and strong feelings about this?

I see the Sun code as a temporary bridge that we use until the Yoko code passes the TCK. Once that happens we turn around and burn that bridge (a.k.a., remove the code).

ISSUE #4 is then how do we manage the possibility of both the Sun ORB support and the Yoko support? Will this actually require separate assemblies to work, or is there some means to easily allow the switching?

I think David Jencks is working on this exact problem now.

-dain


Reply via email to