forked from eugenp/tutorials
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* moving jmh into libraries module * refactoring jmh * Update pom.xml * manual algorightm * with BM result * fix for space issue * Fixed indentation * change as per suggestion * vavr either * adding unit test and othe rutilities * adding concurrent module * concurrent package description * concurrent package description * Update EitherUnitTest.java * introducing lambda expression * jooby project * jooby project
- Loading branch information
1 parent
5c1bf55
commit 244a678
Showing
12 changed files
with
349 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -21,3 +21,4 @@ public void start() { | |
} | ||
} | ||
} | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,2 @@ | ||
#application.secret = 2o128940921eo298e21 | ||
#db = /url/to/the/datastore |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,42 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<configuration scan="true" scanPeriod="15 seconds" debug="false"> | ||
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> | ||
<encoder> | ||
<pattern>[%d{ISO8601}]-[%thread] %-5level %logger - %msg%n</pattern> | ||
</encoder> | ||
</appender> | ||
|
||
<appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
<file>log/jooby.log</file> | ||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
<fileNamePattern>log/jooby.%d{yyyy-MM-dd}.log</fileNamePattern> | ||
<totalSizeCap>1mb</totalSizeCap> | ||
<maxHistory>7</maxHistory> | ||
</rollingPolicy> | ||
|
||
<encoder> | ||
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger - %msg%n</pattern> | ||
</encoder> | ||
</appender> | ||
|
||
<appender name="ACCESS" class="ch.qos.logback.core.rolling.RollingFileAppender"> | ||
<file>log/access.log</file> | ||
<rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy"> | ||
<fileNamePattern>log/access.%d{yyyy-MM-dd}.log</fileNamePattern> | ||
<totalSizeCap>1mb</totalSizeCap> | ||
<maxHistory>7</maxHistory> | ||
</rollingPolicy> | ||
|
||
<encoder> | ||
<pattern>%msg%n</pattern> | ||
</encoder> | ||
</appender> | ||
|
||
<logger name="org.jooby.RequestLogger" additivity="false"> | ||
<appender-ref ref="ACCESS" /> | ||
</logger> | ||
|
||
<root level="INFO"> | ||
<appender-ref ref="STDOUT" /> | ||
</root> | ||
</configuration> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,56 @@ | ||
<?xml version="1.0" encoding="UTF-8"?> | ||
<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> | ||
<artifactId>jooby</artifactId> | ||
<groupId>com.baeldung.jooby</groupId> | ||
<version>1.0</version> | ||
<name>jooby</name> | ||
|
||
<parent> | ||
<groupId>org.jooby</groupId> | ||
<artifactId>modules</artifactId> | ||
<version>1.1.3</version> | ||
</parent> | ||
|
||
<properties> | ||
<jooby.version>1.1.3</jooby.version> | ||
<application.class>com.baeldung.jooby.App</application.class> | ||
</properties> | ||
|
||
<dependencies> | ||
<dependency> | ||
<groupId>org.jooby</groupId> | ||
<artifactId>jooby-netty</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>org.jooby</groupId> | ||
<artifactId>jooby-jedis</artifactId> | ||
<version>1.1.3</version> | ||
</dependency> | ||
<dependency> | ||
<groupId>ch.qos.logback</groupId> | ||
<artifactId>logback-classic</artifactId> | ||
</dependency> | ||
<dependency> | ||
<groupId>junit</groupId> | ||
<artifactId>junit</artifactId> | ||
<scope>test</scope> | ||
</dependency> | ||
<dependency> | ||
<groupId>io.rest-assured</groupId> | ||
<artifactId>rest-assured</artifactId> | ||
<scope>test</scope> | ||
</dependency> | ||
</dependencies> | ||
|
||
<build> | ||
<plugins> | ||
<plugin> | ||
<groupId>org.apache.maven.plugins</groupId> | ||
<artifactId>maven-shade-plugin</artifactId> | ||
</plugin> | ||
</plugins> | ||
</build> | ||
|
||
</project> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,17 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<title>Insert title here</title> | ||
</head> | ||
<body> | ||
<form enctype="application/x-www-form-urlencoded" action="/submitForm" method="post"> | ||
<input name="id" /> | ||
<input name="name" /> | ||
<input name="email" /> | ||
<input name="phone" /> | ||
<input name="address" /> | ||
<input type="submit" value="Submit"/> | ||
</form> | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,10 @@ | ||
<!DOCTYPE html> | ||
<html> | ||
<head> | ||
<meta charset="UTF-8"> | ||
<title>Insert title here</title> | ||
</head> | ||
<body> | ||
i m welcomed | ||
</body> | ||
</html> |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,41 @@ | ||
# Name of application (make sure it has no spaces) | ||
name: "${project.artifactId}" | ||
|
||
# Display name of application (can have spaces) | ||
display_name: "${project.name}" | ||
|
||
# Type of launcher (CONSOLE or DAEMON) | ||
type: DAEMON | ||
|
||
# Java class to run | ||
main_class: "${application.class}" | ||
|
||
domain: "${project.groupId}" | ||
|
||
short_description: "${project.artifactId}" | ||
|
||
# Platform launchers to generate (WINDOWS, LINUX, MAC_OSX) | ||
# Linux launcher is suitable for Bourne shells (e.g. Linux/BSD) | ||
platforms: [ LINUX ] | ||
|
||
# Working directory for app | ||
# RETAIN will not change the working directory | ||
# APP_HOME will change the working directory to the home of the app | ||
# (where it was intalled) before running the main class | ||
working_dir_mode: RETAIN | ||
|
||
# Minimum version of java required (system will be searched for acceptable jvm) | ||
min_java_version: "1.8" | ||
|
||
# Min/max fixed memory (measured in MB) | ||
min_java_memory: 512 | ||
max_java_memory: 512 | ||
|
||
# Min/max memory by percentage of system | ||
#min_java_memory_pct: 10 | ||
#max_java_memory_pct: 20 | ||
|
||
# Try to create a symbolic link to java executable in <app_home>/run with | ||
# the name of "<app_name>-java" so that commands like "ps" will make it | ||
# easier to find your app | ||
symlink_java: true |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,95 @@ | ||
package com.baeldung.jooby; | ||
|
||
import org.jooby.Jooby; | ||
import org.jooby.Mutant; | ||
import org.jooby.Session; | ||
import org.jooby.jedis.Redis; | ||
import org.jooby.jedis.RedisSessionStore; | ||
|
||
import com.baeldung.jooby.bean.Employee; | ||
|
||
public class App extends Jooby { | ||
|
||
{ | ||
port(8080); | ||
securePort(8443); | ||
} | ||
|
||
{ | ||
get("/", () -> "Hello World!"); | ||
} | ||
|
||
{ | ||
get("/user/{id}", req -> "Hello user : " + req.param("id").value()); | ||
get("/user/:id", req -> "Hello user: " + req.param("id").value()); | ||
get("/uid:{id}", req -> "Hello User with id : uid" + req.param("id").value()); | ||
} | ||
|
||
{ | ||
onStart(() -> { | ||
System.out.println("starting app"); | ||
}); | ||
|
||
onStop(() -> { | ||
System.out.println("stopping app"); | ||
}); | ||
|
||
onStarted(() -> { | ||
System.out.println("app started"); | ||
}); | ||
} | ||
|
||
{ | ||
get("/login", () -> "Hello from Baeldung"); | ||
} | ||
|
||
{ | ||
post("/save", req -> { | ||
Mutant token = req.param("token"); | ||
return token.intValue(); | ||
}); | ||
} | ||
|
||
{ | ||
{ | ||
assets("/employee", "form.html"); | ||
} | ||
|
||
post("/submitForm", req -> { | ||
Employee employee = req.params(Employee.class); | ||
// TODO | ||
return "empoyee data saved successfullly"; | ||
}); | ||
} | ||
|
||
{ | ||
get("/filter", (req, resp, chain) -> { | ||
// TODO | ||
// resp.send(...); | ||
chain.next(req, resp); | ||
}); | ||
get("/filter", (req, resp) -> { | ||
resp.send("filter response"); | ||
}); | ||
} | ||
|
||
{ | ||
// cookieSession(); | ||
|
||
// use(new Redis()); | ||
// | ||
// session(RedisSessionStore.class); | ||
|
||
get("/session", req -> { | ||
Session session = req.session(); | ||
session.set("token", "value"); | ||
return session.get("token").value(); | ||
}); | ||
} | ||
|
||
public static void main(final String[] args) { | ||
|
||
run(App::new, args); | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,20 @@ | ||
package com.baeldung.jooby.bean; | ||
|
||
public class Employee { | ||
|
||
String id; | ||
String name; | ||
String email; | ||
String phone; | ||
String address; | ||
|
||
public Employee(String id, String name, String email, String phone, String address) { | ||
super(); | ||
this.id = id; | ||
this.name = name; | ||
this.email = email; | ||
this.phone = phone; | ||
this.address = address; | ||
} | ||
|
||
} |
22 changes: 22 additions & 0 deletions
22
jooby/src/main/java/com/baeldung/jooby/mvc/GetController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
package com.baeldung.jooby.mvc; | ||
|
||
import org.jooby.Result; | ||
import org.jooby.Results; | ||
import org.jooby.mvc.GET; | ||
import org.jooby.mvc.Path; | ||
|
||
@Path("/hello") | ||
public class GetController { | ||
|
||
@GET | ||
public String hello() { | ||
return "Hello Baeldung"; | ||
} | ||
|
||
@GET | ||
@Path("/home") | ||
public Result home() { | ||
return Results.html("welcome").put("model", new Object()); | ||
} | ||
|
||
} |
14 changes: 14 additions & 0 deletions
14
jooby/src/main/java/com/baeldung/jooby/mvc/PostController.java
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,14 @@ | ||
package com.baeldung.jooby.mvc; | ||
|
||
import org.jooby.mvc.POST; | ||
import org.jooby.mvc.Path; | ||
|
||
@Path("/submit") | ||
public class PostController { | ||
|
||
@POST | ||
public String hello() { | ||
return "Submit Baeldung"; | ||
} | ||
|
||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,29 @@ | ||
package com.baeldung.jooby; | ||
|
||
import static io.restassured.RestAssured.get; | ||
import static org.hamcrest.Matchers.equalTo; | ||
import static org.junit.Assert.assertEquals; | ||
|
||
import org.jooby.test.JoobyRule; | ||
import org.jooby.test.MockRouter; | ||
import org.junit.ClassRule; | ||
import org.junit.Test; | ||
|
||
public class AppTest { | ||
|
||
@ClassRule | ||
public static JoobyRule app = new JoobyRule(new App()); | ||
|
||
@Test | ||
public void given_defaultUrl_expect_fixedString() { | ||
get("/").then().assertThat().body(equalTo("Hello World!")).statusCode(200) | ||
.contentType("text/html;charset=UTF-8"); | ||
} | ||
|
||
@Test | ||
public void given_defaultUrl_with_mockrouter_expect_fixedString() throws Throwable { | ||
String result = new MockRouter(new App()).get("/"); | ||
assertEquals("Hello World!", result); | ||
} | ||
|
||
} |