org.jboss.resteasy.client.spring

## Class RestClientProxyFactoryBean<T>

- java.lang.Object
- - org.jboss.resteasy.client.spring.RestClientProxyFactoryBean<T>

- Type Parameters:
    `T` - The type representing the client interface.
  All Implemented Interfaces:
    org.springframework.beans.factory.FactoryBean<T>, org.springframework.beans.factory.InitializingBean

      public class RestClientProxyFactoryBean<T>
      extends Object
      implements org.springframework.beans.factory.FactoryBean<T>, org.springframework.beans.factory.InitializingBean

  `FactoryBean` to generate a client proxy from a REST annotated interface.

  Example: The following spring xml configuration snippet makes a bean with the id echoClient. The bean is a generated proxy of the a.b.c.Echo interface to access the remote service on http://server.far.far.away:8080/echo base URI.

       <bean id="echoClient" class="org.jboss.resteasy.client.spring.RestClientProxyFactoryBean"
       p:serviceInterface="a.b.c.Echo" p:baseUri="http://server.far.far.away:8080/echo" />

  Author:
    Attila Kiraly

- - ### Constructor Summary

    Constructors
    Constructor and Description
    `RestClientProxyFactoryBean()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()`
    `URI` | `getBaseUri()`
    `ClientExecutor` | `getClientExecutor()`
    `org.apache.http.client.HttpClient` | `getHttpClient()`
    `T` | `getObject()`
    `Class<T>` | `getObjectType()`
    `ResteasyProviderFactory` | `getResteasyProviderFactory()`
    `Class<T>` | `getServiceInterface()`
    `boolean` | `isSingleton()`
    `void` | `setBaseUri(URI baseUri)` This is a mandatory property that needs to be set.
    `void` | `setClientExecutor(ClientExecutor clientExecutor)` Optional property for advanced usage.
    `void` | `setHttpClient(org.apache.http.client.HttpClient httpClient)` Optional property.
    `void` | `setResteasyProviderFactory(ResteasyProviderFactory resteasyProviderFactory)` Optional property for advanced usage.
    `void` | `setServiceInterface(Class<T> serviceInterface)` This is a mandatory property that needs to be set.

    - ### Methods inherited from class java.lang.Object

      `clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait`

- - ### Constructor Detail

    - #### RestClientProxyFactoryBean

          public RestClientProxyFactoryBean()

  - ### Method Detail

    - #### getObject

          public T getObject()
                      throws Exception

      Specified by:
        `getObject` in interface `org.springframework.beans.factory.FactoryBean<T>`
      Throws:
        `Exception`

    - #### getObjectType

          public Class<T> getObjectType()

      Specified by:
        `getObjectType` in interface `org.springframework.beans.factory.FactoryBean<T>`

    - #### isSingleton

          public boolean isSingleton()

      Specified by:
        `isSingleton` in interface `org.springframework.beans.factory.FactoryBean<T>`

    - #### afterPropertiesSet

          public void afterPropertiesSet()
                                  throws Exception

      Specified by:
        `afterPropertiesSet` in interface `org.springframework.beans.factory.InitializingBean`
      Throws:
        `Exception`

    - #### getServiceInterface

          public Class<T> getServiceInterface()

    - #### setServiceInterface

          public void setServiceInterface(Class<T> serviceInterface)

      This is a mandatory property that needs to be set.
      Parameters:
        `serviceInterface` - the interface for which a proxy is needed to be generated.

    - #### getBaseUri

          public URI getBaseUri()

    - #### setBaseUri

          public void setBaseUri(URI baseUri)

      This is a mandatory property that needs to be set.
      Parameters:
        `baseUri` - the remote service base address.

    - #### getHttpClient

          public org.apache.http.client.HttpClient getHttpClient()

    - #### setHttpClient

          public void setHttpClient(org.apache.http.client.HttpClient httpClient)

      Optional property. If this property is set and `clientExecutor` is null, this will be used by proxy generation. This could be useful for example when you want to use a `org.apache.http.impl.conn.tsccm.ThreadSafeClientConnManager` instead of a `SingleClientConnManager` which is the default in `HttpClient`.
      Parameters:
        `httpClient` - the instance to be used by proxy generation
      See Also:
        `ProxyFactory#create(Class, URI, HttpClient, ResteasyProviderFactory)`

    - #### getClientExecutor

          public ClientExecutor getClientExecutor()

    - #### setClientExecutor

          public void setClientExecutor(ClientExecutor clientExecutor)

      Optional property for advanced usage. If this property is set it will be used by proxy generation. If this property is set the `httpClient` property is ignored.
      Parameters:
        `clientExecutor` - the instance to be used by proxy generation
      See Also:
        `ProxyFactory.create(Class, URI, ClientExecutor, ResteasyProviderFactory)`

    - #### getResteasyProviderFactory

          public ResteasyProviderFactory getResteasyProviderFactory()

    - #### setResteasyProviderFactory

          public void setResteasyProviderFactory(ResteasyProviderFactory resteasyProviderFactory)

      Optional property for advanced usage. For the most cases this property is not needed to be set.
      Parameters:
        `resteasyProviderFactory` - the instance to be used by proxy generation.

Copyright © 2014. All Rights Reserved.