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]