Example usage for org.apache.commons.jcs.auxiliary.remote.value RemoteCacheRequest getCacheName

List of usage examples for org.apache.commons.jcs.auxiliary.remote.value RemoteCacheRequest getCacheName

Introduction

In this page you can find the example usage for org.apache.commons.jcs.auxiliary.remote.value RemoteCacheRequest getCacheName.

Prototype

public String getCacheName() 

Source Link

Usage

From source file:org.apache.commons.jcs.auxiliary.remote.http.client.RemoteHttpCacheDispatcher.java

/**
 * Process single request// w  ww  .  j  a v a2 s.  c o m
 *
 * @param requestAsByteArray request body
 * @param remoteCacheRequest the cache request
 * @param url target url
 *
 * @return byte[] - the response
 *
 * @throws IOException
 * @throws HttpException
 */
protected <K, V> byte[] processRequest(byte[] requestAsByteArray, RemoteCacheRequest<K, V> remoteCacheRequest,
        String url) throws IOException, HttpException {
    RequestBuilder builder = RequestBuilder.post(url).setCharset(DEFAULT_ENCODING);

    if (getRemoteHttpCacheAttributes().isIncludeCacheNameAsParameter()
            && remoteCacheRequest.getCacheName() != null) {
        builder.addParameter(PARAMETER_CACHE_NAME, remoteCacheRequest.getCacheName());
    }
    if (getRemoteHttpCacheAttributes().isIncludeKeysAndPatternsAsParameter()) {
        String keyValue = "";
        switch (remoteCacheRequest.getRequestType()) {
        case GET:
        case REMOVE:
        case GET_KEYSET:
            keyValue = remoteCacheRequest.getKey().toString();
            break;
        case GET_MATCHING:
            keyValue = remoteCacheRequest.getPattern();
            break;
        case GET_MULTIPLE:
            keyValue = remoteCacheRequest.getKeySet().toString();
            break;
        case UPDATE:
            keyValue = remoteCacheRequest.getCacheElement().getKey().toString();
            break;
        default:
            break;
        }
        builder.addParameter(PARAMETER_KEY, keyValue);
    }
    if (getRemoteHttpCacheAttributes().isIncludeRequestTypeasAsParameter()) {
        builder.addParameter(PARAMETER_REQUEST_TYPE, remoteCacheRequest.getRequestType().toString());
    }

    builder.setEntity(new ByteArrayEntity(requestAsByteArray));
    HttpResponse httpResponse = doWebserviceCall(builder);
    byte[] response = EntityUtils.toByteArray(httpResponse.getEntity());
    return response;
}