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
