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);
+ }
+}