View Javadoc
1   package org.apache.commons.jcs3.auxiliary.lateral;
2   
3   /*
4    * Licensed to the Apache Software Foundation (ASF) under one
5    * or more contributor license agreements.  See the NOTICE file
6    * distributed with this work for additional information
7    * regarding copyright ownership.  The ASF licenses this file
8    * to you under the Apache License, Version 2.0 (the
9    * "License"); you may not use this file except in compliance
10   * with the License.  You may obtain a copy of the License at
11   *
12   *   http://www.apache.org/licenses/LICENSE-2.0
13   *
14   * Unless required by applicable law or agreed to in writing,
15   * software distributed under the License is distributed on an
16   * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
17   * KIND, either express or implied.  See the License for the
18   * specific language governing permissions and limitations
19   * under the License.
20   */
21  
22  import org.apache.commons.jcs3.auxiliary.AbstractAuxiliaryCacheAttributes;
23  import org.apache.commons.jcs3.auxiliary.lateral.behavior.ILateralCacheAttributes;
24  
25  /**
26   * This class stores attributes for all of the available lateral cache auxiliaries.
27   */
28  public class LateralCacheAttributes
29      extends AbstractAuxiliaryCacheAttributes
30      implements ILateralCacheAttributes
31  {
32      /** Don't change */
33      private static final long serialVersionUID = -3408449508837393660L;
34  
35      /** Default receive setting */
36      private static final boolean DEFAULT_RECEIVE = true;
37  
38      /** indicates the lateral type, this needs to change */
39      private Type transmissionType = Type.UDP;
40  
41      /** The http servers */
42      private String httpServers;
43  
44      /** used to identify the service that this manager will be operating on */
45      private String httpServer = "";
46  
47      /** this needs to change */
48      private String udpMulticastAddr = "228.5.6.7";
49  
50      /** this needs to change */
51      private int udpMulticastPort = 6789;
52  
53      /** this needs to change */
54      private int httpListenerPort = 8080;
55  
56      /** disables gets from laterals */
57      private boolean putOnlyMode = true;
58  
59      /**
60       * do we receive and broadcast or only broadcast this is useful when you don't want to get any
61       * notifications
62       */
63      private boolean receive = DEFAULT_RECEIVE;
64  
65      /** If the primary fails, we will queue items before reconnect.  This limits the number of items that can be queued. */
66      private int zombieQueueMaxSize = DEFAULT_ZOMBIE_QUEUE_MAX_SIZE;
67  
68      /**
69       * Sets the httpServer attribute of the LateralCacheAttributes object
70       * <P>
71       * @param val The new httpServer value
72       */
73      @Override
74      public void setHttpServer( final String val )
75      {
76          httpServer = val;
77      }
78  
79      /**
80       * Gets the httpServer attribute of the LateralCacheAttributes object
81       * @return The httpServer value
82       */
83      @Override
84      public String getHttpServer()
85      {
86          return httpServer;
87      }
88  
89      /**
90       * Sets the httpServers attribute of the LateralCacheAttributes object
91       * @param val The new httpServers value
92       */
93      @Override
94      public void setHttpServers( final String val )
95      {
96          httpServers = val;
97      }
98  
99      /**
100      * Gets the httpSrvers attribute of the LateralCacheAttributes object
101      * @return The httpServers value
102      */
103     @Override
104     public String getHttpServers()
105     {
106         return httpServers;
107     }
108 
109     /**
110      * Sets the httpListenerPort attribute of the ILateralCacheAttributes object
111      * @param val The new tcpListenerPort value
112      */
113     @Override
114     public void setHttpListenerPort( final int val )
115     {
116         this.httpListenerPort = val;
117     }
118 
119     /**
120      * Gets the httpListenerPort attribute of the ILateralCacheAttributes object
121      * @return The httpListenerPort value
122      */
123     @Override
124     public int getHttpListenerPort()
125     {
126         return this.httpListenerPort;
127     }
128 
129     /**
130      * Sets the udpMulticastAddr attribute of the LateralCacheAttributes object
131      * @param val The new udpMulticastAddr value
132      */
133     @Override
134     public void setUdpMulticastAddr( final String val )
135     {
136         udpMulticastAddr = val;
137     }
138 
139     /**
140      * Gets the udpMulticastAddr attribute of the LateralCacheAttributes object
141      * @return The udpMulticastAddr value
142      */
143     @Override
144     public String getUdpMulticastAddr()
145     {
146         return udpMulticastAddr;
147     }
148 
149     /**
150      * Sets the udpMulticastPort attribute of the LateralCacheAttributes object
151      * @param val The new udpMulticastPort value
152      */
153     @Override
154     public void setUdpMulticastPort( final int val )
155     {
156         udpMulticastPort = val;
157     }
158 
159     /**
160      * Gets the udpMulticastPort attribute of the LateralCacheAttributes object
161      * @return The udpMulticastPort value
162      */
163     @Override
164     public int getUdpMulticastPort()
165     {
166         return udpMulticastPort;
167     }
168 
169     /**
170      * Sets the transmissionType attribute of the LateralCacheAttributes object
171      * @param val The new transmissionType value
172      */
173     @Override
174     public void setTransmissionType( final Type val )
175     {
176         this.transmissionType = val;
177     }
178 
179     /**
180      * Gets the transmissionType attribute of the LateralCacheAttributes object
181      * @return The transmissionType value
182      */
183     @Override
184     public Type getTransmissionType()
185     {
186         return this.transmissionType;
187     }
188 
189     /**
190      * Sets the transmissionTypeName attribute of the LateralCacheAttributes object
191      * @param val The new transmissionTypeName value
192      * @deprecated
193      */
194     @Override
195     @Deprecated
196     public void setTransmissionTypeName( final String val )
197     {
198         this.transmissionType = Type.valueOf(val);
199     }
200 
201     /**
202      * Gets the transmissionTypeName attribute of the LateralCacheAttributes object
203      * @return The transmissionTypeName value
204      * @deprecated
205      */
206     @Override
207     @Deprecated
208     public String getTransmissionTypeName()
209     {
210         return this.transmissionType.toString();
211     }
212 
213     /**
214      * Sets the outgoingOnlyMode attribute of the ILateralCacheAttributes. When this is true the
215      * lateral cache will only issue put and remove order and will not try to retrieve elements from
216      * other lateral caches.
217      * @param val The new transmissionTypeName value
218      */
219     @Override
220     public void setPutOnlyMode( final boolean val )
221     {
222         this.putOnlyMode = val;
223     }
224 
225     /**
226      * @return The outgoingOnlyMode value. Stops gets from going remote.
227      */
228     @Override
229     public boolean getPutOnlyMode()
230     {
231         return putOnlyMode;
232     }
233 
234     /**
235      * @param receive The receive to set.
236      */
237     @Override
238     public void setReceive( final boolean receive )
239     {
240         this.receive = receive;
241     }
242 
243     /**
244      * @return Returns the receive.
245      */
246     @Override
247     public boolean isReceive()
248     {
249         return receive;
250     }
251 
252     /**
253      * The number of elements the zombie queue will hold. This queue is used to store events if we
254      * loose our connection with the server.
255      * <p>
256      * @param zombieQueueMaxSize The zombieQueueMaxSize to set.
257      */
258     @Override
259     public void setZombieQueueMaxSize( final int zombieQueueMaxSize )
260     {
261         this.zombieQueueMaxSize = zombieQueueMaxSize;
262     }
263 
264     /**
265      * The number of elements the zombie queue will hold. This queue is used to store events if we
266      * loose our connection with the server.
267      * <p>
268      * @return Returns the zombieQueueMaxSize.
269      */
270     @Override
271     public int getZombieQueueMaxSize()
272     {
273         return zombieQueueMaxSize;
274     }
275 
276     /**
277      * @return debug string.
278      */
279     @Override
280     public String toString()
281     {
282         final StringBuilder buf = new StringBuilder();
283         //buf.append( "cacheName=" + cacheName + "\n" );
284         //buf.append( "putOnlyMode=" + putOnlyMode + "\n" );
285         //buf.append( "transmissionTypeName=" + transmissionTypeName + "\n" );
286         //buf.append( "transmissionType=" + transmissionType + "\n" );
287         //buf.append( "tcpServer=" + tcpServer + "\n" );
288         buf.append( transmissionType.toString() + httpServer + udpMulticastAddr + String.valueOf( udpMulticastPort ) );
289         return buf.toString();
290     }
291 }