View Javadoc

1   package org.controlhaus.xfire.client;
2   
3   import org.apache.xmlbeans.XmlObject;
4   import org.codehaus.xfire.fault.XFireFault;
5   
6   import org.apache.beehive.controls.api.bean.ControlInterface;
7   import org.apache.beehive.controls.api.properties.PropertySet;
8   
9   import java.io.IOException;
10  import java.lang.annotation.Retention;
11  import java.lang.annotation.RetentionPolicy;
12  import java.lang.annotation.Target;
13  import java.lang.annotation.ElementType;
14  
15  /***
16   * An XFire client control.  Included are two annotations which
17   * can be used to configure the control.  Encoding, which will specify
18   * the encoding. It defaults to UTF-8.  Also the ServiceUrl annotation
19   * will specify which url to invoke for the service.
20   * <p>
21   * A typical usage would look like so:
22   * <pre>
23   *  {@literal @}Encoding("UTF-8")
24   *  {@literal @}ServiceUrl("http://some.service.com")
25   *  {@literal @}Control XFireClientControl client;
26   * </pre>
27   * 
28   * @author <a href="mailto:dan@envoisolutions.com">Dan Diephouse</a>
29   * @since Nov 5, 2004
30   */
31  @ControlInterface
32  public interface XFireClientControl
33  {
34      /***
35       * Invoke a SOAP service.
36       * 
37       * @param request The request as XMLBeans.
38       * @return The response as XMLBeans.
39       * @throws XFireFault
40       */
41      XmlObject[] invoke( XmlObject[] request ) throws IOException, XFireFault;
42  
43      @PropertySet(prefix="Encoding")
44      @Target( {ElementType.TYPE, ElementType.FIELD, ElementType.METHOD} )
45      @Retention(RetentionPolicy.RUNTIME)
46      public @interface Encoding
47      {
48          String value() default "UTF-8";
49      }
50      
51      @PropertySet(prefix="ServiceUrl")
52      @Target( {ElementType.TYPE, ElementType.FIELD, ElementType.METHOD} )
53      @Retention(RetentionPolicy.RUNTIME)
54      public @interface ServiceUrl
55      {
56          String value();
57      }
58  }