On Tue, Jul 29, 2008 at 5:25 AM, Malte Marquarding <
[EMAIL PROTECTED]> wrote:

> Hi,
> I had a look at it myself.  I now understand that  I can set the url in
> 'workspace.xml'  - RTFM . How do I package/deploy contribution as a jar
> file. Or should I leave this to you by submitting a JIRA?
>
> Cheers,
> Malte
>
>
> On Sat, Jul 26, 2008 at 12:17 AM, Simon Laws <[EMAIL PROTECTED]>wrote:
>
>>
>>
>> On Fri, Jul 25, 2008 at 2:59 PM, Simon Laws <[EMAIL PROTECTED]>
>> wrote:
>>
>>>
>>>
>>> On Fri, Jul 25, 2008 at 6:33 AM, Malte Marquarding <
>>> [EMAIL PROTECTED]> wrote:
>>>
>>>> Also, why doesn't it look it up in the jar? I edited the ant script to
>>>> include the path and remove the src directory, but that didn't help.
>>>>
>>>> Cheers,
>>>> Malte.
>>>>
>>>> On Fri, Jul 25, 2008 at 2:49 PM, Malte Marquarding <
>>>> [EMAIL PROTECTED]> wrote:
>>>>
>>>>> Hi,
>>>>> I made some progress. The problem is that the 'nodeB' composite file is
>>>>> looked up with an absolute path of server1 location of the file on 
>>>>> server2.
>>>>> I hope you know what I mean. I found this by moving both server1 and 
>>>>> server2
>>>>> code into '/tmp' - the same location.
>>>>> Now the example runs happily.
>>>>> Shouldn't the file  look up be relative. This seems to be a bug.
>>>>>
>>>>> Cheers,
>>>>> Malte.
>>>>>
>>>>>
>>>>> On Fri, Jul 25, 2008 at 10:10 AM, Malte Marquarding <
>>>>> [EMAIL PROTECTED]> wrote:
>>>>>
>>>>>> Hi Simon,
>>>>>> that's exactly what I did the very first time I tried this (before
>>>>>> asking for help). I do get the same exception with respect ro 
>>>>>> FileNotFound
>>>>>> on  Host1 (server running domain).
>>>>>>
>>>>>> This is what the domain log says
>>>>>>
>>>>>> [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.CompositeImageCollectionImpl
>>>>>> doGet
>>>>>>      [java] INFO: get NodeB
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.DeployedCompositeCollectionImpl
>>>>>> getAll
>>>>>>      [java] INFO: getAll
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.DeployableCompositeCollectionImpl
>>>>>> get
>>>>>>      [java] INFO: get composite:
>>>>>> http://tuscany.apache.org/cloud;http://sample/cloud;NodeA
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl 
>>>>>> get
>>>>>>      [java] INFO: get http://tuscany.apache.org/cloud
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.DeployableCompositeCollectionImpl
>>>>>> get
>>>>>>      [java] INFO: get composite:
>>>>>> http://tuscany.apache.org/cloud;http://sample/cloud;NodeB
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl 
>>>>>> get
>>>>>>      [java] INFO: get http://tuscany.apache.org/cloud
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.DeployableCompositeCollectionImpl
>>>>>> get
>>>>>>      [java] INFO: get composite:
>>>>>> http://tuscany.apache.org/cloud;http://sample/cloud;NodeC
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl 
>>>>>> get
>>>>>>      [java] INFO: get http://tuscany.apache.org/cloud
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.binding.atom.provider.AtomBindingListenerServlet
>>>>>> doGet
>>>>>>      [java] INFO: >>> FeedEndPointServlet /composite-image/
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.CompositeImageCollectionImpl
>>>>>> query
>>>>>>      [java] INFO: query composite=composite:nodeB;http://sample
>>>>>> ;CalculatorB
>>>>>>      [java] Jul 25, 2008 10:03:53 AM
>>>>>> org.apache.tuscany.sca.workspace.admin.impl.ContributionCollectionImpl 
>>>>>> query
>>>>>>      [java] INFO: query alldependencies=nodeB
>>>>>>
>>>>>>
>>>>>> Cheers,
>>>>>> Malte
>>>>>>
>>>>>>
>>>>>> On Fri, Jul 25, 2008 at 2:14 AM, Simon Laws <
>>>>>> [EMAIL PROTECTED]> wrote:
>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> On Tue, Jul 22, 2008 at 12:53 AM, Malte Marquarding <
>>>>>>> [EMAIL PROTECTED]> wrote:
>>>>>>>
>>>>>>>> Hi Simon,
>>>>>>>> I did the following
>>>>>>>>
>>>>>>>> Host 1:
>>>>>>>> ant runDomain
>>>>>>>>
>>>>>>>> Host 2:
>>>>>>>> I modified in my case the NodeB launcher to run in the remote
>>>>>>>> location. I get an exception because it can find the artefacts
>>>>>>>>
>>>>>>>> ant runDomain
>>>>>>>> ant runNodeB
>>>>>>>>
>>>>>>>>      [java] INFO: Loading contribution:
>>>>>>>> file:/Users/me/java/tuscany-sca-1.2.1-incubating/samples/calculator-distributed/./src/main/resources/nodeB/
>>>>>>>>      [java] 22/07/2008 09:21:53
>>>>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncherUtil node
>>>>>>>>      [java] SEVERE: SCA Node could not be created
>>>>>>>>      [java] java.lang.reflect.InvocationTargetException
>>>>>>>>      [java] at
>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
>>>>>>>>      [java] at
>>>>>>>> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
>>>>>>>>      [java] at
>>>>>>>> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
>>>>>>>>      [java] at
>>>>>>>> java.lang.reflect.Constructor.newInstance(Constructor.java:494)
>>>>>>>>      [java] at
>>>>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncherUtil.node(NodeLauncherUtil.java:297)
>>>>>>>>      [java] at
>>>>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncher.createNode(NodeLauncher.java:60)
>>>>>>>>      [java] at
>>>>>>>> org.apache.tuscany.sca.node.launcher.NodeLauncher.main(NodeLauncher.java:109)
>>>>>>>>      [java] at
>>>>>>>> node.LaunchCalculatorNodeB.main(LaunchCalculatorNodeB.java:26)
>>>>>>>>      [java] Caused by: org.osoa.sca.ServiceRuntimeException:
>>>>>>>> java.io.FileNotFoundException:
>>>>>>>> /Users/me/java/tuscany-sca-1.2.1-incubating/samples/calculator-distributed/./src/main/resources/nodeB
>>>>>>>> (No such file or directory)
>>>>>>>>
>>>>>>>> This directory is present on the remote domain (host 1)
>>>>>>>>
>>>>>>>> ls
>>>>>>>> /Users/me/java/tuscany-sca-1.2.1-incubating/samples/calculator-distributed/./src/main/resources/nodeB
>>>>>>>> 8 Calculator.composite 0 META-INF/
>>>>>>>>
>>>>>>>> What else  am I missing?
>>>>>>>>
>>>>>>>> Cheers,
>>>>>>>> Malte.
>>>>>>>>
>>>>>>>> On Mon, Jul 21, 2008 at 9:20 PM, Simon Laws <
>>>>>>>> [EMAIL PROTECTED]> wrote:
>>>>>>>>
>>>>>>>>>
>>>>>>>>>
>>>>>>>>> On Mon, Jul 21, 2008 at 9:40 AM, Malte Marquarding <
>>>>>>>>> [EMAIL PROTECTED]> wrote:
>>>>>>>>>
>>>>>>>>>> Hi,
>>>>>>>>>> Thanks that works.
>>>>>>>>>>
>>>>>>>>>> Does that mean you are running two domains? This is exactly what I
>>>>>>>>>> stumbled over. I remote domain manger would certainly be good.
>>>>>>>>>>
>>>>>>>>>> Cheers,
>>>>>>>>>> Malte
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Mon, Jul 21, 2008 at 3:06 PM, Luciano Resende <
>>>>>>>>>> [EMAIL PROTECTED]> wrote:
>>>>>>>>>>
>>>>>>>>>>> The calculator-distributed already runs in multiple VM. Let me
>>>>>>>>>>> describe the steps I had to do in order to run the sample in two
>>>>>>>>>>> different machines.
>>>>>>>>>>>
>>>>>>>>>>> In one of the machine, I ran NodeB and NodeC by doing the
>>>>>>>>>>> following :
>>>>>>>>>>>
>>>>>>>>>>> ant runDomain
>>>>>>>>>>> ant runNodeB
>>>>>>>>>>> ant runNodeC
>>>>>>>>>>>
>>>>>>>>>>> In the other machine, I ran NodeA that would connect to the
>>>>>>>>>>> remote
>>>>>>>>>>> nodes (nodeB and NodeC). I have to modify the node composites, to
>>>>>>>>>>> properly identify the remote uri for the nodes as follow :
>>>>>>>>>>>
>>>>>>>>>>>   <component name="NodeB">
>>>>>>>>>>>        <t:implementation.node uri="nodeB"
>>>>>>>>>>> composite="s:CalculatorB"/>
>>>>>>>>>>>        <service name="Node">
>>>>>>>>>>>            <binding.sca uri="http://tuscany1.domain.com:8200"/>
>>>>>>>>>>>        </service>
>>>>>>>>>>>    </component>
>>>>>>>>>>>
>>>>>>>>>>>     <component name="NodeC">
>>>>>>>>>>>                <t:implementation.node uri="nodeC"
>>>>>>>>>>> composite="s:CalculatorC"/>
>>>>>>>>>>>                <service name="Node">
>>>>>>>>>>>                        <binding.sca uri="
>>>>>>>>>>> http://tuscany1.domain.com:8300"/>
>>>>>>>>>>>                </service>
>>>>>>>>>>>        </component>
>>>>>>>>>>>
>>>>>>>>>>> Then I ran nodeA :
>>>>>>>>>>>
>>>>>>>>>>> ant runDomain
>>>>>>>>>>> ant runNodeA
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> The only thing I'm not sure is how I would tell the node to
>>>>>>>>>>> connect to
>>>>>>>>>>> a remote domain manager, that would simplify the steps to run
>>>>>>>>>>> nodeA.
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> On Sun, Jul 20, 2008 at 6:41 PM, Malte Marquarding
>>>>>>>>>>> <[EMAIL PROTECTED]> wrote:
>>>>>>>>>>> > Hi,
>>>>>>>>>>> > any takers? I tried the API docs, but they are outdated - JIRA
>>>>>>>>>>> submitted and
>>>>>>>>>>> > trying to build from source.
>>>>>>>>>>> > Cheers,
>>>>>>>>>>> > Malte
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> --
>>>>>>>>>>> Luciano Resende
>>>>>>>>>>> Apache Tuscany Committer
>>>>>>>>>>> http://people.apache.org/~lresende<http://people.apache.org/%7Elresende>
>>>>>>>>>>> http://lresende.blogspot.com/
>>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>> Hi
>>>>>>>>>
>>>>>>>>> In the case of samples/calculator-distributed the node launchers
>>>>>>>>> are hard coded to talk to the domain at "http://localhost:9990";.
>>>>>>>>> If you look in each of the node launcher classes you will see lines 
>>>>>>>>> like...
>>>>>>>>>
>>>>>>>>>  NodeLauncher.main(new String[] {"
>>>>>>>>> http://localhost:9990/node-config/NodeC"});
>>>>>>>>>
>>>>>>>>> To run the domain in a remote location change the localhost here to
>>>>>>>>> the host where the domain is running or write some launcher code that 
>>>>>>>>> takes
>>>>>>>>> this URL as a parameter.
>>>>>>>>>
>>>>>>>>> The launcher for nodeA is slightly different from the launchers for
>>>>>>>>> B and C in that it goes on to make the test calls but in all these 
>>>>>>>>> cases it
>>>>>>>>> wouldn't be hard to change to accept the domain configuration URL as a
>>>>>>>>> command line argument. If you decide to give this a go make a patch 
>>>>>>>>> and we
>>>>>>>>> can update the sample.
>>>>>>>>>
>>>>>>>>> Regards
>>>>>>>>>
>>>>>>>>> Simon
>>>>>>>>>
>>>>>>>>>
>>>>>>>  Hi Malte
>>>>>>>
>>>>>>> Sorry this is such a late reply. I just didn't notice this come
>>>>>>> through. You may have got past this now but anyhow....
>>>>>>>
>>>>>>> You don't need to do "ant runDomain" on Host2.
>>>>>>>
>>>>>>> Your changes to the NodeB launcher should point it at the domain
>>>>>>> running on Host1. Hence you don't need the domain running on Host2. 
>>>>>>> Just the
>>>>>>> NodeB runs on Host2.
>>>>>>>
>>>>>>> Regards
>>>>>>>
>>>>>>> Simon
>>>>>>>
>>>>>>
>>>>>>
>>>>>
>>>>
>>> Hi Malte
>>>
>>> This sounds like a bug to me. Can you raise a JIRA for it (
>>> http://issues.apache.org/jira/browse/TUSCANY) and lets see if we can get
>>> it fixed.
>>>
>>> Thanks
>>>
>>> Simon
>>>
>>
>>
>> Hi Malte
>>
>> A bit more information. I've just been trying this and I do see the
>> problem you see when running across machines. The strange file read
>> exception you are seeing occurs because the domain is trying to provide the
>> remote node (NodeB) with a file system based contribution. When you run the
>> node the configuration URL (http://9.20.188.196:9990/node-config/NodeB)
>> is used to ask the domain for two things.
>>
>> 1 - the composite that is configured by the domain to represent the
>> correct domain configuration. The actual result here is that all the service
>> and reference URIs are filled in based on where each node is to be deployed
>> using information from the node.composite files.
>> 2 - the contributions that are required to provide the artifacts needed to
>> run the composite at this node
>>
>> This sample has been written to work directly from the file system so that
>> it's straightforward to edit and recompile. However this does  cause the
>> problem that you are seeing as the domain cannot provide a file system based
>> contribution out to the remote node. What we need to do to make this work
>> across nodes is package each nodes contribution as a jar.
>>
>> So please go ahead and raise a JIRA and I'll look at it as it seems
>> natural to want to try the calculator distributed in a distributed
>> environment.
>>
>> Regards
>>
>> Simon
>>
>>
>
Hi Malte

There's nothing particularly special about a contribution packaged as a jar.
It can simply just be any old jar file. There are some SCA specific things
you may find in a contribution, and hence in a contribution packaged as a
jar, such as a ".composite" file or a "META-INF/sca-contribution.xml" file.
A good place to look for an example is the store tutorial. Here the store
application is built up by deploying a number of jar based contributions.
You can see the "store" contribution at [1]. You can see the way that the
domain is build up at [2]. There are quite a lot of contributions here as
the application is presented in a number of different configurations for
tutorial purposes [3]

Regards

Simon

[1] http://svn.apache.org/repos/asf/tuscany/java/sca/tutorials/store/store/
[2] http://svn.apache.org/repos/asf/tuscany/java/sca/tutorials/store/domain/
[3]
http://svn.apache.org/repos/asf/tuscany/java/sca/tutorials/store/Tutorial.pdf

Reply via email to