A few comments:

1) I agree that the following is too complicated and even problematic as we hard code the locations based on the file system. In a jar, we don't have the target/classes.

SCANode2 node = SCANode2Factory.newInstance().createSCANode("target/classes/myapp.composite", new SCAContribution("test", "target/classes"));

With the above API, we need to use the classloader to find the correct URLs for the composite and contributions to make it working inside a jar.

2) What about this?

SCANode2 node = SCANode2Factory.newInstance().discoverSCANode(String pathToTheCompositeFile);
or
SCANode2 node = SCANode2Factory.newInstance().findSCANode(String pathToTheCompositeFile);

3) Should we rename SCANode2/SCANode2Factory back to SCANode/SCANodeFactory?

Thanks,
Raymond
--------------------------------------------------
From: "Simon Nash (JIRA)" <[email protected]>
Sent: Thursday, June 19, 2008 5:27 AM
To: <[email protected]>
Subject: [jira] Created: (TUSCANY-2409) Major consumability issues with new Node and Domain APIs

Major consumability issues with new Node and Domain APIs
--------------------------------------------------------

                Key: TUSCANY-2409
                URL: https://issues.apache.org/jira/browse/TUSCANY-2409
            Project: Tuscany
         Issue Type: Bug
   Affects Versions: Java-SCA-1.3
        Environment: All
           Reporter: Simon Nash
            Fix For: Java-SCA-1.3


The recent change to remove the previous domain/node implementation has created severe usabliity issues for the callback-ws-client and callback-ws-server samples.

1. In callback-ws-client, MyClientImpl, the line
SCANode node = SCANodeFactory.createNodeWithComposite("myapp.composite");
   was changed to
SCANode2 node = SCANode2Factory.newInstance().createSCANode("target/classes/myapp.composite", new SCAContribution("test", "target/classes"));

2. In callback-ws-client, CallbackClientTestCase, the line
node = SCANodeFactory.createNodeWithComposite("callbackws.composite");
   was changed to
node = SCANode2Factory.newInstance().createSCANode("jar:file:../callback-ws-service/target/sample-callback-ws-service.jar!/callbackws.composite", new SCAContribution("server", "../callback-ws-service/target/sample-callback-ws-service.jar"));

3. In callback-ws-server, CallbackServer, the line
SCANode node = SCANodeFactory.createNodeWithComposite("callbackws.composite");
   was changed to
SCANode2 node = SCANode2Factory.newInstance().createSCANode("target/classes/callbackws.composite", new SCAContribution("test", "target/classes"));

4. In callback-ws-server, CallbackServerTestCase, the line
node = SCANodeFactory.createNodeWithComposite("callbackws.composite");
   was changed to
node = SCANode2Factory.newInstance().createSCANode("target/classes/callbackws.composite", new SCAContribution("test", "target/classes"));

The complexity of these APIs, and the need to embed hard-wired paths and jar names, is unacceptable for a simple sample. This is "must fix" for the 1.3 release.

It would also be good to convert more samples from the previous host-embedded APIs to the new domain/node APIs, but this can't happen until the consumability problems are fixed.

Ideally we would have a "convenience" API similar to the previous createNodeWithComposite() API. This API would call the other more complex APIs under the covers.



--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to