Hi,

In TUSCANY-967, it was a problem with the test case which incorrectly placed .componentType in the source folder (src/main/java) instead of the resource folder (src/main/resources).

Thanks,
Raymond

----- Original Message ----- From: "Luciano Resende" <[EMAIL PROTECTED]>
To: "tuscany-dev" <[email protected]>
Sent: Tuesday, January 16, 2007 5:33 PM
Subject: Re: Tuscany-1045 - Merging component type information from two sources


Hi Raymond

  I have a possible fix for Tuscany-1045, but after I apply the fix, I
start getting the issue described in TUSCANY-967. What was the problem you
fixed ? From the comments, I looked for the componentType in the target
directory and it's there... Here is the stack trace I'm getting :

java.lang.NullPointerException
       at
org.apache.tuscany.core.implementation.processor.ServiceProcessor.visitField
(ServiceProcessor.java:144)
       at
org.apache.tuscany.core.implementation.IntrospectionRegistryImpl.introspect(
IntrospectionRegistryImpl.java:97)
       at
org.apache.tuscany.core.implementation.java.JavaComponentTypeLoader.loadByIntrospection
(JavaComponentTypeLoader.java:79)
       at
org.apache.tuscany.core.implementation.java.JavaComponentTypeLoader.load(
JavaComponentTypeLoader.java:65)
       at
org.apache.tuscany.core.implementation.java.JavaComponentTypeLoader.load(
JavaComponentTypeLoader.java:45)
       at
org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:156)
       at
org.apache.tuscany.core.implementation.java.JavaImplementationLoader.load(
JavaImplementationLoader.java:58)
       at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:84)
at org.apache.tuscany.core.loader.ComponentLoader.loadImplementation
(ComponentLoader.java:199)
       at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:110)
       at org.apache.tuscany.core.loader.ComponentLoader.load(
ComponentLoader.java:79)
       at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:84)
       at
org.apache.tuscany.core.implementation.composite.CompositeLoader.load(
CompositeLoader.java:91)
       at
org.apache.tuscany.core.implementation.composite.CompositeLoader.load(
CompositeLoader.java:65)
       at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:84)
       at org.apache.tuscany.core.loader.LoaderRegistryImpl.load(
LoaderRegistryImpl.java:102)
       at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.loadFromSidefile
(CompositeComponentTypeLoader.java:65)
       at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:57)
       at
org.apache.tuscany.core.implementation.composite.CompositeComponentTypeLoader.load
(CompositeComponentTypeLoader.java:39)
       at
org.apache.tuscany.core.loader.LoaderRegistryImpl.loadComponentType(
LoaderRegistryImpl.java:156)
       at org.apache.tuscany.core.deployer.DeployerImpl.load(
DeployerImpl.java:127)
       at org.apache.tuscany.core.deployer.DeployerImpl.deploy(
DeployerImpl.java:92)
       at
org.apache.tuscany.core.runtime.AbstractRuntime.deployApplicationScdl(
AbstractRuntime.java:305)
       at
org.apache.tuscany.sca.plugin.itest.MavenEmbeddedRuntime.initialize(
MavenEmbeddedRuntime.java:83)
       at org.apache.tuscany.sca.plugin.itest.TuscanyStartMojo.execute(
TuscanyStartMojo.java:295)
       at org.apache.maven.plugin.DefaultPluginManager.executeMojo(
DefaultPluginManager.java:412)
at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoals(
DefaultLifecycleExecutor.java:534)
       at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalWithLifecycle
(DefaultLifecycleExecutor.java:475)
       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoal(
DefaultLifecycleExecutor.java:454)
       at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeGoalAndHandleFailures
(DefaultLifecycleExecutor.java:306)
       at
org.apache.maven.lifecycle.DefaultLifecycleExecutor.executeTaskSegments(
DefaultLifecycleExecutor.java:273)
       at org.apache.maven.lifecycle.DefaultLifecycleExecutor.execute(
DefaultLifecycleExecutor.java:140)
       at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:322)
       at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:115)
       at org.apache.maven.cli.MavenCli.main(MavenCli.java:256)
       at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
       at sun.reflect.NativeMethodAccessorImpl.invoke(
NativeMethodAccessorImpl.java:39)
       at sun.reflect.DelegatingMethodAccessorImpl.invoke(
DelegatingMethodAccessorImpl.java:25)
       at java.lang.reflect.Method.invoke(Method.java:585)
       at org.codehaus.classworlds.Launcher.launchEnhanced(Launcher.java
:315)
       at org.codehaus.classworlds.Launcher.launch(Launcher.java:255)
       at org.codehaus.classworlds.Launcher.mainWithExitCode(Launcher.java
:430)
       at org.codehaus.classworlds.Launcher.main(Launcher.java:375)


On 1/15/07, Luciano Resende <[EMAIL PROTECTED]> wrote:

I have started investigating TUSCANY-1045. Based on what the spec is
saying, we should start by calculating the component type information from introspection and then looking into sidefile and merge the info from both in
a compatible way :

"The component type is calculated in two steps where the second step adds
to the information found in the first step. Step one is introspecting the
implementation (if possible), including the inspection of implementation
annotations (if available). Step two covers the cases where introspection of
the implementation is not possible or where it does not provide complete
information and it involves looking for an SCA component type file.
Component type information found in the component type file must be
compatible with the equivalent information found from inspection of the
implementation. The component type file can specify partial information,
with the remainder being derived from the implementation. "

The issue is that our code, inside JavaComponentTypeLoader is doing these
two paths in a exclusive way.
I'm planning to work on this, but I want some guidance on how to merge
information from a componentType from two different sources. I have couple
questions :

   - Do we already have some similar code available ?
   - Any special care while merging the info from the two sources
(introspection and sideFile) ?
   - How to identify if the info from both sources are compatible ?

--
Luciano Resende
http://people.apache.org/~lresende <http://people.apache.org/%7Elresende>




--
Luciano Resende
http://people.apache.org/~lresende



---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to