Author: berndf
Date: Fri May 25 09:56:07 2012
New Revision: 1342551

URL: http://svn.apache.org/viewvc?rev=1342551&view=rev
Log:
MUC: do not report hidden rooms in disco

Modified:
    
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Conference.java
    
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Room.java
    
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractItemsDiscoTestCase.java
    
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/MUCItemsDiscoTestCase.java

Modified: 
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Conference.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Conference.java?rev=1342551&r1=1342550&r2=1342551&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Conference.java
 (original)
+++ 
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Conference.java
 Fri May 25 09:56:07 2012
@@ -122,6 +122,7 @@ public class Conference implements Serve
         Collection<Room> rooms = getAllRooms();
 
         for (Room room : rooms) {
+            if (room.isRoomType(RoomType.Hidden)) continue;
             items.add(new Item(room.getJID(), room.getName()));
         }
 

Modified: 
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Room.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Room.java?rev=1342551&r1=1342550&r2=1342551&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Room.java
 (original)
+++ 
mina/vysper/trunk/server/extensions/xep0045-muc/src/main/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/model/Room.java
 Fri May 25 09:56:07 2012
@@ -210,16 +210,18 @@ public class Room implements InfoRequest
     }
 
     public List<Item> getItemsFor(InfoRequest request) throws 
ServiceDiscoveryRequestException {
-        // List of users
-        List<Item> items = new ArrayList<Item>();
 
         // TODO is this the right way to determine if the room is private?
         if (isRoomType(RoomType.FullyAnonymous) || 
isRoomType(RoomType.SemiAnonymous)) {
             // private room, return empty list
-        } else {
-            for (Occupant occupant : getOccupants()) {
-                items.add(new Item(new EntityImpl(getJID(), 
occupant.getNick())));
-            }
+            return Collections.emptyList();
+        }
+
+        // List of users
+        List<Item> items = new ArrayList<Item>();
+        
+        for (Occupant occupant : getOccupants()) {
+            items.add(new Item(new EntityImpl(getJID(), occupant.getNick())));
         }
         return items;
     }

Modified: 
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractItemsDiscoTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractItemsDiscoTestCase.java?rev=1342551&r1=1342550&r2=1342551&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractItemsDiscoTestCase.java
 (original)
+++ 
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/AbstractItemsDiscoTestCase.java
 Fri May 25 09:56:07 2012
@@ -68,6 +68,7 @@ public abstract class AbstractItemsDisco
     private void assertItems(XMLElement queryElement) throws Exception {
         List<XMLElement> itemElements = 
queryElement.getInnerElementsNamed("item");
         List<Item> expectedItems = new ArrayList<Item>(getExpectedItems());
+        assertEquals(itemElements.size(), expectedItems.size());
         // order is random, check that all namespaces are present
         for (Item item : expectedItems) {
             String expectedJID = item.getJid().getFullQualifiedName();

Modified: 
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/MUCItemsDiscoTestCase.java
URL: 
http://svn.apache.org/viewvc/mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/MUCItemsDiscoTestCase.java?rev=1342551&r1=1342550&r2=1342551&view=diff
==============================================================================
--- 
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/MUCItemsDiscoTestCase.java
 (original)
+++ 
mina/vysper/trunk/server/extensions/xep0045-muc/src/test/java/org/apache/vysper/xmpp/modules/extension/xep0045_muc/MUCItemsDiscoTestCase.java
 Fri May 25 09:56:07 2012
@@ -27,6 +27,7 @@ import org.apache.vysper.xmpp.addressing
 import org.apache.vysper.xmpp.addressing.EntityImpl;
 import org.apache.vysper.xmpp.modules.Module;
 import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.Conference;
+import org.apache.vysper.xmpp.modules.extension.xep0045_muc.model.RoomType;
 import org.apache.vysper.xmpp.modules.servicediscovery.management.Item;
 
 /**
@@ -47,6 +48,7 @@ public class MUCItemsDiscoTestCase exten
         Conference conference = new Conference("Foo", new MUCFeatures());
         conference.createRoom(ROOM1_JID, "room1");
         conference.createRoom(ROME2_JID, "room2");
+        conference.createRoom(EntityImpl.parseUnchecked("hidden@" + 
MODULE_JID), "roomHidden", RoomType.Hidden);
 
         module = new MUCModule(SUBDOMAIN, conference);
         module.initialize(serverRuntimeContext);


Reply via email to