Author: berndf
Date: Fri Sep 16 07:16:31 2011
New Revision: 1171408
URL: http://svn.apache.org/viewvc?rev=1171408&view=rev
Log:
VYSPER-293: remove a contact from in-memory roster
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/MutableRoster.java
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/persistence/AbstractRosterManager.java
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/MutableRoster.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/MutableRoster.java?rev=1171408&r1=1171407&r2=1171408&view=diff
==============================================================================
---
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/MutableRoster.java
(original)
+++
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/MutableRoster.java
Fri Sep 16 07:16:31 2011
@@ -26,7 +26,7 @@ import java.util.Map;
import org.apache.vysper.xmpp.addressing.Entity;
/**
- * a mutable roster implementation
+ * a mutable roster implementation, only holding items in memory
*
* @author The Apache MINA Project ([email protected])
*/
@@ -46,4 +46,8 @@ public class MutableRoster implements Ro
throw new RuntimeException("roster item and item's jid must not be
null.");
items.put(rosterItem.getJid().getBareJID(), rosterItem);
}
+
+ public boolean removeItem(Entity contact) {
+ return items.remove(contact) != null;
+ }
}
Modified:
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/persistence/AbstractRosterManager.java
URL:
http://svn.apache.org/viewvc/mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/persistence/AbstractRosterManager.java?rev=1171408&r1=1171407&r2=1171408&view=diff
==============================================================================
---
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/persistence/AbstractRosterManager.java
(original)
+++
mina/vysper/trunk/server/core/src/main/java/org/apache/vysper/xmpp/modules/roster/persistence/AbstractRosterManager.java
Fri Sep 16 07:16:31 2011
@@ -44,7 +44,9 @@ public abstract class AbstractRosterMana
public void addContact(Entity jid, RosterItem rosterItem) throws
RosterException {
if (jid == null)
throw new RosterException("jid not provided");
- MutableRoster mutableRoster = (MutableRoster) retrieve(jid);
+ final Roster roster = retrieve(jid);
+ if (roster instanceof MutableRoster) throw new RosterException("roster
is not mutable");
+ MutableRoster mutableRoster = (MutableRoster)roster;
if (mutableRoster == null) {
mutableRoster = (MutableRoster) addNewRosterInternal(jid);
}
@@ -66,6 +68,9 @@ public abstract class AbstractRosterMana
Roster roster = retrieve(jidUser);
if (roster == null)
throw new RosterException("roster not available for jid = " +
jidUser.getFullQualifiedName());
+ if (!(roster instanceof MutableRoster)) throw new
RosterException("roster is not mutable");
+ MutableRoster mutableRoster = (MutableRoster)roster;
+ final boolean success = mutableRoster.removeItem(jidContact);
}
public String getServiceName() {