Thanks Raymond, Jim also took a first look and sent some suggested changes that I'm about to attach on a second patch. Please wait for the second patch if you are also going to take a look at it.
-- Luciano Resende http://people.apache.org/~lresende On 1/21/07, Raymond Feng <[EMAIL PROTECTED]> wrote:
Hi, Luciano. I'll review it. Thanks, Raymond ----- Original Message ----- From: "Luciano Resende" <[EMAIL PROTECTED]> To: "tuscany-dev" <[email protected]> Sent: Sunday, January 21, 2007 12:03 PM Subject: Patch for Tuscany-914, was Re: Help on handling duplicated components via include files. >I have attached a patch for Tuscany-914 issue : > http://issues.apache.org/jira/browse/TUSCANY-914 > > Please, someone more familiar with the kernel area, take a quick look > before > I check it in. > > -- > Luciano Resende > http://people.apache.org/~lresende > > On 1/19/07, Luciano Resende <[EMAIL PROTECTED]> wrote: >> >> Hi All >> >> Issue TUSCANY-914 is about handling duplicated component defined using >> include SCDL files. The current behavior is that, the latest overrides >> previous defined components, and this cause some side effects like >> overriding properties values, etc. The JIRA suggests that an exception is >> thrown. Looking at the Assembly spec 0.96, looks like the duplication >> should be consider as an error, so please correct me if I'm wrong (and if >> I'm wrong, disregard the rest of this e-mail :) ) >> >> I'm trying to find the right place to handle these duplicated >> components, so far, I have tried compositeLoader.load and >> compositeComponentType.add(componentDefinition), this last one was the >> more promissor one, but looks like when loading the SCDL from my >> application >> (the one that has the duplicated components) the compositeComponentType >> does >> not find a previous component with the same name, even navigating trough >> all >> the includes... >> >> Here is a debug code I was adding to the add method, to transverse all >> the components : >> >> public void add(ComponentDefinition<? extends Implementation<?>> >> componentDefinition) { >> //lresende - check for duplicated components >> System.out.println("====================="); >> System.out.println("Include : "); >> >> for (Include i : includes.values()) { >> System.out.println(" - " + i.getName()); >> >> Iterator itComponents = i.getIncluded >> ().getComponents().values().iterator(); >> while(itComponents.hasNext()){ >> ComponentDefinition<? extends Implementation<?>> >> component >> = (ComponentDefinition<? extends Implementation<?>>) itComponents.next (); >> System.out.println(" - - " + component.getName()); >> } >> } >> >> System.out.println("Adding component : " + >> componentDefinition.getName ()); >> if(components.containsKey(componentDefinition.getName())) >> System.out.println("Duplicated component : " + >> componentDefinition.getName()); >> >> if(componentNameList.containsKey (componentDefinition.getName ())) >> System.out.println("Duplicated component : " + >> componentDefinition.getName()); >> >> components.put(componentDefinition.getName(), >> componentDefinition); >> } >> >> >> As a result, i was getting something like : >> >> Adding component : localBindingLoader >> ===================== >> Include : >> - org.apache.tuscany.core.JavaImplementation >> - - java.componentBuilder >> - - java.implementationLoader >> - - java.componentTypeLoader >> - org.apache.tuscany.core.InterfaceJava >> - - interfaceJava.loader >> ........... >> Adding component : localBindingBuilder >> ===================== >> Include : >> Adding component : HelloComponent >> ===================== >> Include : >> Adding component : HelloComponent >> Hello2 >> >> >> Would you guys help me understand this load phase little better, and >> where would be a better place for me to try to handle these duplicated >> components ? >> >> -- >> Luciano Resende >> http://people.apache.org/~lresende < http://people.apache.org/%7Elresende> > --------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]
