Luciano,

Thanks. Works fine with these corrections.

> -----Message d'origine-----
> De : Luciano Resende [mailto:[EMAIL PROTECTED]
> Envoyé : vendredi 8 juin 2007 7:31
> À : tuscany-user@ws.apache.org; tuscany-dev
> Objet : Adding Multiple Contributions, was:Re: Simple use case problem
>
>
> Patrick
>
> Thanks for helping on this, looks like while trying the scenario where
> we have multiple contributions, we uncovered the following bugs :
>
>    - Class loader issue with contribution metadata loader [1]
>    - Wiring of multiple contributions [2]
>
> This scenario should now be working, after couple fixes that I
> committed under revision # 545411. Note that your sample application
> will need some small modifications, but you could use the
> EmbeddedSCADomainTestCase as an example to what needs to be changed,
> basically you will need to add a call to helper.activateDomain and
> then helper.startComponent.
>
> There is also a sample application exercising this scenario in my
> sandbox [3] for those interested. I'll work little more on this sample
> and probably move it to trunk under a sample or test case.
>
> While working on these issues, I also found the programming model to
> work with multiple contributions using EmbeddedSCADomain more complex
> then it should be. I'll take a deeper look into this area and send
> some proposals on how we could improve the programming model when
> using multiple contributions.
>
> [1] https://issues.apache.org/jira/browse/TUSCANY-1329
> [2] http://issues.apache.org/jira/browse/TUSCANY-1332
> [3]
> https://svn.apache.org/repos/asf/incubator/tuscany/sandbox/lresend
> e/sca/samples/
>
> On 6/7/07, Patrick Vanhuyse <[EMAIL PROTECTED]> wrote:
> > Hi Luciano,
> >
> > I have attached the full code of my sample to the jira issue.
> >
> > All is in it !
> >
> > I now use 2 different resolvers. But it doesn't help !
> >
> > Regards.
> >
> > Patrick
> >
> > > -----Message d'origine-----
> > > De : Luciano Resende [mailto:[EMAIL PROTECTED]
> > > Envoyé : mercredi 6 juin 2007 23:44
> > > À : tuscany-user@ws.apache.org
> > > Objet : Re: Simple use case problem
> > >
> > >
> > > Hi Patrick
> > >
> > >    Thanks for finding a workaround for a bug in the code that process
> > > the contribution metadata side file, I have created a jira for it [1].
> > >
> > >    Looking into the code you provided, I noticed you are using the
> > > same resolver while contributing both contributions, and you should be
> > > using two different ones....
> > >
> > >    Could you also provide us with the full stack trace and the
> > > composite files you are using ? In the mean time, I'll try to simulate
> > > what I think you are doing in a test case and made it available in
> > > Tuscany.
> > >
> > > [1] https://issues.apache.org/jira/browse/TUSCANY-1329
> > >
> > > On 6/6/07, Patrick Vanhuyse <[EMAIL PROTECTED]> wrote:
> > > > Luciano,
> > > >
> > > > First try with url = "file://.../provider.jar" doesn't work
> because :
> > > >
> > > > In ContributionServiceImpl.java, initializeContributionMetadata
> > > (line 134) :
> > > >
> > > >         URL[] clUrls = {sourceURL};
> > > >         URLClassLoader cl = new URLClassLoader(clUrls);
> > > >
> > > >         contributionMetadataURL =
> > > > cl.getResource(Contribution.SCA_CONTRIBUTION_META);
> > > >
> > > > sourceURL = "file://.../provider.jar"
> > > > contributionMetadataURL =
> > > > "file://.../consumer/target/classes/META-INF/sca-contribution.xml"
> > > > because of the parent class loader in cl.
> > > >
> > > > If I put a null parent class loader in the creation of cl :
> > > >
> > > >         URL[] clUrls = {sourceURL};
> > > >         URLClassLoader cl = new URLClassLoader(clUrls, null);
> > > >
> > > >         contributionMetadataURL =
> > > > cl.getResource(Contribution.SCA_CONTRIBUTION_META);
> > > >
> > > > it finds the good sca-contribution :
> > > > contributionMetadataURL =
> > > > "jar:file://.../provider.jar!/META-INF/sca-contribution.xml"
> > > >
> > > > and it loads the ProviderComposite and the ProviderComponent in it.
> > > >
> > > > But in my test :
> > > >
> > > >     // Determine my class loader and my test SCA
> contribution location
> > > >     String url =
> > > > "file:///h:/it/logiciel_gi/sca/provider/target/provider.jar";
> > > >
> > > >     ContributionService contributionService =
> > > > domain.getContributionService();
> > > >     DomainCompositeHelper helper =
> domain.getDomainCompositeHelper();
> > > >     ModelResolver myResolver = new
> > > > ModelResolverImpl(getClass().getClassLoader());
> > > >
> > > >     // Contribute the SCA contribution
> > > >     List<Contribution> contributions = new
> ArrayList<Contribution>(2);
> > > >
> > > >     Contribution contribution = contributionService
> > > >         .contribute("http://www.greisch.com/provider";, new URL(url),
> > > > myResolver, false);
> > > >     assertNotNull(contribution);
> > > >     contributions.add(contribution);
> > > >
> > > >     url = "file:///h:/it/logiciel_gi/sca/consumer/target/classes/";
> > > >
> > > >     contribution = contributionService
> > > >         .contribute("http://www.greisch.com/consumer";, new URL(url),
> > > > myResolver, false);
> > > >     assertNotNull(contribution);
> > > >     contributions.add(contribution);
> > > >
> > > >     for (Contribution contrib : contributions) {
> > > >       for (Composite composite : contrib.getDeployables()) {
> > > >         helper.addComposite(composite);
> > > >       }
> > > >       for (Composite composite : contrib.getDeployables()) {
> > > >         helper.startComposite(composite);
> > > >       }
> > > >     }
> > > >
> > > >
> > > >     Consumer consumer = domain.getService(Consumer.class,
> > > > "ConsumerComponent");
> > > >     consumer.consume("Test");
> > > >
> > > > I get a NullPointerException when running
> consumer.consume("Test"). It
> > > > doesn't link consumer with my ProviderComponent as required in
> > > > Consumer.composite.
> > > >
> > > > I keep going on with all this.
> > > >
> > > > Thanks for your help.
> > > >
> > > >
> > > > > -----Message d'origine-----
> > > > > De : Luciano Resende [mailto:[EMAIL PROTECTED]
> > > > > Envoyé : mardi 5 juin 2007 19:49
> > > > > À : tuscany-user@ws.apache.org
> > > > > Objet : Re: Simple use case problem
> > > > >
> > > > >
> > > > > Patrick
> > > > >
> > > > >    The contribution service package processor takes care of
> > > > > identifying what is the package type and creating the
> proper jar url
> > > > > for jar archives. Have you tried to pass a regular file
> url to the jar
> > > > > ? Something like :
> > > > >
> > > > >   String url = "file://.../provider.jar"
> > > > >
> > > > >    The contribution service iTest [1] gives an example of
> contributing
> > > > > a jar directly to the contribution service, just look for
> > > > > testContributeJAR.
> > > > >
> > > > >    Please let me know if it works for you after you pass the
> > > > > simple file url.
> > > > >
> > > > >
> > > > > [1]
> > > > > https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/itest/
> > > > > contribution/src/test/java/org/apache/tuscany/sca/test/contributio
> > > > > n/ContributionServiceTestCase.java
> > > > >
> > > > >
> > > > >
> > > > > On 6/5/07, Mike Edwards <[EMAIL PROTECTED]> wrote:
> > > > > > Patrick,
> > > > > >
> > > > > > One point to make here is that separate contributions are
> > > intended to
> > > > > > have different addresses, which in a simple file system
> equates to
> > > > > > different directories.  If you want multiple composites
> in the same
> > > > > > directory, then you should make them part of one
> > > contribution, which is
> > > > > > allowed.
> > > > > >
> > > > > >
> > > > > > Yours, Mike.
> > > > > >
> > > > > > Patrick Vanhuyse wrote:
> > > > > > > Hi Simon,
> > > > > > >
> > > > > > > I removed sca-contibutions.xml from provider. I copied
> > > > > Provider.composite to
> > > > > > > consumer/src/main/resource. I add ProviderComposite to
> > > the consumer
> > > > > > > sca-contribution.xml. And it works.
> > > > > > >
> > > > > > > I have had a look at the code in SCADomain.newInstance(). It
> > > > > loads only one
> > > > > > > sca-contribution.xml, the first found by the class loader, I
> > > > > think. To solve
> > > > > > > this, it should look at all the sca-contribution.xml
> > > > > (conflict : they are
> > > > > > > all in the same folder) from the various jars on the
> > > > > classpath in place of
> > > > > > > using only one (depends on the ClassLoader). I don't know if
> > > > > it's possible
> > > > > > > (the class loading mechanism is a mystery to me !).
> > > > > Furthermore, there is
> > > > > > > the SCA loading mechanism used which is yet a greater mystery.
> > > > > > >
> > > > > > > I will go on with my other tests. Afterwards, if I dare, I
> > > > > will throw myself
> > > > > > > into all this loading stuff.
> > > > > > >
> > > > > > > Thanks for your help.
> > > > > > >
> > > > > > > Patrick
> > > > > > >
> > > > > > > -----Message d'origine-----
> > > > > > > De : Simon Laws [mailto:[EMAIL PROTECTED]
> > > > > > > Envoyé : mercredi 30 mai 2007 18:11
> > > > > > > À : tuscany-user@ws.apache.org
> > > > > > > Objet : Re: Simple use case problem
> > > > > > >
> > > > > > >
> > > > > > > Hi Patrick
> > > > > > >
> > > > > > > What is going on here is that the consumer module is not
> > > loading the
> > > > > > > provider composite. I can make this work by doing the
> following...
> > > > > > >
> > > > > > > 1 - Make the provider composite available to the
> consumer runtime
> > > > > > >           copy the Provider.composite to
> > > consumer/src/main/resource
> > > > > > > 2 - Make the ProviderComposite deployable
> > > > > > >           add the ProviderComposite to the consumer
> > > > > > > sca-contributions.xmlfile
> > > > > > >
> > > > > > > Now I kind of expected to have to do 2 so that the runtime
> > > > > knows that the
> > > > > > > composite exists and should be deployed.
> > > > > > >
> > > > > > > However I don't know how to get round 1. I would like to be
> > > > > able to specify
> > > > > > > a jar to load alongside the  consumer composite that is
> > > > > loaded. However I
> > > > > > > took a look at the code and there seems to be more work to do
> > > > > in making the
> > > > > > > runtime and contribution service flexible in this
> way. All help is
> > > > > > > gratefully received if you feel like getting your
> hands dirty ;-)
> > > > > > >
> > > > > > > Regards
> > > > > > >
> > > > > > > Simon
> > > > > > >
> > > > > > >
> > > > > > >
> > > ---------------------------------------------------------------------
> > > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > > For additional commands, e-mail:
> [EMAIL PROTECTED]
> > > > > > >
> > > > > > >
> > > > > >
> > > > > >
> > > ---------------------------------------------------------------------
> > > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > > >
> > > > > >
> > > > >
> > > > >
> > > > > --
> > > > > Luciano Resende
> > > > > Apache Tuscany Committer
> > > > > http://people.apache.org/~lresende
> > > > > http://lresende.blogspot.com/
> > > > >
> > > > >
> ---------------------------------------------------------------------
> > > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > > >
> > > > >
> > > >
> > > >
> > > >
> ---------------------------------------------------------------------
> > > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > > For additional commands, e-mail: [EMAIL PROTECTED]
> > > >
> > > >
> > >
> > >
> > > --
> > > Luciano Resende
> > > Apache Tuscany Committer
> > > http://people.apache.org/~lresende
> > > http://lresende.blogspot.com/
> > >
> > > ---------------------------------------------------------------------
> > > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > > For additional commands, e-mail: [EMAIL PROTECTED]
> > >
> > >
> >
> >
> > ---------------------------------------------------------------------
> > To unsubscribe, e-mail: [EMAIL PROTECTED]
> > For additional commands, e-mail: [EMAIL PROTECTED]
> >
> >
>
>
> --
> Luciano Resende
> Apache Tuscany Committer
> http://people.apache.org/~lresende
> http://lresende.blogspot.com/
>
> ---------------------------------------------------------------------
> To unsubscribe, e-mail: [EMAIL PROTECTED]
> For additional commands, e-mail: [EMAIL PROTECTED]
>
>


---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to