diff --git a/.gitignore b/.gitignore index 08a55c0..f8b92c3 100644 --- a/.gitignore +++ b/.gitignore @@ -1 +1,2 @@ .gradle +build diff --git a/.idea/.gitignore b/.idea/.gitignore new file mode 100644 index 0000000..26d3352 --- /dev/null +++ b/.idea/.gitignore @@ -0,0 +1,3 @@ +# Default ignored files +/shelf/ +/workspace.xml diff --git a/.idea/compiler.xml b/.idea/compiler.xml new file mode 100644 index 0000000..61a9130 --- /dev/null +++ b/.idea/compiler.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/.idea/encodings.xml b/.idea/encodings.xml new file mode 100644 index 0000000..15a15b2 --- /dev/null +++ b/.idea/encodings.xml @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/.idea/gradle.xml b/.idea/gradle.xml new file mode 100644 index 0000000..310e0f2 --- /dev/null +++ b/.idea/gradle.xml @@ -0,0 +1,17 @@ + + + + + + \ No newline at end of file diff --git a/.idea/jarRepositories.xml b/.idea/jarRepositories.xml new file mode 100644 index 0000000..fdc392f --- /dev/null +++ b/.idea/jarRepositories.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/misc.xml b/.idea/misc.xml new file mode 100644 index 0000000..b0051c8 --- /dev/null +++ b/.idea/misc.xml @@ -0,0 +1,5 @@ + + + + + \ No newline at end of file diff --git a/.idea/vcs.xml b/.idea/vcs.xml new file mode 100644 index 0000000..35eb1dd --- /dev/null +++ b/.idea/vcs.xml @@ -0,0 +1,6 @@ + + + + + + \ No newline at end of file diff --git a/build.gradle b/build.gradle new file mode 100644 index 0000000..38fce92 --- /dev/null +++ b/build.gradle @@ -0,0 +1,25 @@ +apply plugin: 'java' + +repositories { + mavenCentral() +} + +configurations { + // configuration that holds jars to include in the jar + extraLibs +} + +dependencies { + extraLibs group: 'org.takes', name: 'takes', version: '1.19' + extraLibs group: 'javax.json', name: 'javax.json-api', version: '1.1.4' + extraLibs group: 'org.glassfish', name: 'javax.json', version: '1.1.4' + + + configurations.compile.extendsFrom(configurations.extraLibs) +} + +jar { + from { + configurations.extraLibs.collect { it.isDirectory() ? it : zipTree(it) } + } +} \ No newline at end of file diff --git a/src/main/java/com/rusefi/Hello.java b/src/main/java/com/rusefi/Hello.java new file mode 100644 index 0000000..31a5163 --- /dev/null +++ b/src/main/java/com/rusefi/Hello.java @@ -0,0 +1,37 @@ +package com.rusefi; + +import org.takes.Take; +import org.takes.facets.fork.FkRegex; +import org.takes.facets.fork.TkFork; +import org.takes.http.*; +import org.takes.rs.RsJson; + +import javax.json.Json; +import javax.json.JsonObjectBuilder; +import java.io.IOException; +import java.util.concurrent.atomic.AtomicInteger; + +public class Hello { + + + public static void main(String[] args) throws IOException { + AtomicInteger counter = new AtomicInteger(); + + int httpPort = 443; + System.out.println("hello on port " + 443); + + + Take forkTake = new TkFork( + new FkRegex("/", "hello takes"), + new FkRegex("/counter", (Take) req -> { + JsonObjectBuilder applicationObject = Json.createObjectBuilder(); + applicationObject.add("counter", counter.incrementAndGet()); + return new RsJson(applicationObject.build()); + }) + ); + + // yes, I start insecure http on port 443, that's the place + Front frontEnd = new FtBasic(new BkParallel(new BkSafe(new BkBasic(forkTake)), 4), httpPort); + frontEnd.start(Exit.NEVER); + } +}