org.springframework.remoting.caucho

## Class BurlapClientInterceptor

- java.lang.Object
- - org.springframework.remoting.support.RemotingSupport
  - - org.springframework.remoting.support.RemoteAccessor
    - - org.springframework.remoting.support.UrlBasedRemoteAccessor
      - - org.springframework.remoting.caucho.BurlapClientInterceptor

- All Implemented Interfaces:
    Advice, Interceptor, MethodInterceptor, Aware, BeanClassLoaderAware, InitializingBean
  Direct Known Subclasses:
    BurlapProxyFactoryBean

      public class BurlapClientInterceptor
      extends UrlBasedRemoteAccessor
      implements MethodInterceptor

  `MethodInterceptor` for accessing a Burlap service. Supports authentication via username and password. The service URL must be an HTTP URL exposing a Burlap service.

  Burlap is a slim, XML-based RPC protocol. For information on Burlap, see the Burlap website

  Note: There is no requirement for services accessed with this proxy factory to have been exported using Spring's `BurlapServiceExporter`, as there is no special handling involved. As a consequence, you can also access services that have been exported using Caucho's `BurlapServlet`.

  Since:
    29.09.2003
  Author:
    Juergen Hoeller
  See Also:
    `RemoteAccessor.setServiceInterface(java.lang.Class)`, `UrlBasedRemoteAccessor.setServiceUrl(java.lang.String)`, `setUsername(java.lang.String)`, `setPassword(java.lang.String)`, `BurlapServiceExporter`, `BurlapProxyFactoryBean`, `BurlapProxyFactory`, `BurlapServlet`

- - ### Field Summary

    - ### Fields inherited from class org.springframework.remoting.support.RemotingSupport

      `logger`

  - ### Constructor Summary

    Constructors
    Constructor and Description
    `BurlapClientInterceptor()`

  - ### Method Summary

    Methods
    Modifier and Type | Method and Description
    --- | ---
    `void` | `afterPropertiesSet()` Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).
    `protected RemoteAccessException` | `convertBurlapAccessException(Throwable ex)` Convert the given Burlap access exception to an appropriate Spring RemoteAccessException.
    `protected Object` | `createBurlapProxy(com.caucho.burlap.client.BurlapProxyFactory proxyFactory)` Create the Burlap proxy that is wrapped by this interceptor.
    `Object` | `invoke(MethodInvocation invocation)`
    `void` | `prepare()` Initialize the Burlap proxy for this interceptor.
    `void` | `setOverloadEnabled(boolean overloadEnabled)` Set whether overloaded methods should be enabled for remote invocations.
    `void` | `setPassword(String password)` Set the password that this factory should use to access the remote service.
    `void` | `setProxyFactory(com.caucho.burlap.client.BurlapProxyFactory proxyFactory)` Set the BurlapProxyFactory instance to use.
    `void` | `setUsername(String username)` Set the username that this factory should use to access the remote service.

    - ### Methods inherited from class org.springframework.remoting.support.UrlBasedRemoteAccessor

      `getServiceUrl, setServiceUrl`

    - ### Methods inherited from class org.springframework.remoting.support.RemoteAccessor

      `getServiceInterface, setServiceInterface`

    - ### Methods inherited from class org.springframework.remoting.support.RemotingSupport

      `getBeanClassLoader, overrideThreadContextClassLoader, resetThreadContextClassLoader, setBeanClassLoader`

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

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

- - ### Constructor Detail

    - #### BurlapClientInterceptor

          public BurlapClientInterceptor()

  - ### Method Detail

    - #### setProxyFactory

          public void setProxyFactory(com.caucho.burlap.client.BurlapProxyFactory proxyFactory)

      Set the BurlapProxyFactory instance to use. If not specified, a default BurlapProxyFactory will be created.

      Allows to use an externally configured factory instance, in particular a custom BurlapProxyFactory subclass.

    - #### setUsername

          public void setUsername(String username)

      Set the username that this factory should use to access the remote service. Default is none.

      The username will be sent by Burlap via HTTP Basic Authentication.

      See Also:
        `BurlapProxyFactory.setUser(java.lang.String)`

    - #### setPassword

          public void setPassword(String password)

      Set the password that this factory should use to access the remote service. Default is none.

      The password will be sent by Burlap via HTTP Basic Authentication.

      See Also:
        `BurlapProxyFactory.setPassword(java.lang.String)`

    - #### setOverloadEnabled

          public void setOverloadEnabled(boolean overloadEnabled)

      Set whether overloaded methods should be enabled for remote invocations. Default is "false".
      See Also:
        `BurlapProxyFactory.setOverloadEnabled(boolean)`

    - #### afterPropertiesSet

          public void afterPropertiesSet()

      Description copied from interface: `InitializingBean`
      Invoked by a BeanFactory after it has set all bean properties supplied (and satisfied BeanFactoryAware and ApplicationContextAware).

      This method allows the bean instance to perform initialization only possible when all bean properties have been set and to throw an exception in the event of misconfiguration.

      Specified by:
        `afterPropertiesSet` in interface `InitializingBean`
      Overrides:
        `afterPropertiesSet` in class `UrlBasedRemoteAccessor`

    - #### prepare

          public void prepare()
                       throws RemoteLookupFailureException

      Initialize the Burlap proxy for this interceptor.
      Throws:
        `RemoteLookupFailureException` - if the service URL is invalid

    - #### createBurlapProxy

          protected Object createBurlapProxy(com.caucho.burlap.client.BurlapProxyFactory proxyFactory)
                                      throws MalformedURLException

      Create the Burlap proxy that is wrapped by this interceptor.
      Parameters:
        `proxyFactory` - the proxy factory to use
      Returns:
        the Burlap proxy
      Throws:
        `MalformedURLException` - if thrown by the proxy factory
      See Also:
        `BurlapProxyFactory.create(java.lang.String)`

    - #### invoke

          public Object invoke(MethodInvocation invocation)
                        throws Throwable

      Specified by:
        `invoke` in interface `MethodInterceptor`
      Throws:
        `Throwable`

    - #### convertBurlapAccessException

          protected RemoteAccessException convertBurlapAccessException(Throwable ex)

      Convert the given Burlap access exception to an appropriate Spring RemoteAccessException.
      Parameters:
        `ex` - the exception to convert
      Returns:
        the RemoteAccessException to throw