esoe
2 years ago
commit
ef4b3173d9
4 changed files with 260 additions and 0 deletions
@ -0,0 +1,17 @@
@@ -0,0 +1,17 @@
|
||||
# Editor configuration, see http://editorconfig.org |
||||
root = true |
||||
|
||||
[*] |
||||
charset = utf-8 |
||||
indent_style = space |
||||
indent_size = 2 |
||||
insert_final_newline = true |
||||
trim_trailing_whitespace = true |
||||
max_line_length = 80 |
||||
|
||||
[*.sh] |
||||
end_of_line = lf |
||||
|
||||
[*.java] |
||||
indent_size = 4 |
||||
max_line_length = 120 |
@ -0,0 +1,173 @@
@@ -0,0 +1,173 @@
|
||||
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd"> |
||||
<modelVersion>4.0.0</modelVersion> |
||||
<groupId>ru.molokoin</groupId> |
||||
<artifactId>exchange-server</artifactId> |
||||
<version>0.1</version> |
||||
<properties> |
||||
<maven.compiler.source>1.8</maven.compiler.source> |
||||
<maven.compiler.target>1.8</maven.compiler.target> |
||||
<project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> |
||||
<junit.version>5.6.0</junit.version> |
||||
<maven-enforcer-plugin.version>3.0.0-M3</maven-enforcer-plugin.version> |
||||
<maven-checkstyle-plugin.version>3.1.2</maven-checkstyle-plugin.version> |
||||
<checkstyle.version>8.39</checkstyle.version> |
||||
<maven-surefire-plugin.version>3.0.0-M5</maven-surefire-plugin.version> |
||||
<jacoco-maven-plugin.version>0.8.4</jacoco-maven-plugin.version> |
||||
<maven-javadoc-plugin.version>3.0.0</maven-javadoc-plugin.version> |
||||
<!-- JaCoCo thresholds. Increase gradually as you add tests. --> |
||||
<jacoco.unit-tests.limit.instruction-ratio>0%</jacoco.unit-tests.limit.instruction-ratio> |
||||
<jacoco.unit-tests.limit.branch-ratio>0%</jacoco.unit-tests.limit.branch-ratio> |
||||
<jacoco.unit-tests.limit.class-complexity>20</jacoco.unit-tests.limit.class-complexity> |
||||
<jacoco.unit-tests.limit.method-complexity>5</jacoco.unit-tests.limit.method-complexity> |
||||
</properties> |
||||
<dependencies> |
||||
<dependency> |
||||
<groupId>org.junit.jupiter</groupId> |
||||
<artifactId>junit-jupiter-api</artifactId> |
||||
<version>${junit.version}</version> |
||||
<scope>test</scope> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>org.junit.jupiter</groupId> |
||||
<artifactId>junit-jupiter-engine</artifactId> |
||||
<version>${junit.version}</version> |
||||
<scope>test</scope> |
||||
</dependency> |
||||
</dependencies> |
||||
<build> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-enforcer-plugin</artifactId> |
||||
<version>${maven-enforcer-plugin.version}</version> |
||||
<executions> |
||||
<execution> |
||||
<goals> |
||||
<goal>enforce</goal> |
||||
</goals> |
||||
<configuration> |
||||
<rules> |
||||
<requireMavenVersion> |
||||
<version>3.6.3</version> |
||||
</requireMavenVersion> |
||||
</rules> |
||||
<fail>true</fail> |
||||
</configuration> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-checkstyle-plugin</artifactId> |
||||
<version>${maven-checkstyle-plugin.version}</version> |
||||
<dependencies> |
||||
<dependency> |
||||
<groupId>com.puppycrawl.tools</groupId> |
||||
<artifactId>checkstyle</artifactId> |
||||
<version>${checkstyle.version}</version> |
||||
</dependency> |
||||
<dependency> |
||||
<groupId>com.github.ngeor</groupId> |
||||
<artifactId>checkstyle-rules</artifactId> |
||||
<version>4.8.0</version> |
||||
</dependency> |
||||
</dependencies> |
||||
<configuration> |
||||
<configLocation>com/github/ngeor/checkstyle.xml</configLocation> |
||||
<includeTestSourceDirectory>true</includeTestSourceDirectory> |
||||
<skip>${skipTests}</skip> |
||||
</configuration> |
||||
<executions> |
||||
<execution> |
||||
<id>checkstyle</id> |
||||
<phase>validate</phase> |
||||
<goals> |
||||
<goal>check</goal> |
||||
</goals> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-surefire-plugin</artifactId> |
||||
<version>${maven-surefire-plugin.version}</version> |
||||
</plugin> |
||||
<plugin> |
||||
<groupId>org.jacoco</groupId> |
||||
<artifactId>jacoco-maven-plugin</artifactId> |
||||
<version>${jacoco-maven-plugin.version}</version> |
||||
<executions> |
||||
<execution> |
||||
<id>pre-unit-test</id> |
||||
<goals> |
||||
<goal>prepare-agent</goal> |
||||
</goals> |
||||
</execution> |
||||
<execution> |
||||
<id>post-unit-test</id> |
||||
<phase>test</phase> |
||||
<goals> |
||||
<goal>report</goal> |
||||
</goals> |
||||
</execution> |
||||
<execution> |
||||
<id>check-unit-test</id> |
||||
<phase>test</phase> |
||||
<goals> |
||||
<goal>check</goal> |
||||
</goals> |
||||
<configuration> |
||||
<dataFile>${project.build.directory}/jacoco.exec</dataFile> |
||||
<rules> |
||||
<rule> |
||||
<element>BUNDLE</element> |
||||
<limits> |
||||
<limit> |
||||
<counter>INSTRUCTION</counter> |
||||
<value>COVEREDRATIO</value> |
||||
<minimum>${jacoco.unit-tests.limit.instruction-ratio}</minimum> |
||||
</limit> |
||||
<limit> |
||||
<counter>BRANCH</counter> |
||||
<value>COVEREDRATIO</value> |
||||
<minimum>${jacoco.unit-tests.limit.branch-ratio}</minimum> |
||||
</limit> |
||||
</limits> |
||||
</rule> |
||||
<rule> |
||||
<element>CLASS</element> |
||||
<limits> |
||||
<limit> |
||||
<counter>COMPLEXITY</counter> |
||||
<value>TOTALCOUNT</value> |
||||
<maximum>${jacoco.unit-tests.limit.class-complexity}</maximum> |
||||
</limit> |
||||
</limits> |
||||
</rule> |
||||
<rule> |
||||
<element>METHOD</element> |
||||
<limits> |
||||
<limit> |
||||
<counter>COMPLEXITY</counter> |
||||
<value>TOTALCOUNT</value> |
||||
<maximum>${jacoco.unit-tests.limit.method-complexity}</maximum> |
||||
</limit> |
||||
</limits> |
||||
</rule> |
||||
</rules> |
||||
</configuration> |
||||
</execution> |
||||
</executions> |
||||
</plugin> |
||||
</plugins> |
||||
</build> |
||||
<reporting> |
||||
<plugins> |
||||
<plugin> |
||||
<groupId>org.apache.maven.plugins</groupId> |
||||
<artifactId>maven-javadoc-plugin</artifactId> |
||||
<version>${maven-javadoc-plugin.version}</version> |
||||
</plugin> |
||||
</plugins> |
||||
</reporting> |
||||
</project> |
@ -0,0 +1,52 @@
@@ -0,0 +1,52 @@
|
||||
package ru.molokoin; |
||||
|
||||
import java.io.BufferedReader; |
||||
import java.io.IOException; |
||||
import java.io.InputStreamReader; |
||||
import java.io.PrintWriter; |
||||
import java.net.ServerSocket; |
||||
import java.net.Socket; |
||||
import java.nio.charset.StandardCharsets; |
||||
|
||||
public class ExchangeServer { |
||||
|
||||
public static void main(String[] args) { |
||||
try (ServerSocket serverSocket = new ServerSocket(8181)) { |
||||
System.out.println("Server started!"); |
||||
|
||||
while (true) { |
||||
// ожидаем подключения
|
||||
Socket socket = serverSocket.accept(); |
||||
System.out.println("Client connected!"); |
||||
|
||||
// для подключившегося клиента открываем потоки
|
||||
// чтения и записи
|
||||
try (BufferedReader input = new BufferedReader(new InputStreamReader(socket.getInputStream(), StandardCharsets.UTF_8)); |
||||
PrintWriter output = new PrintWriter(socket.getOutputStream())) { |
||||
|
||||
// ждем первой строки запроса
|
||||
while (!input.ready()) ; |
||||
|
||||
// считываем и печатаем все что было отправлено клиентом
|
||||
System.out.println(); |
||||
while (input.ready()) { |
||||
System.out.println(input.readLine()); |
||||
} |
||||
|
||||
// отправляем ответ
|
||||
output.println("HTTP/1.1 200 OK"); |
||||
output.println("Content-Type: text/html; charset=utf-8"); |
||||
output.println(); |
||||
output.println("<p>hello-exchange!</p>"); |
||||
output.flush(); |
||||
|
||||
// по окончанию выполнения блока try-with-resources потоки,
|
||||
// а вместе с ними и соединение будут закрыты
|
||||
System.out.println("Client disconnected!"); |
||||
} |
||||
} |
||||
} catch (IOException ex) { |
||||
ex.printStackTrace(); |
||||
} |
||||
} |
||||
} |
@ -0,0 +1,18 @@
@@ -0,0 +1,18 @@
|
||||
package ru.molokoin; |
||||
|
||||
import org.junit.jupiter.api.Test; |
||||
|
||||
import static org.junit.jupiter.api.Assertions.assertEquals; |
||||
|
||||
/** |
||||
* Unit test for simple App. |
||||
*/ |
||||
class AppTest { |
||||
/** |
||||
* Rigorous Test. |
||||
*/ |
||||
@Test |
||||
void testApp() { |
||||
assertEquals(1, 1); |
||||
} |
||||
} |
Loading…
Reference in new issue