@Property on a setter method does not work
------------------------------------------

         Key: TUSCANY-219
         URL: http://issues.apache.org/jira/browse/TUSCANY-219
     Project: Tuscany
        Type: Bug

  Components: Java SCA Core  
    Reporter: Jean-Sebastien Delfino


This is a significant problem as following the recommended practice for 
JavaBean properties causes an exception.

To reproduce the problem, modify 
org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentImpl as 
follows:

    private String greetingMiddle;
    
    @Property
    public void setGreetingMiddle(String greetingMiddle) {
        this.greetingMiddle = greetingMiddle;
    }
    
    public String getGreetingMiddle() {
        return greetingMiddle;
    }

run mvn from helloworldmc.

Here's the surefire report:

-------------------------------------------------------------------------------
Battery: 
org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentTestCase
-------------------------------------------------------------------------------
Tests run: 1, Failures: 0, Errors: 1, Time elapsed: 1.034 sec

testGeetings(org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentTestCase)
  Time elapsed: 1.008 sec  <<< ERROR!

[ stdout ] ---------------------------------------------------------------



[ stderr ] ---------------------------------------------------------------



[ stacktrace ] -----------------------------------------------------------

org.apache.tuscany.core.config.InvalidSetterException: public void 
org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentImpl.setGreetingMiddle(java.lang.String)
        at 
org.apache.tuscany.core.config.impl.Java5ComponentTypeIntrospector.addProperty(Java5ComponentTypeIntrospector.java:332)
        at 
org.apache.tuscany.core.config.impl.Java5ComponentTypeIntrospector.introspectPublicMethods(Java5ComponentTypeIntrospector.java:288)
        at 
org.apache.tuscany.core.config.impl.Java5ComponentTypeIntrospector.introspectAnnotatedMembers(Java5ComponentTypeIntrospector.java:201)
        at 
org.apache.tuscany.core.config.impl.Java5ComponentTypeIntrospector.introspect(Java5ComponentTypeIntrospector.java:80)
        at 
org.apache.tuscany.container.java.loader.JavaImplementationLoader.loadComponentTypeByIntrospection(JavaImplementationLoader.java:119)
        at 
org.apache.tuscany.container.java.loader.JavaImplementationLoader.loadComponentType(JavaImplementationLoader.java:112)
        at 
org.apache.tuscany.container.java.loader.JavaImplementationLoader.load(JavaImplementationLoader.java:91)
        at 
org.apache.tuscany.container.java.loader.JavaImplementationLoader.load(JavaImplementationLoader.java:51)
        at 
org.apache.tuscany.core.loader.impl.StAXLoaderRegistryImpl.load(StAXLoaderRegistryImpl.java:64)
        at 
org.apache.tuscany.core.loader.assembly.ComponentLoader.load(ComponentLoader.java:80)
        at 
org.apache.tuscany.core.loader.assembly.ComponentLoader.load(ComponentLoader.java:53)
        at 
org.apache.tuscany.core.loader.impl.StAXLoaderRegistryImpl.load(StAXLoaderRegistryImpl.java:64)
        at 
org.apache.tuscany.core.loader.assembly.AggregateLoader.loadAggregate(AggregateLoader.java:43)
        at 
org.apache.tuscany.core.loader.assembly.ModuleLoader.load(ModuleLoader.java:39)
        at 
org.apache.tuscany.core.loader.assembly.ModuleLoader.load(ModuleLoader.java:32)
        at 
org.apache.tuscany.core.loader.impl.StAXLoaderRegistryImpl.load(StAXLoaderRegistryImpl.java:64)
        at 
org.apache.tuscany.core.config.impl.StAXModuleComponentConfigurationLoaderImpl.loadModule(StAXModuleComponentConfigurationLoaderImpl.java:51)
        at 
org.apache.tuscany.core.config.impl.AbstractModuleComponentConfigurationLoader.loadModuleComponent(AbstractModuleComponentConfigurationLoader.java:98)
        at 
org.apache.tuscany.core.config.impl.AbstractModuleComponentConfigurationLoader.loadModuleComponent(AbstractModuleComponentConfigurationLoader.java:88)
        at 
org.apache.tuscany.core.config.impl.AbstractModuleComponentConfigurationLoader.loadModuleComponent(AbstractModuleComponentConfigurationLoader.java:61)
        at 
org.apache.tuscany.core.client.TuscanyRuntime.<init>(TuscanyRuntime.java:103)
        at 
org.apache.tuscany.core.client.TuscanyRuntime.<init>(TuscanyRuntime.java:67)
        at 
org.apache.tuscany.samples.helloworldmc.HelloWorldServiceComponentTestCase.testGeetings(HelloWorldServiceComponentTestCase.java:30)
        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 junit.framework.TestCase.runTest(TestCase.java:154)
        at junit.framework.TestCase.runBare(TestCase.java:127)
        at junit.framework.TestResult$1.protect(TestResult.java:106)
        at junit.framework.TestResult.runProtected(TestResult.java:124)
        at junit.framework.TestResult.run(TestResult.java:109)
        at junit.framework.TestCase.run(TestCase.java:118)
        at junit.framework.TestSuite.runTest(TestSuite.java:208)
        at junit.framework.TestSuite.run(TestSuite.java:203)
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)


-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira

Reply via email to