Implementing MessageExchangeListener will lose the beauty of servicemix-bean
:(, but I understand you may be out of time and stuff, so I will just do
that.



On 5/25/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote:

Why not implementing MessageExhcangeListener ?
I know it does not solve the operation problem, but it is the
easiest work around at the moment.

On 5/25/07, Eduardo Burgos <[EMAIL PROTECTED]> wrote:
>
> Ok, that's exactly my point. Now look at this, same class, lines 68-76
>
> public void introspect() {
>         introspect(getType());
>         if (operations.size() == 1) {
>             Collection<MethodInfo> methodInfos = operations.values();
>             for (MethodInfo methodInfo : methodInfos) {
>                 defaultExpression = methodInfo;
>             }
>         }
>     }
>
>
> According to this, only if operations.size() == 1 I will get a
> defaultExpression, this involves that my bean has one and only one
method.
> This restricts a lot when it comes to receiving a message with a null
> operation, my bean can't have more than one method. Can we fix this
> somehow?
> maybe having the first Operation() attribute with no name to be the
> default
> one?
>
> To be more concrete, I'm trying to receive a message from a Quartz
> endpoint
> and I get no oportunity to specify an operation name, not even with a
> Marshaler.
>
> This way, having a defaultOperation is almost impossible.
>
> Any Comments?
>
>
> Eduardo Burgos
>
> On 5/25/07, Guillaume Nodet <[EMAIL PROTECTED]> wrote:
> >
> > Yeah.  It sounds like there is no way to hide
> > methods, so all public methods are exposed as operations :-(
> >
> > On 5/25/07, Eduardo Burgos <[EMAIL PROTECTED]> wrote:
> > >
> > > Hi, I've been looking at servicemix-bean and I noticed this in
> > > org.apache.servicemix.bean.support.BeanInfo line 103 in the
following
> > > method
> > > "protected void introspect(Class clazz, Method method)"
> > >
> > > I'm quoting lines 121-130
> > >
> > > 121-       // now lets add the method to the repository
> > >              String opName = method.getName();
> > >              if (method.getAnnotation(Operation.class) != null) {
> > >                   String name = method.getAnnotation(Operation.class
> > > ).name();
> > >
> > >                   if (name != null && name.length() > 0) {
> > >                       opName = name;
> > >                   }
> > >               }
> > >               Expression parametersExpression =
> > > createMethodParametersExpression(parameterExpressions);
> > > 130-        operations.put(opName, new MethodInfo(clazz, method,
> > > parametersExpression));
> > >
> > >
> > >
> > > According to this, every method of my bean is an operation whose
name
> is
> > > defined at least by the method's name. Is this intended? I thought
> that
> > > only
> > > the methods that had the Operation attribute would be listed as
> > > operations.
> > > For example, I have a "setSessionTimeout" method that I wouldn't
want
> it
> > > to
> > > be an operation :).
> > >
> > > Any ideas?
> > >
> > >
> > > Eduardo Burgos
> > >
> >
> >
> >
> > --
> > Cheers,
> > Guillaume Nodet
> > ------------------------
> > Principal Engineer, IONA
> > Blog: http://gnodet.blogspot.com/
> >
>



--
Cheers,
Guillaume Nodet
------------------------
Principal Engineer, IONA
Blog: http://gnodet.blogspot.com/

Reply via email to