Coverage details for base.jdbs.network.GroupDiscoveryThread

LineHitsSource
1 /*******************************************************************************
2  * InternetCafe is a software solution that helps the management of Cybercafes
3  * according with the ITALIAN DECREE LAW ON ANTI-TERROR MEASURES, 27 JULY 2005.
4  * Copyright (C) 2006 Guido Angelo Ingenito
5  
6  * This program is free software; you can redistribute it and/or
7  * modify it under the terms of the GNU General Public License
8  * as published by the Free Software Foundation; either version 2
9  * of the License, or (at your option) any later version.
10  
11  * This program is distributed in the hope that it will be useful,
12  * but WITHOUT ANY WARRANTY; without even the implied warranty of
13  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  * GNU General Public License for more details.
15  *
16  * You should have received a copy of the GNU General Public License
17  * along with this program; if not, write to the Free Software
18  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
19  *******************************************************************************/
20  
21 package base.jdbs.network;
22  
23 import java.util.Enumeration;
24 import java.util.Observable;
25  
26 import net.jxta.discovery.DiscoveryEvent;
27 import net.jxta.discovery.DiscoveryListener;
28 import net.jxta.discovery.DiscoveryService;
29 import net.jxta.protocol.DiscoveryResponseMsg;
30 import net.jxta.protocol.PeerAdvertisement;
31 import net.jxta.protocol.PeerGroupAdvertisement;
32  
33 import org.apache.log4j.Logger;
34  
35 import base.jdbs.network.util.JxtaUtil;
36  
37 /**
38  * @author skunk
39  *
40  */
410public class GroupDiscoveryThread extends Observable implements Runnable, DiscoveryListener {
42  
43     public static final String THREAD_NAME = "Group Discovery Thread";
440    public static final int DISCOVERY_INTERVAL = 30*1000;
45     
460    private static final transient Logger logger = Logger.getLogger(GroupDiscoveryThread.class.getName());
47  
480    private final DiscoveryService discoveryService;
490    
500    public GroupDiscoveryThread(DiscoveryService discoveryService){
510        this.discoveryService = discoveryService;
52         //Add ourself as discovery listener
530        this.discoveryService.addDiscoveryListener(this);
540    }
550    
56     public void run() {
570        try {
580            while (true) {
590                JxtaUtil.groupsInLocalCache(this.discoveryService);
60                 
610                logger.info(THREAD_NAME+": Sending a Group Discovery Message.");
620                //look for any peer group
630                this.discoveryService.getRemoteAdvertisements(null, DiscoveryService.GROUP, null, null, 10);
640                //wait a bit before sending next discovery message
650                try {
660                    Thread.sleep(DISCOVERY_INTERVAL);
670                } catch(Exception ex) {
680                    logger.error(ex.getMessage());
690                }
700            }
71         }
720        catch(Exception e) {
730            e.printStackTrace();
74         }
75  
760    }
77  
780    /* (non-Javadoc)
790     * @see net.jxta.discovery.DiscoveryListener#discoveryEvent(net.jxta.discovery.DiscoveryEvent)
80      */
810    public void discoveryEvent(DiscoveryEvent discoveryEvent) {
820        DiscoveryResponseMsg discoveryResponseMsg = discoveryEvent.getResponse();
830        String name = "unknown";
840        //Get the responding peer's advertisement
850        PeerAdvertisement peerAdvertisement = discoveryResponseMsg.getPeerAdvertisement();
86         //some peers may not respond with their peerAdvertisement
870        if (peerAdvertisement != null) {
880            name = peerAdvertisement.getName();
89         }
900        
910        logger.info(THREAD_NAME+": Got a Discovery Response [" + discoveryResponseMsg.getResponseCount()+ " elements] from peer : " + name);
920        
930// printout each discovered peer
940        PeerGroupAdvertisement peerGroupArvertisement = null;
950        Enumeration enumeration = discoveryResponseMsg.getAdvertisements();
960        if (enumeration != null ) {
970            while (enumeration.hasMoreElements()) {
980                peerGroupArvertisement = (PeerGroupAdvertisement) enumeration.nextElement();
990                logger.info(" Group NAME: " + peerGroupArvertisement.getName() +" ID: "+peerGroupArvertisement.getID().toString() );
100                 //NetworkManager.getInstance().addDiscoveredPeer(peerArvertisement);
1010            }
102         }
1030    }
104 }

this report was generated by version 1.0.5 of jcoverage.
visit www.jcoverage.com for updates.

copyright © 2003, jcoverage ltd. all rights reserved.
Java is a trademark of Sun Microsystems, Inc. in the United States and other countries.