001: /***************************************************************
002: * This file is part of the [fleXive](R) project.
003: *
004: * Copyright (c) 1999-2008
005: * UCS - unique computing solutions gmbh (http://www.ucs.at)
006: * All rights reserved
007: *
008: * The [fleXive](R) project is free software; you can redistribute
009: * it and/or modify it under the terms of the GNU General Public
010: * License as published by the Free Software Foundation;
011: * either version 2 of the License, or (at your option) any
012: * later version.
013: *
014: * The GNU General Public License can be found at
015: * http://www.gnu.org/copyleft/gpl.html.
016: * A copy is found in the textfile GPL.txt and important notices to the
017: * license from the author are found in LICENSE.txt distributed with
018: * these libraries.
019: *
020: * This library is distributed in the hope that it will be useful,
021: * but WITHOUT ANY WARRANTY; without even the implied warranty of
022: * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
023: * GNU General Public License for more details.
024: *
025: * For further information about UCS - unique computing solutions gmbh,
026: * please see the company website: http://www.ucs.at
027: *
028: * For further information about [fleXive](R), please see the
029: * project website: http://www.flexive.org
030: *
031: *
032: * This copyright notice MUST APPEAR in all copies of the file!
033: ***************************************************************/package com.flexive.shared.mbeans;
034:
035: import com.flexive.shared.cache.FxBackingCache;
036: import com.flexive.shared.cache.FxCacheException;
037:
038: import java.util.Set;
039:
040: /**
041: * Tree cache interface
042: *
043: * @author UCS
044: */
045: //@Management
046: public interface FxCacheMBean extends FxBackingCache {
047: /**
048: * Port of the streaming server
049: */
050: int STREAMING_PORT = 6241;
051:
052: // Life cycle methods
053: /**
054: * Creates and starts up the cache
055: *
056: * @throws Exception on errors
057: */
058: void create() throws Exception;
059:
060: /**
061: * Shutdown
062: *
063: * @throws Exception on errors
064: */
065: void destroy() throws Exception;
066:
067: /**
068: * Returns the time the system was started up.
069: *
070: * @return the time the system was started up.
071: */
072: long getSystemStartTime();
073:
074: /**
075: * Returns the time this node was started up.
076: *
077: * @return the time this node was started
078: */
079: long getNodeStartTime();
080:
081: /**
082: * Return the Id of this deployment of flexive (used to check existance of running mbean server on redeployment)
083: *
084: * @return deployment id
085: */
086: String getDeploymentId();
087:
088: /**
089: * A global getKeys
090: *
091: * @param path path
092: * @return key set
093: * @throws FxCacheException on errors
094: * @see com.flexive.shared.cache.FxBackingCache#getKeys(String)
095: */
096: public Set globalGetKeys(String path) throws FxCacheException;
097:
098: /**
099: * A global get
100: *
101: * @param path path
102: * @param key key
103: * @return value
104: * @throws FxCacheException on errors
105: * @see com.flexive.shared.cache.FxBackingCache#get(String,Object)
106: */
107: public Object globalGet(String path, Object key)
108: throws FxCacheException;
109:
110: /**
111: * A global exists
112: *
113: * @param path path
114: * @param key key
115: * @return exists
116: * @throws FxCacheException on errors
117: * @see com.flexive.shared.cache.FxBackingCache#exists(String,Object)
118: */
119: public boolean globalExists(String path, Object key)
120: throws FxCacheException;
121:
122: /**
123: * A global put
124: *
125: * @param path path
126: * @param key key
127: * @param value value
128: * @throws FxCacheException on errors
129: * @see com.flexive.shared.cache.FxBackingCache#put(String,Object,Object)
130: */
131: public void globalPut(String path, Object key, Object value)
132: throws FxCacheException;
133:
134: /**
135: * A global remove
136: *
137: * @param path path
138: * @throws FxCacheException on errors
139: * @see com.flexive.shared.cache.FxBackingCache#remove(String)
140: */
141: public void globalRemove(String path) throws FxCacheException;
142:
143: /**
144: * A global remove
145: *
146: * @param path path
147: * @param key key
148: * @throws FxCacheException on errors
149: * @see com.flexive.shared.cache.FxBackingCache#remove(String,Object)
150: */
151: public void globalRemove(String path, Object key)
152: throws FxCacheException;
153:
154: /**
155: * Force a reload for given division
156: *
157: * @param divisionId division
158: * @throws Exception on errors
159: */
160: void reloadEnvironment(Integer divisionId) throws Exception;
161:
162: /**
163: * Set the eviction strategy for a path (if the backing cache supports this)
164: *
165: * @param divisionId division
166: * @param path path
167: * @param maxContents max. number of entries to allow (0=unlimited)
168: * @param timeToIdle time a value has to be idle to be evicted (0=forever)
169: * @param timeToLive time to live (0=forever)
170: */
171: void setEvictionStrategy(Integer divisionId, String path,
172: Integer maxContents, Integer timeToIdle, Integer timeToLive)
173: throws FxCacheException;
174: }
|