1 /** 2 * $RCSfile: ServerFeaturesProvider.java,v $ 3 * $Revision: 1.3 $ 4 * $Date: 2005/07/26 05:09:55 $ 5 * 6 * Copyright (C) 2004 Jive Software. All rights reserved. 7 * 8 * This software is published under the terms of the GNU Public License (GPL), 9 * a copy of which is included in this distribution. 10 */ 11 12 package org.jivesoftware.messenger.disco; 13 14 import java.util.Iterator; 15 16 /** 17 * ServerFeaturesProviders are responsible for providing the features offered and supported 18 * protocols by the SERVER. Example of server features are: jabber:iq:agents, jabber:iq:time, etc. 19 * <p/> 20 * <p/> 21 * When the server starts up, IQDiscoInfoHandler will request to all the services that implement 22 * the ServerFeaturesProvider interface for their features. Whenever a disco request is received 23 * IQDiscoInfoHandler will add to the provided information all the collected features. Therefore, a 24 * service must implement this interface in order to offer/publish its features as part of the 25 * server features. 26 * 27 * @author Gaston Dombiak 28 */ 29 public interface ServerFeaturesProvider { 30 31 /** 32 * Returns an Iterator (of String) with the supported features by the server. The features to 33 * include are the features offered and supported protocols by the SERVER. The idea is that 34 * different modules may provide their features that will ultimately be part of the features 35 * offered by the server. 36 * 37 * @return an Iterator (of String) with the supported features by the server. 38 */ 39 public abstract Iterator<String> getFeatures(); 40 } 41