Hi Michael,

I've finished implementing the endpoint interface support for
WsmReflectionAnnotationProcessor.
As you said, only java class name is allowed 
for WsmReflectionAnnotationProcessor to use in
@WebService.endpointInterface annotation.

> Also, keep in mind that all methods defined in a service endpoint
> interface are automatically considered @WebMethods -- whether they are
> annotated or not.
I've added the implementation of this for both
WsmReflectionAnnotationProcessor and WsmAnnotationProcessor.
I was supposed to implement this before, but totally forgot.  :(
sorry...  anyways, it's done now.

I got a new question. 

If the service implementation bean or the service endpoint interface has
a method( annotated with @WebMethod ) having a parameter which is NOT
annotated with @WebParam like below, 
-------------------------
@WebMethod
public int addPersion(@WebParam String name, int age);
-------------------------
(NOTICE: the parameter age is not annotated with @WebParam.)
Will the parameter age be exposed ? In the other words,  should the
parameter age be included in an object model ?
Or the existence of a non-annotated parameter of a method annotated with
@WebMethod is illegal to JSR-181 ? 

JSR-181 doesn't state about this as far as I read it...

I'm sorry to ask you several times and took a long time to implement 
such a little stuff...

Let me explain the attachment.

-WebServiceMETHODMetadata.java
        It used to throw an exception if a @WebMethod annotation is not used on 
        a method declaration and the method is passed to the constructor of 
this 
        class.
        Modified this class not to throw an exception even though the annotation
        is not found since the methods of the service endpoint interface are 
not 
        promised to be annotated with @WebMethod, but must be included in an 
object 
        model.
        
        NOTE: This modification causes failure of 
              org.apache.beehive.wsm.jsr181.model.Jsr181ModelTest test case.

-Cheetorama.java
        Added a "public int dropMoney(int amount);" method.
        This class is not annotated with any annotations.

-BarTestCase.java
        Added a test case that tests the dropMoney method of the Cheetorama 
class 
        which is a service endpoint interface is included in an object model.

-WsmAnnotationProcessor.java
        Modified this class to satisfy that all methods defined in a service 
endpoint
        interface are automatically considered @WebMethods.

-WsmReflectionAnnotationProcessor.java
        Modified this class to support the endpoint interface.

Add two classes below.
-WsmAnnotationProcessorEndpointInterfaceTest.java 
        This class is a test case for checking the endpoint interface created by
        reflection.
-WebServiceMetadataViewer.java
        This class is just a utility that displays the object model tree for 
debug.


NOTE:
org.apache.beehive.wsm.jsr181.model.Jsr181ModelTest will fail.
This is because of the modification to WebServiceMETHODMetadata.java.

Thanks in advance.

Wolfgang

Reply via email to