001package org.apache.commons.jcs3.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.jcs3.auxiliary.remote.CommonRemoteCacheAttributes;
023import org.apache.commons.jcs3.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;
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 final static 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 final static 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    }
063
064    /**
065     * Gets the localPort attribute of the RemoteCacheAttributes object
066     * <p>
067     * @return The localPort value
068     */
069    @Override
070    public int getServicePort()
071    {
072        return this.servicePort;
073    }
074
075    /**
076     * Sets the localPort attribute of the RemoteCacheAttributes object
077     * <p>
078     * @param p The new localPort value
079     */
080    @Override
081    public void setServicePort( final int p )
082    {
083        this.servicePort = p;
084    }
085
086    /**
087     * Should gets from non-cluster clients be allowed to get from other remote auxiliaries.
088     * <p>
089     * @return The localClusterConsistency value
090     */
091    @Override
092    public boolean isAllowClusterGet()
093    {
094        return allowClusterGet;
095    }
096
097    /**
098     * Should we try to get from other cluster servers if we don't find the items locally.
099     * <p>
100     * @param r The new localClusterConsistency value
101     */
102    @Override
103    public void setAllowClusterGet( final boolean r )
104    {
105        allowClusterGet = r;
106    }
107
108    /**
109     * Gets the ConfigFileName attribute of the IRemoteCacheAttributes object
110     * <p>
111     * @return The clusterServers value
112     */
113    @Override
114    public String getConfigFileName()
115    {
116        return configFileName;
117    }
118
119    /**
120     * Sets the ConfigFileName attribute of the IRemoteCacheAttributes object
121     * <p>
122     * @param s The new clusterServers value
123     */
124    @Override
125    public void setConfigFileName( final String s )
126    {
127        configFileName = s;
128    }
129
130    /**
131     * Should we try to keep the registry alive
132     * <p>
133     * @param useRegistryKeepAlive the useRegistryKeepAlive to set
134     */
135    @Override
136    public void setUseRegistryKeepAlive( final boolean useRegistryKeepAlive )
137    {
138        this.useRegistryKeepAlive = useRegistryKeepAlive;
139    }
140
141    /**
142     * Should we start the registry
143     * <p>
144     * @param startRegistry the startRegistry to set
145     * @deprecated Always true, to be removed
146     */
147    @Deprecated
148    @Override
149    public void setStartRegistry( final 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    @Deprecated
161    @Override
162    public boolean isStartRegistry()
163    {
164        return startRegistry;
165    }
166
167    /**
168     * Should we try to keep the registry alive
169     * <p>
170     * @return the useRegistryKeepAlive
171     */
172    @Override
173    public boolean isUseRegistryKeepAlive()
174    {
175        return useRegistryKeepAlive;
176    }
177
178    /**
179     * @param registryKeepAliveDelayMillis the registryKeepAliveDelayMillis to set
180     */
181    @Override
182    public void setRegistryKeepAliveDelayMillis( final long registryKeepAliveDelayMillis )
183    {
184        this.registryKeepAliveDelayMillis = registryKeepAliveDelayMillis;
185    }
186
187    /**
188     * @return the registryKeepAliveDelayMillis
189     */
190    @Override
191    public long getRegistryKeepAliveDelayMillis()
192    {
193        return registryKeepAliveDelayMillis;
194    }
195
196    /**
197     * @return String details
198     */
199    @Override
200    public String toString()
201    {
202        final StringBuilder buf = new StringBuilder(super.toString());
203        buf.append( "\n servicePort = [" + this.getServicePort() + "]" );
204        buf.append( "\n allowClusterGet = [" + this.isAllowClusterGet() + "]" );
205        buf.append( "\n configFileName = [" + this.getConfigFileName() + "]" );
206        buf.append( "\n rmiSocketFactoryTimeoutMillis = [" + this.getRmiSocketFactoryTimeoutMillis() + "]" );
207        buf.append( "\n useRegistryKeepAlive = [" + this.isUseRegistryKeepAlive() + "]" );
208        buf.append( "\n registryKeepAliveDelayMillis = [" + this.getRegistryKeepAliveDelayMillis() + "]" );
209        buf.append( "\n eventQueueType = [" + this.getEventQueueType() + "]" );
210        buf.append( "\n eventQueuePoolName = [" + this.getEventQueuePoolName() + "]" );
211        return buf.toString();
212    }
213}