tuscany-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Santiago Miguel Aranda Rojas <santiago.aranda.telv...@gmail.com>
Subject Re: Fwd: Problem with "implementation.osgi" reference
Date Mon, 22 Jun 2009 10:10:41 GMT
 Hello

It seems it is working now. I have launched Tuscany bundles outside and I
have installed TestService and Calculator bundle. I am using M3RC1 now. I
have to do more tests but when I invoke "add" method" using a external web
client, Calculator receives the request and it is able to invoke "sayHello"
method from Osgi service that was published by TestService.

But I can not use Eclipse in order to launch Tuscany and doing the same
example. I know what the error is. As I commented you Eclipse was having
problems in order to detect SCA files located in
scr/main/java/resources/sca. I had to copy these files to the project´s
root. I think I have a similar error now. It is about contribution.

***** When I use this code in order to register node in Eclipse. It works.

                   NodeFactory factory = NodeFactory.newInstance();
            String url =
ContributionLocationHelper.getContributionLocation(getClass());
            Contribution contrib = new Contribution("c1", url);
            node = factory.createNode("OSGI-INF/sca/bundle.composite",
contrib);
            node.start();

      This is a debug view of "read" method from "ContributionProcessor"
class

         // Scan the contribution and list the artifacts contained in it
        List<Artifact> artifacts = contribution.getArtifacts();
        boolean contributionMetadata = false;
        List<String> artifactURIs = scanner.scan(contribution);* -->
Contribution is Contribution : c1*

  *-->from: file:/C:/TuscanyWorkspace2.03M/TestService/target/classes/*
*
*
*
*
        for (String artifactURI: artifactURIs) {  --> *[, es, es/amivital,
es/amivital/testservice,
 es/amivital/testservice/Activator.class,
es/amivital/testservice/TestService.class,
 es/amivital/testservice/TestServiceImpl.class, OSGI-INF, OSGI-INF/sca,
OSGI-INF/sca/bundle.componentType, OSGI-INF/sca/bundle.composite]*
            URL artifactURL = scanner.getArtifactURL(contribution,
artifactURI);

            // Add the deployed artifact model to the contribution
            Artifact artifact = this.contributionFactory.createArtifact();
            artifact.setURI(artifactURI);
            artifact.setLocation(artifactURL.toString());


          As you can see I put in bold letter the value of some variables.
This is correct and it is working.


*****When I don´t use code in order to register node in Eclipse. It doesn´t
works.

This is a debug view of "read" method from "ContributionProcessor" class

         // Scan the contribution and list the artifacts contained in it
        List<Artifact> artifacts = contribution.getArtifacts();
        boolean contributionMetadata = false;
        List<String> artifactURIs = scanner.scan(contribution);*
--->Contribution
: TestService *
*
             ---->from: bundleentry://46/*
*
*
*
*
        for (String artifactURI: artifactURIs) {  --> *[.classpath,
.project, .settings/, .settings/org.eclipse.jdt.core.prefs,
.settings/org.maven.ide.eclipse.prefs, META-INF/, META-INF/MANIFEST.MF,
OSGI-INF/, OSGI-INF/.svn/, OSGI-INF/.svn/all-wcprops, OSGI-INF/.svn/entries,
OSGI-INF/.svn/format, OSGI-INF/.svn/prop-base/, OSGI-INF/.svn/props/,
OSGI-INF/.svn/text-base/,
OSGI-INF/.svn/text-base/calculator-component.xml.svn-base,
OSGI-INF/.svn/tmp/, OSGI-INF/.svn/tmp/prop-base/, OSGI-INF/.svn/tmp/props/,
OSGI-INF/.svn/tmp/text-base/, OSGI-INF/sca/, OSGI-INF/sca/.svn/,
OSGI-INF/sca/.svn/all-wcprops, OSGI-INF/sca/.svn/entries,
OSGI-INF/sca/.svn/format, OSGI-INF/sca/.svn/prop-base/,
OSGI-INF/sca/.svn/props/, OSGI-INF/sca/.svn/text-base/,
OSGI-INF/sca/.svn/text-base/bundle.componentType.svn-base,
OSGI-INF/sca/.svn/text-base/bundle.composite.svn-base,
OSGI-INF/sca/.svn/tmp/, OSGI-INF/sca/.svn/tmp/prop-base/,
OSGI-INF/sca/.svn/tmp/props/, OSGI-INF/sca/.svn/tmp/text-base/,
OSGI-INF/sca/bundle.componentType, OSGI-INF/sca/bundle.composite, pom.xml,
src/, src/main/, src/main/java/, src/main/java/es/,
src/main/java/es/amivital/, src/main/java/es/amivital/testservice/,
src/main/java/es/amivital/testservice/Activator.java,
src/main/java/es/amivital/testservice/TestService.java,
src/main/java/es/amivital/testservice/TestServiceImpl.java,
src/main/resources/, src/main/resources/OSGI-INF/,
src/main/resources/OSGI-INF/.svn/,
src/main/resources/OSGI-INF/.svn/all-wcprops,
src/main/resources/OSGI-INF/.svn/entries,
src/main/resources/OSGI-INF/.svn/format,
src/main/resources/OSGI-INF/.svn/prop-base/,
src/main/resources/OSGI-INF/.svn/props/,
src/main/resources/OSGI-INF/.svn/text-base/,
src/main/resources/OSGI-INF/.svn/text-base/calculator-component.xml.svn-base,
src/main/resources/OSGI-INF/.svn/tmp/,
src/main/resources/OSGI-INF/.svn/tmp/prop-base/,
src/main/resources/OSGI-INF/.svn/tmp/props/,
src/main/resources/OSGI-INF/.svn/tmp/text-base/,
src/main/resources/OSGI-INF/sca/, src/main/resources/OSGI-INF/sca/.svn/,
src/main/resources/OSGI-INF/sca/.svn/all-wcprops,
src/main/resources/OSGI-INF/sca/.svn/entries,
src/main/resources/OSGI-INF/sca/.svn/format,
src/main/resources/OSGI-INF/sca/.svn/prop-base/,
src/main/resources/OSGI-INF/sca/.svn/props/,
src/main/resources/OSGI-INF/sca/.svn/text-base/,
src/main/resources/OSGI-INF/sca/.svn/text-base/bundle.componentType.svn-base,
src/main/resources/OSGI-INF/sca/.svn/text-base/bundle.composite.svn-base,
src/main/resources/OSGI-INF/sca/.svn/tmp/, src/main/resources/OSGI-... *
            URL artifactURL = scanner.getArtifactURL(contribution,
artifactURI);

            // Add the deployed artifact model to the contribution
            Artifact artifact = this.contributionFactory.createArtifact();
            artifact.setURI(artifactURI);
            artifact.setLocation(artifactURL.toString());


          As you can see I put in bold letter the value of some variables.
It is clear that contribution is not right. ArtifactsUri variable has a lot
of paths without sense. This problem doesn´t exist outside Eclipse. Have you
test your examples using Eclipse?? I think I have to provide info about
Contribution.

I attach my test projects.


Thank you



-------------------------------------------------------






2009/6/19 Raymond Feng <enjoyjava@gmail.com>

> Hi,
>
> Please see my comments inline.
>
> BTW, can you send your testcase?  I can point you what to fix.
>
> Thanks,
> Raymond
>
> From: Santiago Miguel Aranda Rojas
> Sent: Friday, June 19, 2009 2:37 AM
> To: user@tuscany.apache.org
> Subject: Re: Fwd: Problem with "implementation.osgi" reference
>
>
> Hello.
>
>
> I have downloaded M3RC1 but I have the same errors. I can not run this in
> Eclipse but I think it is my problem. I run this distribution outside of
> Eclipse and all modules are running. But when I try to run my TestService
> bundle I have an error
>
>
> GRAVE: org.oasisopen.sca.ServiceRuntimeException: Deployment composite
> OSGI-INF/
> sca/bundle.composite cannot be found within contribution bundleentry://181/
> java.lang.IllegalStateException: org.oasisopen.sca.ServiceRuntimeException:
> Depl
> oyment composite OSGI-INF/sca/bundle.composite cannot be found within
> contributi
> on bundleentry://181/
>
> <rfeng>The isSCABundle() checking is too relaxed. We should check the
> existence of OSGI-INF/sca/bundle.composite or SCA-Composite header instead
> of any files under OSGI-INF/sca. I'm checking in a fix soon.</rfeng>
>
> I think composite.file is always compulsory. It is not enough with
> bunde.componentType as you said. Well, I put one composite file in order to
> test it
>
> <rfeng>Please don't add the composite file if you already have the OSGi
> component defined in the calculator.composite</rfeng>
>
> <sca:composite xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
> xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903"
> name="SensorNetworkManagement" targetNamespace="
> http://eclipse.org/TestService/src/main/resources/TestService">
>
>  <sca:component name="TestServiceComponent">
>  <sca:implementation.osgi bundleSymbolicName="TestService"
> bundleVersion="1.0.0"/>
>  </sca:component>
> </sca:composite>
>
> <rfeng>You have the wrong namespace for implementation.osgi. It should be
> xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1" and
> tuscany:implementation.osgi.</rfeng>
>
> and I have a new error. I guess tuscany doesn4t like "implementation.osgi"
> componenents. When I used 2.02M I had another different error.
>
>
> ADVERTENCIA: Element {
> http://docs.oasis-open.org/ns/opencsa/sca/200903}implement<http://docs.oasis-open.org/ns/opencsa/sca/200903%7Dimplement>
> ation.osgi cannot be processed. ([row,col {unknown-source}]: [4,5])
> 19-jun-2009 11:05:01
> org.apache.tuscany.sca.contribution.processor.ExtensibleStA
> XArtifactProcessor
> ADVERTENCIA: Element {
> http://docs.oasis-open.org/ns/opencsa/sca/200903}implement<http://docs.oasis-open.org/ns/opencsa/sca/200903%7Dimplement>
> ation.osgi cannot be processed. ([row,col {unknown-source}]: [4,5])
> 19-jun-2009 11:05:01
> org.apache.tuscany.sca.assembly.builder.impl.ComponentConfi
> gurationBuilderImpl
> GRAVE: No implementation for component: Component = TestServiceComponent
> 19-jun-2009 11:05:01
> org.apache.tuscany.sca.assembly.builder.impl.CompositeBindi
> ngURIBuilderImpl
> GRAVE: No implementation for component: Component = TestServiceComponent
> 19-jun-2009 11:05:01 org.apache.tuscany.sca.node.osgi.impl.NodeManager
> bundleSta
> rted
> GRAVE: org.oasisopen.sca.ServiceRuntimeException: No implementation for
> componen
> t: Component = TestServiceComponent
> java.lang.IllegalStateException: org.oasisopen.sca.ServiceRuntimeException:
> No i
> mplementation for component: Component = TestServiceComponent
>
>
>
>
> Besides, I think I will not be able to wire one SCA component osgi with
> other SCA component java so I want to try other thing. I know tuscany is
> using its own ClassLoader in order to load classes it needs. But my original
> problem was I can not share a instance of a Singleton Class between one
> object loaded by default osgi ClassLoader and other object loaded tuscany
> ClassLoader.
>
>
> <rfeng>If your SCA contribution is packaged as OSGi bundles, the classes
> will be loaded by OSGi. You just need to have the correct
> Import-Package/Export-Package.</rfeng>
>
>
> 1) I create an instance of one Class that is not modeled with Tuscany
> 2) I have other Class that will be a Singleton. Only there will be one
> instance of this class
> 3) I recover the instance of Singleton class from the instance of step 1
> 4) A CalculatorImpl instance is created when someone invoke a method from
> WS (this is a class modeled with Tuscany)
> 5) CalculatorImpl should recover the same instance of Singleton class
>
>
> But CalculatorImpl and class of step 1 were loaded by different
> classLoaders so they will load the Singleton Class twice. So They will have
> different instances of Singleton class although it was a singleton.
>
>
>
>
>
>
>
>
>
>
>
> 2009/6/18 Santiago Miguel Aranda Rojas <santiago.aranda.telvent@gmail.com>
>
> Well I will try M3RC1 tomorrow. I hope fix some errors with that
>
> Thank you
>
>
>
>
> ----- Original Message ----- From: Raymond Feng
> To: user@tuscany.apache.org ; santiago.aranda@telvent.com
> Sent: Thursday, June 18, 2009 5:47 PM
> Subject: Re: Fwd: Problem with "implementation.osgi" reference
>
>
> Which level of the Tuscany 2.x code are you using? The various issues you
> ran into seem to have been fixed before. Can you try our M3 RC1?
>
> http://people.apache.org/~antelder/tuscany/2.0-M3-RC1/
>
> Thanks,
> Raymond
>
>
> From: Santiago Miguel Aranda Rojas
> Sent: Thursday, June 18, 2009 3:05 AM
> To: user@tuscany.apache.org
> Subject: Re: Fwd: Problem with "implementation.osgi" reference
>
>
> I am checking your comments. I can not remove bundle.composite file from
> TestService bundle because tuscany is not working without this file.
>
>
> I have this
>
>
> Caused by: java.lang.NullPointerException
> at
> org.apache.tuscany.sca.node.osgi.impl.NodeFactoryImpl.configureNode(NodeFactoryImpl.java:440)
> at
> org.apache.tuscany.sca.node.osgi.impl.NodeFactoryImpl.access$2(NodeFactoryImpl.java:351)
> at
> org.apache.tuscany.sca.node.osgi.impl.NodeFactoryImpl$NodeImpl.<init>(NodeFactoryImpl.java:574)
>
>
> and the source code about this line is
>
>
> if (composite == null) {
>           composite = getDefaultComposite(configuration, workspace);
>       }
>
>
>       // Find the composite in the given contributions
>       boolean found = false;
>       Artifact compositeFile = contributionFactory.createArtifact();
>       compositeFile.setUnresolved(true);
>       compositeFile.setURI(composite.getURI());
>       for (Contribution contribution : workspace.getContributions()) {
>           ModelResolver resolver = contribution.getModelResolver();
>           //            for (Artifact artifact :
> contribution.getArtifacts()){
>           //                logger.log(Level.INFO,"artifact - " +
> artifact.getURI());
>           //            }
>           Artifact resolvedArtifact = resolver.resolveModel(Artifact.class,
> compositeFile);
>           //            if (!resolvedArtifact.isUnresolved() &&
> resolvedArtifact.getModel() instanceof Composite) {
>
>
>           if (!composite.isUnresolved()) {  ---> This is line 440
>
>
>               // The composite content was passed into the node and read
> into a composite model,
>               // don't use the composite found in the contribution, use
> that composite, but just resolve
>               // it within the context of the contribution
>               compositeProcessor.resolve(composite, resolver);
>
>
>           } else {
>
>
>               // Use the resolved composite we've found in the contribution
>               composite = (Composite)resolvedArtifact.getModel();
>           }
>           found = true;
>           //            break;
>           //          }
>       }
>
>
>
>
> I guess composite variable is not null in the first iteration. But it is
> null when composite = (Composite)resolvedArtifact.getModel(); is executed.
> So I guess is another problem related with "contribution" because there is a
> comment about that "// Use the resolved composite we've found in the
> contribution"
>
>
> Besides, while I fix these things I am going to use java code in order to
> register the SCA node. I have checked all your comments about
> bundle.composite and bundle.componentType at TestService and Calculator
> bundle. When I invoke to a method of CalculatorService with a WS client I
> have another problem.
>
>
> This code of CalculatorServiceImpl
>
>
> public class CalculatorServiceImpl implements CalculatorService {
> private AddService addService;
> private TestService testService;
>
>
>      public int add(int param1, int param2) {
> System.out.println (testService.sayHello());  --> I have an error when this
> line is executed
> return addService.add(param1, param2);
> }
>
>
>
>
> public AddService getAddService() {
> return addService;
> }
>
>
> @Reference
> public void setAddService(AddService addService) {
> this.addService = addService;
> }
>
>
> public TestService getTestService() {
> return testService;
> }
>
>
> @Reference
> public void setTestService(TestService testService) {
> this.testService = testService;
> }
> }
>
>
>
>
> This is the error . The testService instance is not null but it is not
> wired to TestService.  I have registered the Osgi Service registry using
> this code in the Activator of TestService bundle. I think this is neccesary.
>
>
> arg0.registerService(TestService.class.getName(), new TestServiceImpl(),
> null);
>
>
>
>
>
>
> Caused by: org.oasisopen.sca.ServiceUnavailableException: Unable to create
> SCA binding invoker for local target CalculatorComponent reference
> testService (bindingURI=null operation=sayHello)
> at
> org.apache.tuscany.sca.binding.sca.provider.RuntimeSCAReferenceBindingProvider.createInvoker(RuntimeSCAReferenceBindingProvider.java:200)
>
>
>
>
>
>
> ---------------------------------------------
>
>
>
>
>
> 2009/6/17 Raymond Feng <enjoyjava@gmail.com>
>
> Hi,
>
> Please see my comments inline.
>
> Thanks,
> Raymond
>
>
> ------------------------------------
> BUNDLE CALCULATOR
> ------------------------------------
> *****OSGI-INF/sca/bundle.composite. Two java components (Calculator and
> AddService) and one OSGi component (TestService)
>
>
> <rfeng>This is good.</rfeng>
>
>
>
> <sca:composite xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
> xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903"
> name="SensorNetworkManagement" targetNamespace="
> http://eclipse.org/SensorNetworkManagement/src/main/resources/SensorNetworkManagement
> ">
>
> <sca:component name="CalculatorComponent">
>  <sca:implementation.java
> class="es.amivital.calculatorservice2.CalculatorServiceImpl"/>
>  <sca:service name="CalculatorService">
> <sca:binding.ws uri="http://localhost:8085/CalculatorComponent"/>
>  </sca:service>
>
>  <sca:reference name="addService" target="AddServiceComponent"/>
>  <sca:reference name="testService"
> target="TestServiceComponent/TestService"/>
> </sca:component>
>
>
> <sca:component name="AddServiceComponent">
>  <sca:implementation.java
> class="es.amivital.calculatorservice2.AddServiceImpl"/>
> </sca:component>
>
> <sca:component name="TestServiceComponent">
> <sca:implementation.osgi bundleSymbolicName="TestService"
> bundleVersion="1.0.0"/>
> </sca:component>
> </sca:composite>
>
>
>
>
> *******OSGI-INF/sca/bundle.componentType
>
> <rfeng>You don't need to provide this file. The componentType is only
> needed for the OSGi component.</rfeng>
>
>
>
> <componentType xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
>            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>            xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1">
>  <!-- The service elment defines an SCA view of the OSGi service -->
>  <service name="CalculatorService">
>     <!-- The interface will be mapped into the OSGi service class -->
>     <interface.java
> interface="es.amivital.calculatorservice2.CalculatorService"/>
>     <!-- The list of OSGi properties -->
>
>  </service>
> </componentType>
>
> -----------------------------------
> BUNDLE TESTSERVICE
> -------------------------------------
>
>
> *******OSGI-INF/sca/bundle.componentType
>
> <rfeng>This is good.</rfeng>
>
>
>
> <componentType xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
>            xmlns:xsd="http://www.w3.org/2001/XMLSchema"
>            xmlns:t="http://tuscany.apache.org/xmlns/sca/1.1">
>  <!-- The service elment defines an SCA view of the OSGi service -->
>  <service name="TestService">
>     <!-- The interface will be mapped into the OSGi service class -->
>     <interface.java interface="es.amivital.testservice.Test"/>
>     <!-- The list of OSGi properties -->
>
>  </service>
> </componentType>
>
>
> *****OSGI-INF/sca/bundle.composite
>
> <rfeng>This should be removed as the TestServiceComponent has been declared
> in the calculator bundle composite.</rfeng>
>
>
> <sca:composite xmlns:tuscany="http://tuscany.apache.org/xmlns/sca/1.1"
> xmlns:sca="http://docs.oasis-open.org/ns/opencsa/sca/200903"
> name="SensorNetworkManagement" targetNamespace="
> http://eclipse.org/SensorNetworkManagement/src/main/resources/SensorNetworkManagement
> ">
>
> <sca:component name="TestServiceComponent">
> <sca:implementation.java class="es.amivital.testservice.TestImpl"/>
> </sca:component>
> </sca:composite>
>
>
>
> It is necessary to have a bundle.composite file in TestService?? and
> bundle.componentType?? Can I remove these files from TestService bundle and
> put the TestService4s bundle.componentType in the Calculator bundle. You
> said "Alternatively, you have place the file as
> OSGI-INF/sca/<bundleSymbolicName>/bundle.componentType in the calculator
> bundle." Do you mean I can copy TestService4s bundle.componentType into a
> CalculatorService bundle?
>
> <rfeng>Yes</rfeng>
>
>
>
> Thank you very much
> -------------------------------------------------------------------
>
>
>
>
>
> Tuscany checks the OSGi bundle based on one of the following patterns:
> * An "SCA-Composite" header in the MANIFEST.MF. It points to an SCA
> composite file within the bundle.
> * Any files under OSGI-INF/sca.
>
> In your case, the first bundle contains three java components. The second
> bundle contains one OSGi component.  There are a few options to get them
> work together (CalculatorService with a reference to TestService).
>
> Option 1:
> 1) Place bundle.composite under OSGI-INF/sca in the calculator bundle. The
> composite contains 4 components: 3 java components and 1 OSGi component.
> The @target for CalculatorService component's testService reference will be
> TestService/<serviceName>.
>
> 2) Place bundle.componentType under OSGI-INF/sca in the test service
> bundle.
> Alternatively, you have place the file as
> OSGI-INF/sca/<bundleSymbolicName>/bundle.componentType in the calculator
> bundle.
>
> In this case, we are going to start one Node.
>
> Option 2:
> 1) Place bundle.composite under OSGI-INF/sca in the calculator bundle. The
> composite contains 3 java components
> 2) Place bundle.composite under OSGI-INF/sca in the test service bundle.
> The composite contains 1 OSGi component.
> 3) Place bundle.componentType under OSGI-INF/sca in the test service
> bundle.
>
> In this case, we are going to start two nodes. You can configure the
> CalculatorService.testService reference and the OSGi service to use the same
> binding (such as RMI, or WS) to communicate. Make sure the interface is
> remotable. binding.sca is not working yet.
>
> Thanks,
> Raymond
>
>
> From: santiago.aranda@telvent.com
>
> Sent: Tuesday, June 16, 2009 1:33 AM
>
> To: user@tuscany.apache.org
>
> Subject: Re: Fwd: Problem with "implementation.osgi" reference
>
>
>
>
> So, I have to attach two files (componentType and composite) to my two
> different bundles (TestService and Calculator) and model it as
> "implementation.osgi".   I have TestService in a bundle I will add these two
> file and I will design as "implementation.osgi" .
>
> But Calculator Service (this is in other bundle) has three components and
> they are all "implementation.java" and it is working OK. How can I put a
> reference to TestService?? Do I need change "implementation.osgi" in
> CalculatorComponent instead "implementation.java"? and is it neccesary for
> AddServiceComponent and SubstractService??
>
> I will try a example I will copy my files in the email.
>
> Thank you very much
>
> Un saludo.
> Santiago Miguel Aranda Rojas
> Telvent Interactiva
> Extension: 35999
> Telefono: 955637418
>
>
> "Raymond Feng" <enjoyjava@gmail.com>
> "Raymond Feng"
> 15/06/2009 18:36
> Para: <user@tuscany.apache.org>, <santiago.aranda@telvent.com>
> cc:
> Asunto: Re: Fwd: Problem with "implementation.osgi" reference
>
>
>
>
> To access an OSGi service from the SCA component, you will have to provide
> SCA configurations for the OSGi bundle so that it becomes an SCA component
> using implementation.osgi and the OSGi service becomes an SCA service so
> that the Calculator component can wire to that TestService.
>
> There are two SCA files you to provide to model the OSGi bundle as an SCA
> component.
> * bundle.componentType to describe what OSGi services or references are
> used
> in the bundle (We potentially have better approach to introspect the OSGi
> bundle to build this up)
> * bundle.composite to configure the component, for example, setting the
> bindings.
>
> These files can be in a separate OSGi bundle than the one that owns the
> services/references.
>
> Thanks,
> Raymond
>
> From: Santiago Miguel Aranda Rojas
> Sent: Monday, June 15, 2009 4:01 AM
> To: user@tuscany.apache.org
> Subject: Fwd: Problem with "implementation.osgi" reference
>
>
>
>
>
>
> Hi
>
>
> I can not understand this sample because there are many new concepts for
> me.
> For example "bundle.componentType". There is not too much information about
> that . I think I need something more simple. I have attached a picture with
> my idea.
>
>
> ** When my SCA service was working I had a main component
> "implementacion.java" with two references to another two components
> (implementation.java). The main component could be invoked as Web Service.
>
>
> ** Now, I want another reference to a Service (TestService in the picture)
> that was registered by another different bundle. But this is a OSGi bundle,
> without SCA information, Composite file nor ComponentType file. I mean it
> is
> a bundle that is registering a service in the OSGi registry. I need have a
> instance wired to this OSGi service in the class of the main Component in
> order to invoke their methods.
>
>
> TestService testService;
>
>
> //I need testService is not null in order to invoke their methods.
> testService.sayHello();
>
>
>
>
> I hope you can understand my problem. You can ask me if you want.
>
>
> Thank you very mucha
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
>
> 2009/6/10 Raymond Feng <enjoyjava@gmail.com>
>
> Please see:
>
> https://svn.apache.org/repos/asf/tuscany/java/sca/samples/dosgi-calculator/
>
> https://svn.apache.org/repos/asf/tuscany/java/sca/samples/dosgi-calculator-operations/
>
>
> http://cwiki.apache.org/confluence/display/TUSCANYWIKI/OSGi+RFC+119+Implementation
>
> Thanks,
> Raymond
>
>
> From: Santiago Miguel Aranda Rojas
> Sent: Wednesday, June 10, 2009 12:07 AM
> To: user@tuscany.apache.org
> Subject: Re: Problem with "implementation.osgi" reference
>
>
> Yes, you are right. I was doing some different tests and I copied you a
> wrong composite. I wanted to see if the change of @target made an error in
> tuscany.  But Tuscany doesn4t recognize this error because I think it
> supposes that will be a "remote Component". I can see this in the tuscany
> trace
>
>
> ADVERTENCIA: Component reference target not found, it might be a remote
> service running elsewhere in the SCA Domain: Composite =
> {
> http://eclipse.org/SensorNetworkManagement/src/main/resources/SensorNetworkManagement}SensorNetworkManagement<http://eclipse.org/SensorNetworkManagement/src/main/resources/SensorNetworkManagement%7DSensorNetworkManagement>
> Service = PruebaComponent
>
>
>
> But it is Ok, because the component I want if an Osgi Service registered in
> the Osgi registry.
> I have fixed the error in @target and it is not working yet.
>
>
> Do you know any example when an <implementation.osgi> component is used?
>
>
>
>
> I have tried to change  "xmlns" tag, but it doesn4t work.
>
>
> <sca:component name="PruebaComponent">
>  <sca:implementation.osgi
> xmlns="http://docs.oasis-open.org/ns/opencsa/sca/200903"
>       bundleSymbolicName="RegistroService"
>       bundleVersion="1.0.0">
>      <sca:properties service="prueba.PruebaImpl">
>      </sca:properties>
>  </sca:implementation.osgi>
> </sca:component>
>
>
> Thank you very much.
>
>
>
> 2009/6/10 Raymond Feng <enjoyjava@gmail.com>
>
> The @target is pointing to a wrong componentName/serviceName. It should be
> "Prueba" instead of "PruebaComponent" as the component name is "Prueba".
>
>
> From: Santiago Miguel Aranda Rojas
> Sent: Tuesday, June 09, 2009 1:28 PM
> To: user@tuscany.apache.org
> Subject: Re: Problem with "implementation.osgi" reference
>
>
> Tuscany 2.02M. The last version I think. April 2009
> ----- Original Message ----- From: Raymond Feng
> To: user@tuscany.apache.org
> Sent: Tuesday, June 09, 2009 7:12 PM
> Subject: Re: Problem with "implementation.osgi" reference
>
>
> Are you using Tuscany/SCA 2.x or 1.x?
>
>
> From: santiago.aranda@telvent.com
> Sent: Tuesday, June 09, 2009 9:15 AM
> To: user@tuscany.apache.org
> Subject: Problem with "implementation.osgi" reference
>
>
>
> Hello
>
> I want to use an osgi service as a SCA component. But I can not access to
> their methods from other Component.  I mean I have created a wired instance
> to the Osgi Service ($Proxy25). It is not "null" but I can not invoke to
> one
> method because an error is happening
>
> --->Unable to create SCA binding invoker for local target
> SensorNetworkManagementComponent reference prueba (bindingURI=null
> operation=sayHello)
>
> This is my composite file. I want to have to two components. The first had
> a
> reference to the second and it is normal "implementation.java". The second
> is the SCA component that is representing to the Osgi Service that I want
> to
> recover. This Osgi Service was registered in the Osgi registry by Activator
> class in "RegistroService" bundle.
>
> <sca:component name="SensorNetworkManagementComponent">
> <sca:implementation.java
>
> class="es.amivital.sensornetworkmanagement.sca.SensorNetworkManagementServiceImpl"/>
> <sca:service name="SensorNetworkManagementService">
> <sca:binding.ws
> uri="http://localhost:8085/SensorNetworkManagementComponent"/>
> </sca:service>
> <sca:reference name="prueba" target="PruebaComponent"/>
> </sca:component>
>
>
> <sca:component name="Prueba">
>  <sca:implementation.osgi
> xmlns="http://tuscany.apache.org/xmlns/sca/1.0"
>       bundleSymbolicName="RegistroService"
>       bundleVersion="1.0.0">
>      <sca:properties service="prueba.PruebaImpl">
>      </sca:properties>
>  </sca:implementation.osgi>
> </sca:component>
>
> ***The Java code--> The first component.
>
> public class SensorNetworkManagementServiceImpl  implements
> SensorNetworkManagementService {
> private Prueba prueba;
> public Prueba getPrueba() {
> return prueba;
> }
> @Reference
> public void setPrueba(Prueba prueba) {
> this.prueba = prueba;
> }
> }
>
> **Java code       --> The second component. It is another bundle that is
> registering one simple Osgi Service. The interface was
>
> public interface Prueba {
> public abstract String sayHello();
>
> }
>
>
>
>
>
> This instance (prueba) is not null when an outside client invoke to the
> first component. But if I invoke to one method of this interface, for
> example "prueba.sayHello" I obtained the previous error.
>
> I have read something about anottations like @AllowsPassByReference or
> @Scope, but I don4t know if they are neccesary .
>

Mime
View raw message