Thanks Sebastien, all working now. On 7/22/07, Jean-Sebastien Delfino <[EMAIL PROTECTED]> wrote:
Luciano Resende wrote: > I'm in the process of integrating the Model Resolver extensibility to > the DefaultSCADomain, and came across some issues on how the > ExtensionHelper is performing resolution of component types, looks > like it traverse all the models in the ModelResolver to find any > componentTypes [1]. I was trying to use the resolver to actually > resolve the componentType, but looks like there isn't enough > information on the PojoImplementation, as the call to > SCDLProcessor.addSideFileComponentType always get the "name" parameter > as null, and impl.getUri() is also always null. > > Can someone more familiar with the > ExtensionHelper/implementation-script give me some hints on what tasks > need to be performed during the resolve phase ? I'll be on IRC, if a > quick chat is easier. > > I have made a patch available on the following JIRA[2], in case people > can give some help. > > [1] > https://svn.apache.org/repos/asf/incubator/tuscany/java/sca/modules/extension-helper/src/main/java/org/apache/tuscany/sca/spi/impl/SCDLProcessor.java > > [2] https://issues.apache.org/jira/browse/TUSCANY-1475 > >The logic in getComponentType looks like it's trying all componentTypes against all properties of the bean. I think this needs to be cleaned up a little as it'll lead to pretty unpredictable behavior but in the meantime, try this: private ComponentType getComponentType(ModelResolver resolver, Implementation impl) throws IllegalArgumentException, IllegalAccessException, InvocationTargetException { for (Method m : getGetters()) { Object io; if (impl instanceof PojoImplementation) { io = ((PojoImplementation)impl).getUserImpl(); } else { io = impl; } String value = (String) m.invoke(io, new Object[]{}); if (value != null) { value = value.substring(0, value.lastIndexOf('.')); ComponentType componentType = assemblyFactory.createComponentType(); componentType.setUnresolved(true); componentType.setURI(value + ".componentType"); componentType = resolver.resolveModel(ComponentType.class, componentType); if (!componentType.isUnresolved()) { return componentType; } } } return null; } -- Jean-Sebastien --------------------------------------------------------------------- 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]
