On Thu, Apr 29, 2010 at 12:45 PM, Simon Laws <[email protected]> wrote:
> On Tue, Apr 27, 2010 at 10:27 PM, Juan Pablo Pizarro
> <[email protected]> wrote:
>> Simon, I'm trying to complete the restaurant exmple, but if you tell me that
>> the calculator is better case I start with that. I attach my project. I have
>> the restaurant.composite into com.casa.comp.restaurant.
>>
>> My implementation is in com.casa.comp.restaurant.impl and my interfaces in
>> com.casa.comp.restaurant.api.
>>
>> I will try the calculator too, but I'm courios about the restorant issue
>> too.
>>
>> Thanks!
>>
>>
>>
>> 2010/4/27 Simon Laws <[email protected]>
>>>
>>> On Mon, Apr 26, 2010 at 7:43 PM, Juan Pablo Pizarro
>>> <[email protected]> wrote:
>>> > Hello Simon!, I'm trying to run a example that saw in the documentation.
>>> > I
>>> > write restaurant application, services, etc. I write a test case to run
>>> > the
>>> > application and I found a error:
>>> >
>>> > org.oasisopen.sca.ServiceRuntimeException: No SCA contributions are
>>> > found on
>>> > the classpath
>>> > at
>>> > org.apache.tuscany.sca.node.NodeFactory.createNode(NodeFactory.java:289)
>>> > at
>>> >
>>> > com.casa.comp.restaurant.RestaurantTest.testService(RestaurantTest.java:18)
>>> > at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
>>> > at
>>> >
>>> > sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
>>> > at
>>> >
>>> > sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
>>> > at java.lang.reflect.Method.invoke(Method.java:597)
>>> > at junit.framework.TestCase.runTest(TestCase.java:168)
>>> > at junit.framework.TestCase.runBare(TestCase.java:134)
>>> > at junit.framework.TestResult$1.protect(TestResult.java:110)
>>> > at junit.framework.TestResult.runProtected(TestResult.java:128)
>>> > at junit.framework.TestResult.run(TestResult.java:113)
>>> > at junit.framework.TestCase.run(TestCase.java:124)
>>> > at junit.framework.TestSuite.runTest(TestSuite.java:232)
>>> > at junit.framework.TestSuite.run(TestSuite.java:227)
>>> > at
>>> >
>>> > org.junit.internal.runners.JUnit38ClassRunner.run(JUnit38ClassRunner.java:83)
>>> > at
>>> >
>>> > org.eclipse.jdt.internal.junit4.runner.JUnit4TestReference.run(JUnit4TestReference.java:46)
>>> > at
>>> >
>>> > org.eclipse.jdt.internal.junit.runner.TestExecution.run(TestExecution.java:38)
>>> > at
>>> >
>>> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:467)
>>> > at
>>> >
>>> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.runTests(RemoteTestRunner.java:683)
>>> > at
>>> >
>>> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.run(RemoteTestRunner.java:390)
>>> > at
>>> >
>>> > org.eclipse.jdt.internal.junit.runner.RemoteTestRunner.main(RemoteTestRunner.java:197)
>>> >
>>> >
>>> > My test case:
>>> >
>>> > public void testService() throws Exception {
>>> >
>>> > Node node =
>>> > NodeFactory.newInstance().createNode("Restaurant.composite").start();
>>> > RestaurantService restaurantService =
>>> > node.getService(RestaurantService.class, "RestaurantServiceComponent");
>>> >
>>> > Menu[] menus = restaurantService.getMenus();
>>> >
>>> > System.out.println("--- Menu ---");
>>> > for (Menu m : menus) {
>>> > System.out.println("- " + m.printMenu());
>>> > }
>>> >
>>> > System.out.println();
>>> > Menu menu = menus[3];
>>> >
>>> > System.out.println("My choice: " + menu.printMenu());
>>> > System.out.println();
>>> >
>>> > double price = restaurantService.getBill(menu);
>>> > System.out.println("Price (" + menu.printMenu() + "): " +
>>> > price);
>>> > }
>>> >
>>> >
>>> > Then I read that the application would be runned in a application server
>>> > (OSGI specs compliant). Then I start to configure the application and I
>>> > miss
>>> > the launcher main class.
>>> >
>>> >
>>> > http://wiki.eclipse.org/STP/SCA_Component/SCA_Java_Run_and_Debug_Tuscany
>>> >
>>> > So.. I need some guide to follow. I continue reading google things to
>>> > fix my
>>> > configuration.
>>> >
>>> > Thanks!
>>> >
>>> > JP
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > 2010/4/26 Simon Laws <[email protected]>
>>> >>
>>> >> On Mon, Apr 26, 2010 at 2:20 PM, Juan Pablo Pizarro
>>> >> <[email protected]> wrote:
>>> >> > Hi all, i'm rookie in tuscani and i need a guide or documentation. I
>>> >> > saw
>>> >> > the
>>> >> > documentation that exists in the site, but is over old versions. I
>>> >> > bought a
>>> >> > book to get concepts and it is a good book, but again is based on old
>>> >> > version.
>>> >> >
>>> >> > Have anybody a document or link about tuscani 2.x tutorial?. I use
>>> >> > eclipse
>>> >> > and trying to use tuscani 2.x within eclipse.
>>> >> >
>>> >> > Thanks..
>>> >> >
>>> >> > JP
>>> >> >
>>> >>
>>> >> Hi
>>> >>
>>> >> Our 2.x documentation [1] is lacking in intro and sample material at
>>> >> the moment. A number of samples that the 1.x intro material is based
>>> >> on have been ported over into the 2.x code base but the docs haven't
>>> >> followed yet. If you're having specific problems with Eclipse post the
>>> >> details here and we'll try and help out.
>>> >>
>>> >> [1] http://tuscany.apache.org/documentation-2x/
>>> >>
>>> >> Simon
>>> >> --
>>> >> Apache Tuscany committer: tuscany.apache.org
>>> >> Co-author of a book about Tuscany and SCA: tuscanyinaction.com
>>> >
>>> >
>>>
>>> Hi JP
>>>
>>> Where is the file "Restaurant.composite" relative to the module that
>>> you are using to develop the test case? Tuscany is trying to find a
>>> contribution by looking for this file on the classpath.
>>>
>>> An SCA contribution is a hierarchical set of information such as
>>> composite files, WSDLs, XSDs etc that are required to run your SCA
>>> application. It could be a directory structure, a zip, a jar etc. When
>>> you create the node you have to tell it which contribution to load.
>>> If, for example, you look in the CalculatorTestCase of the 2.x
>>> Calculator sample you see the following...
>>>
>>> node = NodeFactory.newInstance().createNode((String)null, new
>>> String[] {"target/classes"}).start();
>>> calculatorService = node.getService(CalculatorService.class,
>>> "CalculatorServiceComponent");
>>>
>>> Here we loading the whole of the ./target/classes directory as the
>>> contribution. We do this as this sample is build using Maven and this
>>> is where Maven puts all the compiled Java classes and resources by
>>> default.
>>>
>>> Are you able to successfully run the Calculator sample?
>>>
>>> Regards
>>>
>>> Simon
>>>
>>> --
>>> Apache Tuscany committer: tuscany.apache.org
>>> Co-author of a book about Tuscany and SCA: tuscanyinaction.com
>>
>>
>
> OK Juan, let me take a quick look and I'll get back to you.
>
> Simon
>
> --
> Apache Tuscany committer: tuscany.apache.org
> Co-author of a book about Tuscany and SCA: tuscanyinaction.com
>
Hi, I took a look at this last night and there are a few changes to
make to get you further..
In RestaurantTest.testService() change
Node node =
NodeFactory.newInstance().createNode("Restaurant.composite").start();
to
Node node = NodeFactory.newInstance().createNode(new
Contribution("MyRestaurantContribution", "./bin")).start();
This is being more specific about where to find the contribution in
your project.
This runs and reports an error about a missing property in the
composite file. To fix this I first extended the TipServiceComponent
description...
<sca:component name="TipServiceComponent">
<sca:implementation.java
class="com.casa.comp.restaurant.impl.TipServiceImpl"/>
<sca:service name="TipService">
<sca:interface.java interface="com.casa.comp.restaurant.api.TipService"/>
</sca:service>
<!-- tipRate was missing -->
<sca:property name="tipRate" value="27.13">
</sca:property>
</sca:component>
However in the latest code this shows up an error in the XML
processing in Tuscany for some reason (I'm looking at it) so as a work
around I changed the property definition to be optional....
@Property(required=false)
public double tipRate = 27.13;
The test case now runs. Have a go and see if you can get to the same
position. I'll take a look at this XML processing issue.
Regards
Simon
--
Apache Tuscany committer: tuscany.apache.org
Co-author of a book about Tuscany and SCA: tuscanyinaction.com