esoe
2 years ago
commit
ef4b3173d9
4 changed files with 260 additions and 0 deletions
@ -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 @@ |
|||||||
|
<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 @@ |
|||||||
|
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 @@ |
|||||||
|
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