Thank you very much for detailed instructions!!!! I am trying now. I'll
let you know status.

Regards
Raman

-----Original Message-----
From: Simon Nash [mailto:[email protected]] 
Sent: Saturday, June 12, 2010 3:25 AM
To: [email protected]
Subject: Re: Does SCA 1.6 supports Axis 1.5

Simon Nash wrote:
> Hi Raman,
> I'd be interested to know how you get on with this.  I think
everything
> will be fine if the services in a node that's created using
> NodeLauncher.createNode() are invoked using remote calls.  If a
service
> in the node is invoked locally using SCAClient.getService(), I'm not
sure
> whether the classloader switching will happen correctly.  I'll give
this
> a try and see what happens.
> 
>   Simon
> 
I tried this and it does work if you have the classpath set up
correctly.
It isn't very easy to figure out the right combination, though.

The following rules seem to work OK:
1. The classpath MUST contain the application code.
2. If the application code uses any SCA annotations, the classpath MUST
    contain the tuscany-sca-api jar.
3. The classpath MUST contain the tuscany-node-launcher jar.
4. The classpath MUST NOT contain any Tuscany jars other than the above.
    Specifically, it MUST NOT contain the tuscany-node-api jar.  This
    means that the application code needs to use Java reflection to call
    the "start", "stop" and "getService" methods on the object returned
    by createNode().

Here's an example of the code that I used to do this:

package scatours;

import org.apache.tuscany.sca.node.launcher.Contribution;
import org.apache.tuscany.sca.node.launcher.NodeLauncher;

public class JumpstartLauncher {

     public static void main(String[] args) throws Exception {
         Contribution gvtContribution =
           new Contribution("introducing-trips",
             "../../contributions/introducing-trips/target/classes");

         Object node = NodeLauncher.newInstance().
                    createNode("trips.composite", gvtContribution);

         node.getClass().getMethod("start").invoke(node);

         Trips tripProvider = (Trips)node.getClass().
           getMethod("getService", Class.class, String.class)
             .invoke(node, Trips.class, "TripProvider/Trips");

         System.out.println("Trip boooking code = " +
             tripProvider.checkAvailability("FS1APR4", 1));

         node.getClass().getMethod("stop").invoke(node);
     }
}

   Simon

Malisetti, Ramanjaneyulu wrote:
>> Thanks a lot Simon,
>>
>> Yes, I can have Tuscany and its dependent modules use different
>> classloader from application classloader.
>>
>> Regards
>> Raman
>>
>> -----Original Message-----
>> From: Simon Nash [mailto:[email protected]] Sent: Friday, June 11, 2010

>> 3:35 PM
>> To: [email protected]
>> Subject: Re: Does SCA 1.6 supports Axis 1.5
>>
>> Malisetti, Ramanjaneyulu wrote:
>>> Thanks for the information.
>>>
>>>
>>> We are not using Axis-1.5.1 directly.  But, one of the component
that
>> is going to run along with the modules developed on SCA is using.
They
>> don't have any proper reason other than they can't change it now from
>> 1.5.1 to 1.4.1 because that component is already shipped to
customers.
>>> So, it is a circular dependency for us.
>>>
>>>
>>> Do you have any suggestion to come out this flux.
>>>
>> This is difficult because I can imagine other users in the opposite
>> situation, i.e., with application modules that use Axis2 1.4 and
might
>> no longer work if Tuscany changed to 1.5.1.
>>
>> Is it a problem if Tuscany is using Axis2 1.4 and other application
code
>> is using 1.5.1?  This would cause problems if everything is loaded on
>> the
>> same classpath.  Perhaps the best solution for these kinds of
problems
>> would be for Tuscany to use a separate classloader for its
dependencies
>> so that they don't interfere with the application's classloader and
>> classpath.
>>
>> The NodeLauncher class in 1.x does something like this, and I'm
>> wondering if
>> using the NodeLauncher.createNode() method to create the Tuscany node
>> instead
>> of using SCANodeFactory.createSCANode() would solve the problem.
>>
>>    Simon
>>
>>> Regards
>>> Raman
>>>
>>> -----Original Message-----
>>> From: Simon Laws [mailto:[email protected]] Sent: Friday, 
>>> June 11, 2010 1:13 PM
>>> To: [email protected]
>>> Subject: Re: Does SCA 1.6 supports Axis 1.5
>>>
>>> On Fri, Jun 11, 2010 at 8:39 AM, Simon Nash <[email protected]> wrote:
>>>> Malisetti, Ramanjaneyulu wrote:
>>>>> Hi,
>>>>>
>>>>>         We need to use Axis 1.5 along with Tuscany SCA. Did any of
>> you try
>>>>> this combination. We tried to use but left with exceptions on
client
>> side.
>>>>>
>>>>> Regards
>>>>>
>>>>> Raman
>>>>>
>>>> I'm interested to know more about what is new or changed in Axis2
1.5
>>>> that means you need to use it instead of 1.4.
>>>>
>>>> I haven't tried using Axis2 1.5 with Tuscany SCA 1.6.  Based on
past
>>>> experience, moving to a new version of Axis2 is likely to need some
>> work
>>>> in Tuscany and a new Tuscany release.  As part of the consideration
>> of
>>>> whether to do this, it would be helpful to know why this change is
>>>> important for our users.
>>>>
>>>>  Simon
>>>>
>>>>
>>> We're based on Axis 1.5.1 in the Tuscany 2.x development in trunk.
As
>>> Simon says moving up from 1.4 did require a few changes.
>>>
>>> Regards
>>>
>>> Simon
>>>
>>
>>
>>
>>
> 
> 
> 


Reply via email to