protected void execute() { buildNode(); connectNode(NetworkConfiguration.createInitial(askNodeID())); } };
/** * Create network configuration for initial peer with random node id * * @return the network configuration */ public static NetworkConfiguration createInitial() { return createInitial(UUID.randomUUID().toString()); }
netConfig = NetworkConfiguration.createInitial(); logger.info("Start as initial peer");
netConfig = NetworkConfiguration.createInitial();
node1.connect(NetworkConfiguration.createInitial());
node1.connect(NetworkConfiguration.createInitial()); node2.connect(NetworkConfiguration.create(InetAddress.getLocalHost()));
public static void main(String[] args) throws NoPeerConnectionException, InvalidProcessStateException, ProcessExecutionException { // Create a node and open a new overlay network IH2HNode node = H2HNode.createNode(FileConfiguration.createDefault()); node.connect(NetworkConfiguration.createInitial()); // The register functionality is in the user manager API IUserManager userManager = node.getUserManager(); // Create user credentials to register a new user 'Alice' UserCredentials alice = new UserCredentials("Alice", "very-secret-password", "secret-pin"); // Create a new register process and start it (blocking) IProcessComponent<Void> registerAlice = userManager.createRegisterProcess(alice); registerAlice.execute(); // Check if Alice is now registered boolean aliceRegistered = userManager.isRegistered("Alice"); System.out.println("Alice is registered: " + aliceRegistered); // Let's login to Alice's user account (blocking) IProcessComponent<Void> loginAlice = userManager.createLoginProcess(alice, new ExampleFileAgent()); loginAlice.execute(); // Check if Alice is now logged in System.out.println("Alice is logged in: " + userManager.isLoggedIn()); } }
node1.connect(NetworkConfiguration.createInitial()); node2.connect(NetworkConfiguration.create(InetAddress.getLocalHost()));
IFileConfiguration fileConfig = new TestFileConfiguration(); IH2HNode initial = H2HNode.createNode(fileConfig, encryption, serializer); initial.connect(NetworkConfiguration.createInitial("initial"));
public static void main(String[] args) throws Exception { IFileConfiguration fileConfiguration = FileConfiguration.createDefault(); // Create two nodes and open a new overlay network IH2HNode node1 = H2HNode.createNode(fileConfiguration); IH2HNode node2 = H2HNode.createNode(fileConfiguration); node1.connect(NetworkConfiguration.createInitial()); node2.connect(NetworkConfiguration.create(InetAddress.getLocalHost())); // These two file agents are used to configure the root directory of the logged in user ExampleFileAgent node1FileAgent = new ExampleFileAgent(); ExampleFileAgent node2FileAgent = new ExampleFileAgent(); // Register user 'Alice' and login her at node 1 and 2 UserCredentials alice = new UserCredentials("Alice", "password", "pin"); node1.getUserManager().createRegisterProcess(alice).execute(); node1.getUserManager().createLoginProcess(alice, node1FileAgent).execute(); node2.getUserManager().createLoginProcess(alice, node2FileAgent).execute(); // In this example, a file event listener is registered at node 2. Therefore, we will listen to events // that happen by actions taken by node 1. node2.getFileManager().subscribeFileEvents(new ExampleEventListener(node2.getFileManager())); // To demonstrate the 'add' event, we will add a new file with node 1 // Let's create a file and upload it at node 1 File fileAtNode1 = new File(node1FileAgent.getRoot(), "test-file-event.txt"); FileUtils.write(fileAtNode1, "Hello"); // add some content node1.getFileManager().createAddProcess(fileAtNode1).execute(); // Let's trigger a deletion event fileAtNode1.delete(); node1.getFileManager().createDeleteProcess(fileAtNode1).execute(); }
@Test public void testConnectAsInitial() { NetworkManager initialNode = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); try { INetworkConfiguration netConfig = NetworkConfiguration.createInitial("initial node"); assertTrue(initialNode.connect(netConfig)); } finally { initialNode.disconnect(false); } }
@Test public void testConnectToOtherPeer() throws UnknownHostException { NetworkManager nodeA = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); NetworkManager nodeB = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); INetworkConfiguration netConfigA = NetworkConfiguration.createInitial("nodeA"); INetworkConfiguration netConfigB = NetworkConfiguration.create("nodeB", InetAddress.getLocalHost()); try { assertTrue(nodeA.connect(netConfigA)); assertTrue(nodeB.connect(netConfigB)); } finally { nodeA.disconnect(false); nodeB.disconnect(false); } }
@Test public void testConnectDisconnect() throws UnknownHostException { NetworkManager nodeA = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); NetworkManager nodeB = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); INetworkConfiguration netConfigA = NetworkConfiguration.createInitial("nodeA"); INetworkConfiguration netConfigB = NetworkConfiguration.create("nodeB", InetAddress.getLocalHost()); try { nodeA.connect(netConfigA); nodeB.connect(netConfigB); assertTrue(nodeB.disconnect(false)); assertTrue(nodeB.connect(netConfigB)); } finally { nodeA.disconnect(false); nodeB.disconnect(false); } }
@Test public void testConnectDisconnectKeepSession() throws NoPeerConnectionException, NoSessionException, IOException { NetworkManager nodeA = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); NetworkManager nodeB = new NetworkManager(new H2HDummyEncryption(), serializer, new TestFileConfiguration()); INetworkConfiguration netConfigA = NetworkConfiguration.createInitial("nodeA"); INetworkConfiguration netConfigB = NetworkConfiguration.create("nodeB", InetAddress.getLocalHost()); try { nodeA.connect(netConfigA); nodeB.connect(netConfigB); UseCaseTestUtil.registerAndLogin(generateRandomCredentials(), nodeB, tempFolder.newFolder()); assertTrue(nodeB.disconnect(true)); assertTrue(nodeB.connect(netConfigB)); assertNotNull(nodeB.getSession()); } finally { nodeA.disconnect(false); nodeB.disconnect(false); } }