package Examples.B_Exploring_Connectivity_Issues.Monitoring; import Examples.Z_Tools_And_Others.Tools; import java.io.File; import java.io.IOException; import java.net.InetAddress; import java.net.URI; import java.util.concurrent.TimeUnit; import javax.swing.JOptionPane; import net.jxta.exception.PeerGroupException; import net.jxta.id.IDFactory; import net.jxta.peer.PeerID; import net.jxta.peergroup.PeerGroup; import net.jxta.peergroup.PeerGroupID; import net.jxta.platform.NetworkConfigurator; import net.jxta.platform.NetworkManager; /** * Simple EDGE peer connecting via the NetPeerGroup. */ public class Edge_Gina { // Static public static final String Name_EDGE = "EDGE GINA"; public static final PeerID PID_EDGE = IDFactory.newPeerID(PeerGroupID.defaultNetPeerGroupID, Name_EDGE.getBytes()); public static final int TcpPort_EDGE = 9710; public static final int HttpPort_EDGE = 9900; public static final File ConfigurationFile_EDGE = new File("." + System.getProperty("file.separator") + Name_EDGE); public static final String ChildPeerGroupName = "Child peer group"; public static final PeerGroupID ChildPeerGroupID = IDFactory.newPeerGroupID(PeerGroupID.defaultNetPeerGroupID, ChildPeerGroupName.getBytes()); /** * @param args the command line arguments */ public static void main(String[] args) { try { // Removing any existing configuration? NetworkManager.RecursiveDelete(ConfigurationFile_EDGE); System.out.println(PeerGroup.tcpProtoClassID); // Creation of the network manager final NetworkManager MyNetworkManager = new NetworkManager( NetworkManager.ConfigMode.EDGE, Name_EDGE, ConfigurationFile_EDGE.toURI()); // Retrieving the network configurator NetworkConfigurator MyNetworkConfigurator = MyNetworkManager.getConfigurator(); // Setting Configuration MyNetworkConfigurator.setUseMulticast(false); MyNetworkConfigurator.setTcpPort(TcpPort_EDGE); if ( Tools.PopYesNoQuestion(Name_EDGE, "Do you want to enable TCP?") == JOptionPane.YES_OPTION ) { MyNetworkConfigurator.setTcpEnabled(true); MyNetworkConfigurator.setTcpIncoming(true); MyNetworkConfigurator.setTcpOutgoing(true); } else { MyNetworkConfigurator.setTcpEnabled(false); MyNetworkConfigurator.setTcpIncoming(false); MyNetworkConfigurator.setTcpOutgoing(false); } MyNetworkConfigurator.setHttpPort(TcpPort_EDGE); if ( Tools.PopYesNoQuestion(Name_EDGE, "Do you want to enable HTTP?") == JOptionPane.YES_OPTION ) { MyNetworkConfigurator.setHttpEnabled(true); MyNetworkConfigurator.setHttpIncoming(false); MyNetworkConfigurator.setHttpOutgoing(true); } else { MyNetworkConfigurator.setHttpEnabled(false); MyNetworkConfigurator.setHttpIncoming(false); MyNetworkConfigurator.setHttpOutgoing(false); } // Setting the Peer ID MyNetworkConfigurator.setPeerID(PID_EDGE); // Adding RDV seed MyNetworkConfigurator.clearRendezvousSeeds(); String TheRdvSeed = "tcp://" + InetAddress.getLocalHost().getHostAddress() + ":" + RendezVous_Mya.TcpPort_RDV; URI RendezVousSeedURI = URI.create(TheRdvSeed); MyNetworkConfigurator.addSeedRendezvous(RendezVousSeedURI); // Adding Relay seed MyNetworkConfigurator.clearRelaySeeds(); String TheRelaySeed = "http://" + InetAddress.getLocalHost().getHostAddress() + ":" + Relay_Robert.HttpPort_RELAY; URI RelaySeedURI = URI.create(TheRelaySeed); MyNetworkConfigurator.addSeedRelay(RelaySeedURI); String TheRelaySeed2 = "tcp://" + InetAddress.getLocalHost().getHostAddress() + ":" + Relay_Robert.TcpPort_RELAY; URI RelaySeedURI2 = URI.create(TheRelaySeed2); MyNetworkConfigurator.addSeedRelay(RelaySeedURI2); // Starting the JXTA network PeerGroup NetPeerGroup = MyNetworkManager.startNetwork(); // Starting the connectivity monitor new ConnectivityMonitor(NetPeerGroup); // Disabling any rendezvous autostart NetPeerGroup.getRendezVousService().setAutoStart(false); // Stopping the network asynchronously ConnectivityMonitor.TheExecutor.schedule( new DelayedJxtaNetworkStopper( MyNetworkManager, "Click to stop " + Name_EDGE, "Stop"), 0, TimeUnit.SECONDS); } catch (IOException Ex) { System.err.println(Ex.toString()); } catch (PeerGroupException Ex) { System.err.println(Ex.toString()); } } }