[jboss-dev-forums] [Design of POJO Server] - Re: bean/mbean integration issue
alesj
do-not-reply at jboss.com
Wed Jan 17 11:37:49 EST 2007
"adrian at jboss.org" wrote :
| To what? Again this should probably be a seperate interface that can be
| optionally implemented.
|
| That a context has an associated classloader is true for JMX
| and sort of true for POJO (there is no first class support like the MBeanServer methods)
| But is this really true of all contexts of a state machine?
|
So we should split DispatchContext into simple get/set interface and 'advanced' interface with invoke, target, classloader.
Since how else would you get the parameters and signatures?
| protected Object invoke(KernelConfigurator configurator, DispatchContext context, String name, List<ParameterMetaData> params) throws Throwable
| {
| String[] signature;
| Object[] parameters;
| if (params == null || params.isEmpty())
| {
| signature = new String[0];
| parameters = new Object[0];
| }
| else
| {
| int size = params.size();
| signature = Configurator.getParameterTypes(log.isTraceEnabled(), params);
| Object target = context.getTarget();
| // TODO - is this ok for non-POJO targets?
| if (target != null)
| {
| MethodInfo methodInfo = Configurator.findMethodInfo(configurator.getClassInfo(target.getClass()), name, signature);
| parameters = Configurator.getParameters(log.isTraceEnabled(), context.getClassLoader(), methodInfo.getParameterTypes(), params);
| // add some more info, if not yet set
| for(int j = 0; j < size; j++)
| {
| if (signature[j] == null)
| {
| signature[j] = methodInfo.getParameterTypes()[j].getName();
| }
| }
| }
| else
| {
| parameters = new Object[size];
| ClassLoader classLoader = context.getClassLoader();
| for (int i = 0; i < size; i++)
| {
| ParameterMetaData pmd = params.get(i);
| TypeInfo typeInfo = null;
| if (signature[j] != null)
| {
| typeInfo = configurator.getClassInfo(signature[j], classLoader);
| }
| // typeInfo might be null, but we can still get value in some cases
| parameters[j] = pmd.getValue().getValue(typeInfo, classLoader);
| }
|
| }
| }
| return context.invoke(name, parameters, signature);
| }
|
View the original post : http://www.jboss.com/index.html?module=bb&op=viewtopic&p=4002911#4002911
Reply to the post : http://www.jboss.com/index.html?module=bb&op=posting&mode=reply&p=4002911
More information about the jboss-dev-forums
mailing list