package tutorial.WorkingWithLocalConfiguration;
import net.jxta.exception.PeerGroupException;
import net.jxta.peergroup.PeerGroup;
import net.jxta.platform.NetworkConfigurator;
import net.jxta.platform.NetworkManager;
import java.text.MessageFormat;
import java.io.File;
import java.io.IOException;
import javax.security.cert.CertificateException;
import javax.swing.JOptionPane;
public class WorkingWithLocalConfiguration {
public static final String Local_Peer_Name = "My Local Peer";
public static final String Local_Network_Manager_Name = "My Local Network Manager";
NetworkManager TheNetworkManager;
NetworkConfigurator TheConfig;
PeerGroup TheNetPeerGroup;
public WorkingWithLocalConfiguration() {
// Creating the Network Manager
try {
System.out.println("Creating the Network Manager");
TheNetworkManager = new NetworkManager(
NetworkManager.ConfigMode.EDGE, Local_Network_Manager_Name);
System.out.println("Network Manager created");
} catch (IOException ex) {
ex.printStackTrace();
System.exit(-1);
}
// Persisting it to make sure the Peer ID is not re-created each
// time the Network Manager is instantiated
TheNetworkManager.setConfigPersistent(true);
System.out.println("PeerID: " + TheNetworkManager.getPeerID().toString());
// Since we won't be setting our own relay or rendezvous seed peers we
// will use the default (public network) relay and rendezvous seeding.
TheNetworkManager.setUseDefaultSeeds(true);
// Retrieving the Network Configurator
System.out.println("Retrieving the Network Configurator");
try {
TheConfig = TheNetworkManager.getConfigurator();
} catch (IOException e) {
e.printStackTrace();
}
System.out.println("Network Configurator retrieved");
// Does a local peer configuration exist?
if (TheConfig.exists()) {
System.out.println("Local configuration found");
// We load it
File LocalConfig = new File(TheConfig.getHome(), "PlatformConfig");
try {
System.out.println("Loading found configuration");
TheConfig.load(LocalConfig.toURI());
System.out.println("Configuration loaded");
} catch (IOException ex) {
ex.printStackTrace();
System.exit(-1);
} catch (CertificateException ex) {
// An issue with the existing peer certificate has been encountered
ex.printStackTrace();
System.exit(-1);
}
} else {
System.out.println("No local configuration found");
TheConfig.setName(Local_Peer_Name);
TheConfig.setPrincipal(GetPrincipal());
TheConfig.setPassword(GetPassword());
System.out.println("Principal: " + TheConfig.getPrincipal());
System.out.println("Password : " + TheConfig.getPassword());
try {
System.out.println("Saving new configuration");
TheConfig.save();
System.out.println("New configuration saved successfully");
} catch (IOException ex) {
ex.printStackTrace();
System.exit(-1);
}
}
}
private String GetPrincipal() {
return (String) JOptionPane.showInputDialog(
null, "Enter principal", "Principal", JOptionPane.QUESTION_MESSAGE,
null, null, "");
}
private String GetPassword() {
return (String) JOptionPane.showInputDialog(
null, "Enter password", "Password", JOptionPane.QUESTION_MESSAGE,
null, null, "");
}
public void SeekRendezVousConnection() {
try {
System.out.println("Starting JXTA");
TheNetPeerGroup = TheNetworkManager.startNetwork();
System.out.println("JXTA Started");
System.out.println("Peer name : "
+ TheNetPeerGroup.getPeerName());
System.out.println("Peer Group name: "
+ TheNetPeerGroup.getPeerGroupName());
System.out.println("Peer Group ID : "
+ TheNetPeerGroup.getPeerID().toString());
} catch (PeerGroupException ex) {
// Cannot initialize peer group
ex.printStackTrace();
System.exit(-1);
} catch (IOException ex) {
ex.printStackTrace();
System.exit(-1);
}
System.out.println("Waiting for a rendezvous connection for 25 seconds � + �(maximum)");
boolean connected = TheNetworkManager.waitForRendezvousConnection(25000);
System.out.println(MessageFormat.format("Connected :{0}", connected));
System.out.println("Stopping JXTA");
TheNetworkManager.stopNetwork();
}
public static void main(String[] args) {
WorkingWithLocalConfiguration MyLogin = new WorkingWithLocalConfiguration();
MyLogin.SeekRendezVousConnection();
}
}