Skip to content

Commit c3bb6b8

Browse files
author
Mahdi
committed
Add 03-http-server and rename packages
1 parent 356da8c commit c3bb6b8

12 files changed

Lines changed: 145 additions & 8 deletions

File tree

01-basic/src/main/java/com/sample/module/basic/LogService.java renamed to 01-basic/src/main/java/ir/moke/module/basic/LogService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.sample.module.basic;
1+
package ir.moke.module.basic;
22

33
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;

01-basic/src/main/java/com/sample/module/basic/ModuleRunner.java renamed to 01-basic/src/main/java/ir/moke/module/basic/ModuleRunner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.sample.module.basic;
1+
package ir.moke.module.basic;
22

33
import ir.moke.jos.api.JModule;
44

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import ir.moke.module.basic.ModuleRunner;
2+
13
module p01_basic {
24
requires jos.api;
35
requires org.slf4j;
4-
exports com.sample.module.basic;
5-
provides ir.moke.jos.api.JModule with com.sample.module.basic.ModuleRunner;
6+
exports ir.moke.module.basic;
7+
provides ir.moke.jos.api.JModule with ModuleRunner;
68
}

02-timer-task/src/main/java/com/sample/module/timer/ModuleRunner.java renamed to 02-timer-task/src/main/java/ir/moke/module/timer/ModuleRunner.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.sample.module.timer;
1+
package ir.moke.module.timer;
22

33
import ir.moke.jos.api.JModule;
44

02-timer-task/src/main/java/com/sample/module/timer/TaskService.java renamed to 02-timer-task/src/main/java/ir/moke/module/timer/TaskService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package com.sample.module.timer;
1+
package ir.moke.module.timer;
22

33
import org.slf4j.Logger;
44
import org.slf4j.LoggerFactory;
Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
1+
import ir.moke.module.timer.ModuleRunner;
2+
13
module p01_basic {
24
requires jos.api;
35
requires org.slf4j;
4-
exports com.sample.module.timer;
5-
provides ir.moke.jos.api.JModule with com.sample.module.timer.ModuleRunner;
6+
exports ir.moke.module.timer;
7+
provides ir.moke.jos.api.JModule with ModuleRunner;
68
}

03-http-server/pom.xml

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
3+
xmlns="http://maven.apache.org/POM/4.0.0"
4+
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
5+
<modelVersion>4.0.0</modelVersion>
6+
7+
<parent>
8+
<groupId>ir.moke</groupId>
9+
<artifactId>example-modules</artifactId>
10+
<version>1.0-SNAPSHOT</version>
11+
</parent>
12+
13+
<artifactId>03-http-server</artifactId>
14+
<version>1.0-SNAPSHOT</version>
15+
16+
<dependencies>
17+
<dependency>
18+
<groupId>ir.moke.jos</groupId>
19+
<artifactId>jos-api</artifactId>
20+
</dependency>
21+
<dependency>
22+
<groupId>org.slf4j</groupId>
23+
<artifactId>slf4j-api</artifactId>
24+
</dependency>
25+
</dependencies>
26+
27+
<build>
28+
<plugins>
29+
<plugin>
30+
<groupId>ir.moke.jpkg</groupId>
31+
<artifactId>maven-jpkg</artifactId>
32+
<version>1.0</version>
33+
<configuration>
34+
<name>03-http-server</name>
35+
<version>0.1</version>
36+
<description>Java pure http server</description>
37+
<maintainer>Mahdi Sheikh Hosseini</maintainer>
38+
</configuration>
39+
</plugin>
40+
</plugins>
41+
</build>
42+
43+
</project>
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
package ir.moke.module.httpserver;
2+
3+
import com.sun.net.httpserver.HttpExchange;
4+
import com.sun.net.httpserver.HttpHandler;
5+
6+
import java.io.IOException;
7+
import java.io.OutputStream;
8+
import java.nio.charset.StandardCharsets;
9+
10+
public class HelloApi implements HttpHandler {
11+
@Override
12+
public void handle(HttpExchange exchange) throws IOException {
13+
String response = "Hello";
14+
exchange.sendResponseHeaders(200, response.length());
15+
OutputStream responseBody = exchange.getResponseBody();
16+
responseBody.write(response.getBytes(StandardCharsets.UTF_8));
17+
responseBody.flush();
18+
responseBody.flush();
19+
responseBody.close();
20+
}
21+
}
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package ir.moke.module.httpserver;
2+
3+
import com.sun.net.httpserver.HttpServer;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
7+
import java.net.InetSocketAddress;
8+
9+
public class HttpContainer {
10+
private static final Logger logger = LoggerFactory.getLogger(HttpContainer.class);
11+
private HttpServer httpServer;
12+
13+
public HttpContainer(String host, int port) {
14+
try {
15+
httpServer = HttpServer.create(new InetSocketAddress(host, port), -1);
16+
} catch (Exception e) {
17+
logger.error("Http container error", e);
18+
}
19+
}
20+
21+
public void start() {
22+
httpServer.createContext("/hello", new HelloApi());
23+
httpServer.start();
24+
}
25+
26+
public void stop() {
27+
httpServer.stop(1);
28+
}
29+
}
Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
package ir.moke.module.httpserver;
2+
3+
import ir.moke.jos.api.JModule;
4+
import org.slf4j.Logger;
5+
import org.slf4j.LoggerFactory;
6+
7+
public class ModuleRunner implements JModule {
8+
private static final Logger logger = LoggerFactory.getLogger(ModuleRunner.class);
9+
private static HttpContainer httpContainer;
10+
11+
public ModuleRunner() {
12+
try {
13+
String host = System.getenv("HTTP_SERVER_HOST");
14+
int port = Integer.parseInt(System.getenv("HTTP_SERVER_PORT"));
15+
httpContainer = new HttpContainer(host, port);
16+
} catch (Exception e) {
17+
logger.error("Unknown error", e);
18+
}
19+
}
20+
21+
@Override
22+
public void start() {
23+
httpContainer.start();
24+
}
25+
26+
@Override
27+
public void stop() {
28+
httpContainer.start();
29+
}
30+
}

0 commit comments

Comments
 (0)