package org.apache.commons.jcs.auxiliary.remote; /* * Licensed to the Apache Software Foundation (ASF) under one * or more contributor license agreements. See the NOTICE file * distributed with this work for additional information * regarding copyright ownership. The ASF licenses this file * to you under the Apache License, Version 2.0 (the * "License"); you may not use this file except in compliance * with the License. You may obtain a copy of the License at * * http://www.apache.org/licenses/LICENSE-2.0 * * Unless required by applicable law or agreed to in writing, * software distributed under the License is distributed on an * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY * KIND, either express or implied. See the License for the * specific language governing permissions and limitations * under the License. */ import org.apache.commons.jcs.auxiliary.AbstractAuxiliaryCacheAttributes; import org.apache.commons.jcs.auxiliary.remote.behavior.ICommonRemoteCacheAttributes; import org.apache.commons.jcs.auxiliary.remote.behavior.IRemoteCacheConstants; import org.apache.commons.jcs.auxiliary.remote.server.behavior.RemoteType; /** * Attributes common to remote cache client and server. */ public class CommonRemoteCacheAttributes extends AbstractAuxiliaryCacheAttributes implements ICommonRemoteCacheAttributes { /** Don't change */ private static final long serialVersionUID = -1555143736942374000L; /** The service name */ private String remoteServiceName = IRemoteCacheConstants.REMOTE_CACHE_SERVICE_VAL; /** server host and port */ private RemoteLocation location; /** Cluster chain */ private String clusterServers = ""; /** THe type of remote cache, local or cluster */ private RemoteType remoteType = RemoteType.LOCAL; /** Should we issue a local remove if we get a put from a remote server */ private boolean removeUponRemotePut = true; /** Can we receive from or put to the remote. this probably shouldn't be used. Use receive. */ private boolean getOnly = false; /** Should we put and get from the clusters. */ private boolean localClusterConsistency = false; /** read and connect timeout */ private int rmiSocketFactoryTimeoutMillis = DEFAULT_RMI_SOCKET_FACTORY_TIMEOUT_MILLIS; /** Default constructor for the RemoteCacheAttributes object */ public CommonRemoteCacheAttributes() { super(); } /** * Gets the remoteTypeName attribute of the RemoteCacheAttributes object. * <p> * @return The remoteTypeName value */ @Override public String getRemoteTypeName() { return remoteType != null ? remoteType.toString() : RemoteType.LOCAL.toString(); } /** * Sets the remoteTypeName attribute of the RemoteCacheAttributes object. * <p> * @param s The new remoteTypeName value */ @Override public void setRemoteTypeName( String s ) { RemoteType rt = RemoteType.valueOf(s); if (rt != null) { this.remoteType = rt; } } /** * Gets the remoteType attribute of the RemoteCacheAttributes object. * <p> * @return The remoteType value */ @Override public RemoteType getRemoteType() { return remoteType; } /** * Sets the remoteType attribute of the RemoteCacheAttributes object. * <p> * @param p The new remoteType value */ @Override public void setRemoteType( RemoteType p ) { this.remoteType = p; } /** * Gets the remoteServiceName attribute of the RemoteCacheAttributes object. * <p> * @return The remoteServiceName value */ @Override public String getRemoteServiceName() { return this.remoteServiceName; } /** * Sets the remoteServiceName attribute of the RemoteCacheAttributes object. * <p> * @param s The new remoteServiceName value */ @Override public void setRemoteServiceName( String s ) { this.remoteServiceName = s; } /** * Sets the location attribute of the RemoteCacheAttributes object. * <p> * @param location The new location value */ @Override public void setRemoteLocation( RemoteLocation location ) { this.location = location; } /** * Sets the location attribute of the RemoteCacheAttributes object. * <p> * @param host The new remoteHost value * @param port The new remotePort value */ @Override public void setRemoteLocation( String host, int port ) { this.location = new RemoteLocation(host, port); } /** * Gets the location attribute of the RemoteCacheAttributes object. * <p> * @return The remote location value */ @Override public RemoteLocation getRemoteLocation() { return this.location; } /** * Gets the clusterServers attribute of the RemoteCacheAttributes object. * <p> * @return The clusterServers value */ @Override public String getClusterServers() { return this.clusterServers; } /** * Sets the clusterServers attribute of the RemoteCacheAttributes object. * <p> * @param s The new clusterServers value */ @Override public void setClusterServers( String s ) { this.clusterServers = s; } /** * Gets the removeUponRemotePut attribute of the RemoteCacheAttributes object. * <p> * @return The removeUponRemotePut value */ @Override public boolean getRemoveUponRemotePut() { return this.removeUponRemotePut; } /** * Sets the removeUponRemotePut attribute of the RemoteCacheAttributes object. * <p> * @param r The new removeUponRemotePut value */ @Override public void setRemoveUponRemotePut( boolean r ) { this.removeUponRemotePut = r; } /** * Gets the getOnly attribute of the RemoteCacheAttributes object. * <p> * @return The getOnly value */ @Override public boolean getGetOnly() { return this.getOnly; } /** * Sets the getOnly attribute of the RemoteCacheAttributes object * @param r The new getOnly value */ @Override public void setGetOnly( boolean r ) { this.getOnly = r; } /** * Should cluster updates be propagated to the locals. * <p> * @return The localClusterConsistency value */ @Override public boolean isLocalClusterConsistency() { return localClusterConsistency; } /** * Should cluster updates be propagated to the locals. * <p> * @param r The new localClusterConsistency value */ @Override public void setLocalClusterConsistency( boolean r ) { this.localClusterConsistency = r; } /** * @param rmiSocketFactoryTimeoutMillis The rmiSocketFactoryTimeoutMillis to set. */ @Override public void setRmiSocketFactoryTimeoutMillis( int rmiSocketFactoryTimeoutMillis ) { this.rmiSocketFactoryTimeoutMillis = rmiSocketFactoryTimeoutMillis; } /** * @return Returns the rmiSocketFactoryTimeoutMillis. */ @Override public int getRmiSocketFactoryTimeoutMillis() { return rmiSocketFactoryTimeoutMillis; } /** * @return String, all the important values that can be configured */ @Override public String toString() { StringBuilder buf = new StringBuilder(); buf.append( "\n RemoteCacheAttributes " ); if (this.location != null) { buf.append( "\n remoteHost = [" + this.location.getHost() + "]" ); buf.append( "\n remotePort = [" + this.location.getPort() + "]" ); } buf.append( "\n cacheName = [" + getCacheName() + "]" ); buf.append( "\n remoteType = [" + remoteType + "]" ); buf.append( "\n removeUponRemotePut = [" + this.removeUponRemotePut + "]" ); buf.append( "\n getOnly = [" + getOnly + "]" ); return buf.toString(); } }