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]

Reply via email to