Merge branch 'master' into bael-16656

This commit is contained in:
Josh Cummings
2019-10-26 15:37:05 -06:00
committed by GitHub
parent db85c8f275
commit 0be2175c89
20539 changed files with 1643630 additions and 0 deletions
+41
View File
@@ -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
@@ -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);
}
}
@@ -0,0 +1,16 @@
package com.baeldung.jooby.bean;
public class Employee {
String id;
String name;
String email;
public Employee(String id, String name, String email) {
super();
this.id = id;
this.name = name;
this.email = email;
}
}
@@ -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());
}
}
@@ -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";
}
}
+13
View File
@@ -0,0 +1,13 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n
</pattern>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="STDOUT" />
</root>
</configuration>
@@ -0,0 +1,21 @@
package com.baeldung.jooby;
import static io.restassured.RestAssured.get;
import static org.hamcrest.Matchers.equalTo;
import org.jooby.test.JoobyRule;
import org.junit.ClassRule;
import org.junit.Test;
public class AppLiveTest {
@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");
}
}
@@ -0,0 +1,16 @@
package com.baeldung.jooby;
import static org.junit.Assert.assertEquals;
import org.jooby.test.MockRouter;
import org.junit.Test;
public class AppUnitTest {
@Test
public void given_defaultUrl_with_mockrouter_expect_fixedString() throws Throwable {
String result = new MockRouter(new App()).get("/");
assertEquals("Hello World!", result);
}
}