org.apache.lucene.replicator.http

## Class ReplicationService

- java.lang.Object
- - org.apache.lucene.replicator.http.ReplicationService

    public class ReplicationService
    extends Object

A server-side service for handling replication requests. The service assumes requests are sent in the format `/<context>/<shard>/<action>` where

- `context` is the servlet context, e.g. `REPLICATION_CONTEXT`
- `shard` is the ID of the shard, e.g. "s1"
- `action` is one of `ReplicationService.ReplicationAction` values

For example, to check whether there are revision updates for shard "s1" you should send the request: `http://host:port/replicate/s1/update`.

This service is written like a servlet, and `perform(HttpServletRequest, HttpServletResponse)` takes servlet request and response accordingly, so it is quite easy to embed in your application's servlet.

WARNING: This API is experimental and might change in incompatible ways in the next release.

### Nested Class Summary

Nested Classes
`static class` `ReplicationService.ReplicationAction` Actions supported by the `ReplicationService`.

### Field Summary

Fields
`static String` `REPLICATE_FILENAME_PARAM` Request parameter name for providing the file's name.
`static String` `REPLICATE_SESSION_ID_PARAM` Request parameter name for providing a session ID.
`static String` `REPLICATE_SOURCE_PARAM` Request parameter name for providing the file's source.
`static String` `REPLICATE_VERSION_PARAM` Request parameter name for providing the revision version.
`static String` `REPLICATION_CONTEXT` The context path for the servlet.

### Constructor Summary

Constructors
Constructor and Description
`ReplicationService(Map<String,Replicator> replicators)`

### Method Summary

All Methods Instance Methods Concrete Methods
`void` `perform(javax.servlet.http.HttpServletRequest req, javax.servlet.http.HttpServletResponse resp)` Executes the replication task.

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

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

### Field Detail

#### REPLICATION_CONTEXT

    public static final String REPLICATION_CONTEXT

The context path for the servlet.

See Also:
  Constant Field Values

#### REPLICATE_VERSION_PARAM

    public static final String REPLICATE_VERSION_PARAM

Request parameter name for providing the revision version.

See Also:
  Constant Field Values

#### REPLICATE_SESSION_ID_PARAM

    public static final String REPLICATE_SESSION_ID_PARAM

Request parameter name for providing a session ID.

See Also:
  Constant Field Values

#### REPLICATE_SOURCE_PARAM

    public static final String REPLICATE_SOURCE_PARAM

Request parameter name for providing the file's source.

See Also:
  Constant Field Values

#### REPLICATE_FILENAME_PARAM

    public static final String REPLICATE_FILENAME_PARAM

Request parameter name for providing the file's name.

See Also:
  Constant Field Values

### Constructor Detail

#### ReplicationService

    public ReplicationService(Map<String,Replicator> replicators)

### Method Detail

#### perform

    public void perform(javax.servlet.http.HttpServletRequest req,
                        javax.servlet.http.HttpServletResponse resp)
                 throws javax.servlet.ServletException,
                        IOException

Executes the replication task.

Throws:
  `javax.servlet.ServletException`
  `IOException`