// -------------------------------------------------------- Package Methods
-
-
+ protected StandardContext getContext() {
+ return this.context;
+ }
+
+ protected Map getReadonlyAttributes() {
+ return this.readOnlyAttributes;
+ }
/**
* Clear all application-created attributes.
*/
- void clearAttributes() {
+ protected void clearAttributes() {
// Create list of attributes to be removed
ArrayList list = new ArrayList();
import org.apache.catalina.Globals;
import javax.servlet.ServletContext;
import java.util.AbstractMap;
+import org.apache.catalina.tribes.tipis.AbstractReplicatedMap;
+import java.util.ArrayList;
+import java.util.Iterator;
+import javax.servlet.ServletContextAttributeListener;
+import javax.servlet.ServletContextAttributeEvent;
/**
* @author Filip Hanik
}
public ServletContext getServletContext() {
+ if (context == null) {
+ context = new ReplApplContext(getBasePath(), this);
+ if (getAltDDName() != null)
+ context.setAttribute(Globals.ALT_DD_ATTR,getAltDDName());
+ }
+
return ((ReplApplContext)context).getFacade();
}
public void setAttributeMap(AbstractMap map) {
this.attributes = map;
}
-
+
+ public void removeAttribute(String name) {
+ //do nothing
+ super.removeAttribute(name);
+ }
+
+ public void setAttribute(String name, Object value) {
+ //do nothing
+ super.setAttribute(name,value);
+ }
+
}
+
}
\ No newline at end of file
* @return Object
*/
public Object remove(Object key) {
+ return remove(key,true);
+ }
+ public Object remove(Object key, boolean notify) {
MapEntry entry = (MapEntry)super.remove(key);
try {
- if (getMapMembers().length > 0 ) {
+ if (getMapMembers().length > 0 && notify) {
MapMessage msg = new MapMessage(getMapContextName(), MapMessage.MSG_REMOVE, false, (Serializable) key, null, null, null);
getChannel().send(getMapMembers(), msg, getChannelSendOptions());
}
put(entry.getKey(),entry.getValue());
}
}
-
+
public void clear() {
- //only delete active keys
- Iterator keys = keySet().iterator();
- while ( keys.hasNext() ) remove(keys.next());
+ clear(true);
+ }
+
+ public void clear(boolean notify) {
+ if ( notify ) {
+ //only delete active keys
+ Iterator keys = keySet().iterator();
+ while (keys.hasNext())
+ remove(keys.next());
+ } else {
+ super.clear();
+ }
}
public boolean containsValue(Object value) {
Iterator i = super.entrySet().iterator();
while ( i.hasNext() ) {
Map.Entry e = (Map.Entry)i.next();
- MapEntry entry = (MapEntry)e.getValue();
- if ( entry.isPrimary() ) set.add(entry);
+ Object key = e.getKey();
+ MapEntry entry = (MapEntry)super.get(key);
+ if ( entry.isPrimary() ) set.add(entry.getValue());
}
return Collections.unmodifiableSet(set);
}
Iterator i = super.entrySet().iterator();
while ( i.hasNext() ) {
Map.Entry e = (Map.Entry)i.next();
- MapEntry entry = (MapEntry)e.getValue();
- if ( entry.isPrimary() ) set.add(entry.getKey());
+ Object key = e.getKey();
+ MapEntry entry = (MapEntry)super.get(key);
+ if ( entry.isPrimary() ) set.add(key);
}
return Collections.unmodifiableSet(set);
+
}
public Object setValue(Object value) {
Object old = this.value;
- this.value = (Serializable) value;
+ this.value = value;
return old;
}
public Object setKey(Object key) {
Object old = this.key;
- this.key = (Serializable)key;
+ this.key = key;
return old;
}