Hi, Luciano.
I'll review it.
Thanks,
Raymond
----- Original Message -----
From: "Luciano Resende" <[EMAIL PROTECTED]>
To: "tuscany-dev" <tuscany-dev@ws.apache.org>
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]