[jboss-dev-forums] [Design the new POJO MicroContainer] - setting managed property of type List
alex.loubyansky@jboss.com
do-not-reply at jboss.com
Fri Dec 7 05:41:04 EST 2007
I couldn't find a test for it? The only test I found for ManagedProperty.setValue() is org.jboss.test.managed.mock.MockTest but it sets only Strings.
I have a property of type java.util.List and when I set it I get
java.lang.reflect.UndeclaredThrowableException
| at org.jboss.metatype.plugins.values.DefaultMetaValueFactory.newArrayInstance(DefaultMetaValueFactory.java:654)
| at org.jboss.metatype.plugins.values.DefaultMetaValueFactory.internalUnwrap(DefaultMetaValueFactory.java:490)
| at org.jboss.metatype.plugins.values.DefaultMetaValueFactory.unwrap(DefaultMetaValueFactory.java:451)
| at org.jboss.managed.plugins.factory.AbstractManagedObjectFactory.setValue(AbstractManagedObjectFactory.java:753)
| at org.jboss.managed.plugins.WritethroughManagedPropertyImpl.setValue(WritethroughManagedPropertyImpl.java:111)
| at org.jboss.resource.deployers.management.DsDataSourceTemplate.writeTemplate(DsDataSourceTemplate.java:159)
| at org.jboss.resource.deployers.management.DsDataSourceTemplate.applyTemplate(DsDataSourceTemplate.java:69)
| at org.jboss.profileservice.management.ManagementViewImpl.applyTemplate(ManagementViewImpl.java:550)
| at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:121)
| at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
| at org.jboss.profileservice.remoting.ProfileServiceInvocationHandler.invoke(ProfileServiceInvocationHandler.java:56)
| at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:771)
| at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
| at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:373)
| at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
| Caused by: java.lang.ClassCastException: ReflectClassInfoImpl at 1bc6271{name=java.util.List} is not an array.
| at org.jboss.reflect.plugins.ClassInfoImpl.newArrayInstance(ClassInfoImpl.java:532)
| at org.jboss.reflect.spi.DelegateClassInfo.newArrayInstance(DelegateClassInfo.java:285)
| at org.jboss.metatype.plugins.values.DefaultMetaValueFactory.newArrayInstance(DefaultMetaValueFactory.java:650)
| at org.jboss.metatype.plugins.values.DefaultMetaValueFactory.internalUnwrap(DefaultMetaValueFactory.java:490)
| at org.jboss.metatype.plugins.values.DefaultMetaValueFactory.unwrap(DefaultMetaValueFactory.java:451)
| at org.jboss.managed.plugins.factory.AbstractManagedObjectFactory.setValue(AbstractManagedObjectFactory.java:753)
| at org.jboss.managed.plugins.WritethroughManagedPropertyImpl.setValue(WritethroughManagedPropertyImpl.java:111)
| at org.jboss.resource.deployers.management.DsDataSourceTemplate.writeTemplate(DsDataSourceTemplate.java:159)
| at org.jboss.resource.deployers.management.DsDataSourceTemplate.applyTemplate(DsDataSourceTemplate.java:69)
| at org.jboss.profileservice.management.ManagementViewImpl.applyTemplate(ManagementViewImpl.java:550)
| at org.jboss.aop.Dispatcher.invoke(Dispatcher.java:121)
| at org.jboss.aspects.remoting.AOPRemotingInvocationHandler.invoke(AOPRemotingInvocationHandler.java:82)
| at org.jboss.profileservice.remoting.ProfileServiceInvocationHandler.invoke(ProfileServiceInvocationHandler.java:56)
| at org.jboss.remoting.ServerInvoker.invoke(ServerInvoker.java:771)
| at org.jboss.remoting.transport.socket.ServerThread.processInvocation(ServerThread.java:573)
| at org.jboss.remoting.transport.socket.ServerThread.dorun(ServerThread.java:373)
| at org.jboss.remoting.transport.socket.ServerThread.run(ServerThread.java:166)
| at org.jboss.remoting.MicroRemoteClientInvoker.invoke(MicroRemoteClientInvoker.java:163)
| at org.jboss.remoting.Client.invoke(Client.java:1634)
| at org.jboss.remoting.Client.invoke(Client.java:548)
| at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:62)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.remoting.MergeMetaDataInterceptor.invoke(MergeMetaDataInterceptor.java:74)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at AOPProxy$1.applyTemplate(AOPProxy$1.java)
| at org.jboss.test.profileservice.test.ProfileServiceUnitTestCase.testAddXADataSource(ProfileServiceUnitTestCase.java:430)
| at org.jboss.aspects.remoting.InvokeRemoteInterceptor.invoke(InvokeRemoteInterceptor.java:74)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.remoting.MergeMetaDataInterceptor.invoke(MergeMetaDataInterceptor.java:74)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at org.jboss.aspects.security.SecurityClientInterceptor.invoke(SecurityClientInterceptor.java:65)
| at org.jboss.aop.joinpoint.MethodInvocation.invokeNext(MethodInvocation.java:101)
| at AOPProxy$1.applyTemplate(AOPProxy$1.java)
| at org.jboss.test.profileservice.test.ProfileServiceUnitTestCase.testAddXADataSource(ProfileServiceUnitTestCase.java:430)
The code looks like
ManagedObjectFactory mof = ManagedObjectFactoryBuilder.create();
| ManagedConnectionFactoryDeploymentMetaData mcf = new XADataSourceDeploymentMetaData();
| ManagedObject cfMO = mof.initManagedObject(mcf, "DataSource", "XA");
| ManagedProperty dsProp = cfMO.getProperty("xa-datasource-properties");
| dsProp.setValue(arrayList);
|
|
| @ManagementObject(componentType=@ManagementComponent(type="DataSource",subtype="XA"))
| public class XADataSourceDeploymentMetaData extends DataSourceDeploymentMetaData
| {
| ....
| @ManagementProperty(name="xa-datasource-properties", description="The DataSource properties", managed=true)
| public List<XAConnectionPropertyMetaData> getXADataSourceProperties()
| {
| return this.xaDataSourceProperties;
| }
You can see the real testcase in the stacktrace.
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4111164#4111164
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4111164
More information about the jboss-dev-forums
mailing list