001package org.apache.commons.jcs.auxiliary.remote.server;
002
003/*
004 * Licensed to the Apache Software Foundation (ASF) under one
005 * or more contributor license agreements.  See the NOTICE file
006 * distributed with this work for additional information
007 * regarding copyright ownership.  The ASF licenses this file
008 * to you under the Apache License, Version 2.0 (the
009 * "License"); you may not use this file except in compliance
010 * with the License.  You may obtain a copy of the License at
011 *
012 *   http://www.apache.org/licenses/LICENSE-2.0
013 *
014 * Unless required by applicable law or agreed to in writing,
015 * software distributed under the License is distributed on an
016 * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
017 * KIND, either express or implied.  See the License for the
018 * specific language governing permissions and limitations
019 * under the License.
020 */
021
022import org.apache.commons.jcs.auxiliary.remote.CommonRemoteCacheAttributes;
023import org.apache.commons.jcs.auxiliary.remote.server.behavior.IRemoteCacheServerAttributes;
024
025/**
026 * These attributes are used to configure the remote cache server.
027 */
028public class RemoteCacheServerAttributes
029    extends CommonRemoteCacheAttributes
030    implements IRemoteCacheServerAttributes
031{
032    /** Don't change */
033    private static final long serialVersionUID = -2741662082869155365L;
034
035    /** port the server will listen to */
036    private int servicePort = 0;
037
038    /** Can a cluster remote get from other remotes */
039    private boolean allowClusterGet = true;
040
041    /** The config file, the initialization is multistage. Remote cache then composite cache. */
042    private String configFileName = "";
043
044    /** Should we start the registry */
045    private boolean DEFAULT_START_REGISTRY = true;
046
047    /** Should we start the registry */
048    private boolean startRegistry = DEFAULT_START_REGISTRY;
049
050    /** Should we try to keep the registry alive */
051    private boolean DEFAULT_USE_REGISTRY_KEEP_ALIVE = true;
052
053    /** Should we try to keep the registry alive */
054    private boolean useRegistryKeepAlive = DEFAULT_USE_REGISTRY_KEEP_ALIVE;
055
056    /** The delay between runs */
057    private long registryKeepAliveDelayMillis = 15 * 1000;
058
059    /** Default constructor for the RemoteCacheAttributes object */
060    public RemoteCacheServerAttributes()
061    {
062        super();
063    }
064
065    /**
066     * Gets the localPort attribute of the RemoteCacheAttributes object
067     * <p>
068     * @return The localPort value
069     */
070    @Override
071    public int getServicePort()
072    {
073        return this.servicePort;
074    }
075
076    /**
077     * Sets the localPort attribute of the RemoteCacheAttributes object
078     * <p>
079     * @param p The new localPort value
080     */
081    @Override
082    public void setServicePort( int p )
083    {
084        this.servicePort = p;
085    }
086
087    /**
088     * Should gets from non-cluster clients be allowed to get from other remote auxiliaries.
089     * <p>
090     * @return The localClusterConsistency value
091     */
092    @Override
093    public boolean isAllowClusterGet()
094    {
095        return allowClusterGet;
096    }
097
098    /**
099     * Should we try to get from other cluster servers if we don't find the items locally.
100     * <p>
101     * @param r The new localClusterConsistency value
102     */
103    @Override
104    public void setAllowClusterGet( boolean r )
105    {
106        allowClusterGet = r;
107    }
108
109    /**
110     * Gets the ConfigFileName attribute of the IRemoteCacheAttributes object
111     * <p>
112     * @return The clusterServers value
113     */
114    @Override
115    public String getConfigFileName()
116    {
117        return configFileName;
118    }
119
120    /**
121     * Sets the ConfigFileName attribute of the IRemoteCacheAttributes object
122     * <p>
123     * @param s The new clusterServers value
124     */
125    @Override
126    public void setConfigFileName( String s )
127    {
128        configFileName = s;
129    }
130
131    /**
132     * Should we try to keep the registry alive
133     * <p>
134     * @param useRegistryKeepAlive the useRegistryKeepAlive to set
135     */
136    @Override
137    public void setUseRegistryKeepAlive( boolean useRegistryKeepAlive )
138    {
139        this.useRegistryKeepAlive = useRegistryKeepAlive;
140    }
141
142    /**
143     * Should we start the registry
144     * <p>
145     * @param startRegistry the startRegistry to set
146     * @deprecated Always true, to be removed
147     */
148    @Override
149    public void setStartRegistry( boolean startRegistry )
150    {
151        this.startRegistry = startRegistry;
152    }
153
154    /**
155     * Should we start the registry
156     * <p>
157     * @return the startRegistry
158     * @deprecated Always true, to be removed
159     */
160    @Override
161    public boolean isStartRegistry()
162    {
163        return startRegistry;
164    }
165
166    /**
167     * Should we try to keep the registry alive
168     * <p>
169     * @return the useRegistryKeepAlive
170     */
171    @Override
172    public boolean isUseRegistryKeepAlive()
173    {
174        return useRegistryKeepAlive;
175    }
176
177    /**
178     * @param registryKeepAliveDelayMillis the registryKeepAliveDelayMillis to set
179     */
180    @Override
181    public void setRegistryKeepAliveDelayMillis( long registryKeepAliveDelayMillis )
182    {
183        this.registryKeepAliveDelayMillis = registryKeepAliveDelayMillis;
184    }
185
186    /**
187     * @return the registryKeepAliveDelayMillis
188     */
189    @Override
190    public long getRegistryKeepAliveDelayMillis()
191    {
192        return registryKeepAliveDelayMillis;
193    }
194
195    /**
196     * @return String details
197     */
198    @Override
199    public String toString()
200    {
201        StringBuilder buf = new StringBuilder(super.toString());
202        buf.append( "\n servicePort = [" + this.getServicePort() + "]" );
203        buf.append( "\n allowClusterGet = [" + this.isAllowClusterGet() + "]" );
204        buf.append( "\n configFileName = [" + this.getConfigFileName() + "]" );
205        buf.append( "\n rmiSocketFactoryTimeoutMillis = [" + this.getRmiSocketFactoryTimeoutMillis() + "]" );
206        buf.append( "\n useRegistryKeepAlive = [" + this.isUseRegistryKeepAlive() + "]" );
207        buf.append( "\n registryKeepAliveDelayMillis = [" + this.getRegistryKeepAliveDelayMillis() + "]" );
208        buf.append( "\n eventQueueType = [" + this.getEventQueueType() + "]" );
209        buf.append( "\n eventQueuePoolName = [" + this.getEventQueuePoolName() + "]" );
210        return buf.toString();
211    }
212}