Skip to content

Commit 05e9f89

Browse files
authored
Merge pull request #37 from estigma88/Standalone-network-node
Standalone network node
2 parents f01c0ff + bbe54dd commit 05e9f89

File tree

6 files changed

+190
-3
lines changed

6 files changed

+190
-3
lines changed

README.md

Lines changed: 5 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ jDHTUQ is a peer-to-peer DHT system based on Chord algorithm, but built to gener
1313

1414
## Download last versions
1515

16-
[![Github Releases (by Asset)](https://img.shields.io/github/downloads/estigma88/jdhtuq/latest/desktop-structure-gui-2.0.2.jar.svg)](https://github.com/estigma88/jdhtuq/releases/download/v2.0.4/desktop-structure-gui-2.0.2.jar) [![Github Releases (by Asset)](https://img.shields.io/github/downloads/estigma88/jdhtuq/latest/desktop-network-gui-2.0.4.jar.svg)](https://github.com/estigma88/jdhtuq/releases/download/v2.0.4/desktop-network-gui-2.0.4.jar)
16+
[![Github Releases (by Asset)](https://img.shields.io/github/downloads/estigma88/jdhtuq/latest/desktop-structure-gui-2.0.2.jar.svg)](https://github.com/estigma88/jdhtuq/releases/download/v2.0.4/desktop-structure-gui-2.0.2.jar) [![Github Releases (by Asset)](https://img.shields.io/github/downloads/estigma88/jdhtuq/latest/desktop-network-gui-2.0.4.jar.svg)](https://github.com/estigma88/jdhtuq/releases/download/v2.0.4/desktop-network-gui-2.0.4.jar) [![Github Releases (by Asset)](https://img.shields.io/github/downloads/estigma88/jdhtuq/latest/standalone-network-2.0.4.jar.svg)](https://github.com/estigma88/jdhtuq/releases/download/standalone-network-v2.0.4/standalone-network-2.0.4.jar)
1717

1818
Data structure and network applications.
1919
- Execute with double click or
@@ -27,10 +27,12 @@ To get more information about how to use the examples, please refer to
2727
### From source code
2828
- Clone the repository
2929
- Execute the following command in the root folder
30-
- For peer to peer simulation:
30+
- For desktop ui peer to peer simulation:
3131
`gradlew :main:desktop-structure-gui:bootRun`
32-
- For peer to peer network with sockets:
32+
- For desktop ui peer to peer network with sockets:
3333
`gradlew :main:desktop-network-gui:bootRun`
34+
- For standalone peer to peer network with sockets:
35+
`gradlew :main:standalone-network:bootRun`
3436

3537
### Using layers as dependencies
3638
Add the following dependencies to your project to use Chord, DHash and Communication layers in your own project.

main/standalone-network/build.gradle

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,19 @@
1+
plugins {
2+
id 'org.springframework.boot' version '2.0.1.RELEASE'
3+
}
4+
5+
apply plugin: 'java'
6+
7+
repositories {
8+
mavenCentral()
9+
}
10+
11+
version = '2.0.4'
12+
13+
dependencies {
14+
compile("org.springframework.boot:spring-boot-starter:1.5.10.RELEASE")
15+
16+
compile group: 'com.github.estigma88', name: 'jdhtuq-chord-spring-boot-starter', version: '2.0.1'
17+
compile group: 'com.github.estigma88', name: 'jdhtuq-dhash-spring-boot-starter', version: '2.0.1'
18+
compile group: 'com.github.estigma88', name: 'jdhtuq-socket-communication-spring-boot-starter', version: '2.1.0'
19+
}
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
/*
2+
* standalone-network is a example of the peer to peer application with a desktop ui
3+
* Copyright (C) 2010 - 2018 Daniel Pelaez
4+
*
5+
* This program is free software: you can redistribute it and/or modify
6+
* it under the terms of the GNU Affero General Public License as
7+
* published by the Free Software Foundation, either version 3 of the
8+
* License, or (at your option) any later version.
9+
*
10+
* This program is distributed in the hope that it will be useful,
11+
* but WITHOUT ANY WARRANTY; without even the implied warranty of
12+
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13+
* GNU Affero General Public License for more details.
14+
*
15+
* You should have received a copy of the GNU Affero General Public License
16+
* along with this program. If not, see <http://www.gnu.org/licenses/>.
17+
*/
18+
19+
package co.edu.uniquindio.dht;
20+
21+
import co.edu.uniquindio.storage.StorageException;
22+
import co.edu.uniquindio.storage.StorageNode;
23+
import co.edu.uniquindio.storage.StorageNodeFactory;
24+
import org.springframework.boot.autoconfigure.SpringBootApplication;
25+
import org.springframework.boot.builder.SpringApplicationBuilder;
26+
import org.springframework.context.annotation.Bean;
27+
import org.springframework.context.annotation.Configuration;
28+
29+
import java.net.InetAddress;
30+
import java.net.UnknownHostException;
31+
32+
@SpringBootApplication
33+
@Configuration
34+
public class Main {
35+
36+
@Bean
37+
public StorageNode storageNode(StorageNodeFactory storageNodeFactory) throws UnknownHostException, StorageException {
38+
return storageNodeFactory.createNode(InetAddress.getLocalHost().getHostAddress());
39+
}
40+
41+
public static void main(String[] args) {
42+
new SpringApplicationBuilder(Main.class)
43+
.headless(false).run(args);
44+
}
45+
}
46+
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
ui-network:
2+
resource-directory: build/dhash/
3+
p2p:
4+
dhash:
5+
resource-directory: build/dhash/
6+
communication:
7+
socket:
8+
instances:
9+
dhash:
10+
RESPONSE_TIME: 2000
11+
BUFFER_SIZE_MULTICAST: 1024
12+
IP_MULTICAST: 224.0.0.1
13+
PORT_MULTICAST: 2000
14+
TIMEOUT_TCP_CONNECTION: 2000
15+
PORT_TCP: 2002
16+
PORT_UDP: 2003
17+
BUFFER_SIZE_UDP: 1024
Lines changed: 102 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,102 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
3+
<log4j:configuration>
4+
5+
<appender name="STDOUT_DHASH" class="org.apache.log4j.ConsoleAppender">
6+
<layout class="org.apache.log4j.PatternLayout">
7+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [Dhash] [%C{1}] %m%n" />
8+
</layout>
9+
</appender>
10+
11+
<appender name="STDOUT_DHT" class="org.apache.log4j.ConsoleAppender">
12+
<layout class="org.apache.log4j.PatternLayout">
13+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [DHT-UQ_GUI] [%C{1}] %m%n" />
14+
</layout>
15+
</appender>
16+
17+
<appender name="CH3_DHASH" class="org.apache.log4j.RollingFileAppender">
18+
<param name="File" value="c:/logger.log" />
19+
<param name="MaxBackupIndex" value="3" />
20+
<param name="MaxFileSize" value="1KB" />
21+
<layout class="org.apache.log4j.PatternLayout">
22+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [Dhash] [%C{1}] %m%n" />
23+
</layout>
24+
</appender>
25+
26+
<appender name="STDOUT_CHORD" class="org.apache.log4j.ConsoleAppender">
27+
<layout class="org.apache.log4j.PatternLayout">
28+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [Chord] [%C{1}] %m%n" />
29+
</layout>
30+
</appender>
31+
32+
<appender name="CH3_CHORD" class="org.apache.log4j.RollingFileAppender">
33+
<param name="File" value="c:/logger.log" />
34+
<param name="MaxBackupIndex" value="3" />
35+
<param name="MaxFileSize" value="1KB" />
36+
<layout class="org.apache.log4j.PatternLayout">
37+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [Chord] [%C{1}] %m%n" />
38+
</layout>
39+
</appender>
40+
41+
<appender name="STDOUT_COMMUNICATION" class="org.apache.log4j.ConsoleAppender">
42+
<layout class="org.apache.log4j.PatternLayout">
43+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [Communication] [%C{1}] %m%n" />
44+
</layout>
45+
</appender>
46+
47+
<appender name="CH3_COMMUNICATION" class="org.apache.log4j.RollingFileAppender">
48+
<param name="File" value="c:/logger.log" />
49+
<param name="MaxBackupIndex" value="3" />
50+
<param name="MaxFileSize" value="1KB" />
51+
<layout class="org.apache.log4j.PatternLayout">
52+
<param name="ConversionPattern" value="%d{ABSOLUTE} %-5p [Communication] [%C] %m%n" />
53+
</layout>
54+
</appender>
55+
56+
<logger name="co.edu.uniquindio.chord">
57+
<level value="INFO" />
58+
59+
<!--
60+
<level value="FINE" class="co.edu.uniquindio.utils.logger.FineLevel"
61+
/>
62+
-->
63+
64+
<appender-ref ref="STDOUT_CHORD" />
65+
<!-- <appender-ref ref="CH3_CHORD" />-->
66+
</logger>
67+
<logger name="co.edu.uniquindio.dht">
68+
<level value="INFO" />
69+
70+
<!--
71+
<level value="FINE" class="co.edu.uniquindio.utils.logger.FineLevel"
72+
/>
73+
-->
74+
75+
<appender-ref ref="STDOUT_DHT" />
76+
</logger>
77+
78+
<logger name="co.edu.uniquindio.dhash">
79+
<level value="INFO" />
80+
<!--
81+
<level value="FINE"
82+
class="co.edu.uniquindio.utils.logger.FineLevel"/>
83+
-->
84+
<!--
85+
<level value="FINEST"
86+
class="co.edu.uniquindio.utils.logger.FinestLevel"/>
87+
-->
88+
<appender-ref ref="STDOUT_DHASH" />
89+
<!-- <appender-ref ref="CH3_DHASH" />-->
90+
</logger>
91+
92+
<logger name="co.edu.uniquindio.utils">
93+
<level value="INFO" />
94+
<appender-ref ref="STDOUT_COMMUNICATION" />
95+
<!-- <appender-ref ref="CH3_UTILS" />-->
96+
</logger>
97+
98+
<root>
99+
<level value="debug" />
100+
</root>
101+
102+
</log4j:configuration>

settings.gradle

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ include 'it:data-structure-it'
99
include 'it:socket-it'
1010
include 'main:desktop-structure-gui'
1111
include 'main:desktop-network-gui'
12+
include 'main:standalone-network'
1213
include 'main:starters:dhash-spring-boot-starter'
1314
include 'main:starters:chord-spring-boot-starter'
1415
include 'main:starters:socket-communication-spring-boot-starter'

0 commit comments

Comments
 (0)