Skip to content

Commit 3f782c2

Browse files
committed
initial commit \
0 parents  commit 3f782c2

31 files changed

+916
-0
lines changed

.idea/.gitignore

Lines changed: 8 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/azureSettings.xml

Lines changed: 6 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/compiler.xml

Lines changed: 13 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/jarRepositories.xml

Lines changed: 20 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

.idea/misc.xml

Lines changed: 14 additions & 0 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

http-server.iml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<module type="JAVA_MODULE" version="4" />

pom.xml

Lines changed: 56 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,56 @@
1+
<?xml version="1.0" encoding="UTF-8"?>
2+
<project xmlns="http://maven.apache.org/POM/4.0.0"
3+
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
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+
<groupId>dev.hdprojects</groupId>
8+
<artifactId>http-server</artifactId>
9+
<version>1.0-SNAPSHOT</version>
10+
11+
12+
<properties>
13+
<maven.compiler.source>1.8</maven.compiler.source>
14+
<maven.compiler.target>1.8</maven.compiler.target>
15+
</properties>
16+
17+
<!-- Dependencies -->
18+
<dependencies>
19+
<dependency>
20+
<groupId>com.fasterxml.jackson.core</groupId>
21+
<artifactId>jackson-core</artifactId>
22+
<version>2.9.9</version>
23+
</dependency>
24+
<dependency>
25+
<groupId>com.fasterxml.jackson.core</groupId>
26+
<artifactId>jackson-databind</artifactId>
27+
<version>2.9.9</version>
28+
</dependency>
29+
<dependency>
30+
<groupId>org.jetbrains</groupId>
31+
<artifactId>annotations</artifactId>
32+
<version>RELEASE</version>
33+
<scope>compile</scope>
34+
</dependency>
35+
<!-- LOGGING -->
36+
<dependency>
37+
<groupId>org.slf4j</groupId>
38+
<artifactId>slf4j-api</artifactId>
39+
<version>1.7.5</version>
40+
</dependency>
41+
<dependency>
42+
<groupId>ch.qos.logback</groupId>
43+
<artifactId>logback-classic</artifactId>
44+
<version>1.2.3</version>
45+
</dependency>
46+
47+
<!-- JUNIT -->
48+
<dependency>
49+
<groupId>org.junit.jupiter</groupId>
50+
<artifactId>junit-jupiter</artifactId>
51+
<version>RELEASE</version>
52+
<scope>test</scope>
53+
</dependency>
54+
</dependencies>
55+
56+
</project>

request.txt

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
GET / HTTP/1.1
2+
Host: localhost
3+
Connection: keep-alive
4+
Cache-Control: max-age=0
5+
Upgrade-Insecure-Requests: 1
6+
User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/86.0.4240.30 Safari/537.36
7+
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,image/avif,image/webp,image/apng,*/*;q=0.8,application/signed-exchange;v=b3;q=0.9
8+
Sec-Fetch-Site: none
9+
Sec-Fetch-Mode: navigate
10+
Sec-Fetch-User: ?1
11+
Sec-Fetch-Dest: document
12+
Accept-Encoding: gzip, deflate, br
13+
Accept-Language: en-US,en;q=0.9
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
package dev.hdprojects.HttpServer;
2+
3+
import dev.hdprojects.HttpServer.config.Configuration;
4+
import dev.hdprojects.HttpServer.config.ConfigurationManager;
5+
import dev.hdprojects.HttpServer.core.ServerListenerThread;
6+
import org.slf4j.Logger;
7+
import org.slf4j.LoggerFactory;
8+
9+
import java.io.IOException;
10+
11+
/**
12+
* Driver class for the HTTP Server
13+
*/
14+
public class HttpServer {
15+
16+
private final static Logger LOGGER = LoggerFactory.getLogger(HttpServer.class);
17+
18+
public static void main(String[] args){
19+
20+
LOGGER.info("Server Starting ... ");
21+
22+
ConfigurationManager.getInstance().loadConfigurationFile("src/main/resources/http.json");
23+
24+
Configuration conf = ConfigurationManager.getInstance().getCurrentConfiguration();
25+
26+
LOGGER.info("Using port: " + conf.getPort());
27+
LOGGER.info("Using webroot: " + conf.getWebroot());
28+
29+
ServerListenerThread serverListenerThread = null;
30+
try {
31+
serverListenerThread = new ServerListenerThread(conf.getPort(), conf.getWebroot());
32+
serverListenerThread.start();
33+
} catch (IOException e) {
34+
e.printStackTrace();
35+
// TODO Handle later
36+
}
37+
38+
39+
}
40+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
package dev.hdprojects.HttpServer.config;
2+
3+
public class Configuration {
4+
5+
private int port;
6+
private String webroot;
7+
private String[] css;
8+
private String[] js;
9+
10+
public String[] getCss() {
11+
return css;
12+
}
13+
14+
public void setCss(String[] css) {
15+
this.css = css;
16+
}
17+
18+
public String[] getJs() {
19+
return js;
20+
}
21+
22+
public void setJs(String[] js) {
23+
this.js = js;
24+
}
25+
26+
public int getPort() {
27+
return port;
28+
}
29+
30+
public void setPort(int port) {
31+
this.port = port;
32+
}
33+
34+
public String getWebroot() {
35+
return webroot;
36+
}
37+
38+
public void setWebroot(String webroot) {
39+
this.webroot = webroot;
40+
}
41+
}

0 commit comments

Comments
 (0)