Skip to content

Commit

Permalink
Add kotlin-vertx project. Fix java-vertx. Update Travis CI and docker…
Browse files Browse the repository at this point in the history
…-compose / main gradle build files configurations | Code was clean until manager requested to fuck it up (C) whatthecommit.com
  • Loading branch information
daggerok committed Jun 25, 2018
1 parent 02eab97 commit e9bb84a
Show file tree
Hide file tree
Showing 31 changed files with 1,107 additions and 77 deletions.
10 changes: 10 additions & 0 deletions .travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -75,6 +75,16 @@ script:
- ./mvnw clean deploy >/dev/null
- ./mvnw -Pdocs
- tree target/generated-docs
# kotlin-vertx
- cd ${e2e}
- yo jvm -n kotlinvertx -t kotlin-vertx
- cd kotlinvertx
- ./gradlew -S >/dev/null
- ./gradlew documentation >/dev/null
- tree target/generated-docs
- ./mvnw clean deploy >/dev/null
- ./mvnw -Pdocs
- tree target/generated-docs
# java-spring-boot
- cd ${e2e}
- yo jvm -n javaspringboot -t java-spring-boot
Expand Down
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ ___vertx web project___

* java 8 based Vert.x web project
* support fatjar
* support java (TODO: kotlin, js)
* support kotlin or java
* support maven
* support gradle
* docker / docker-compose support
Expand Down Expand Up @@ -298,7 +298,7 @@ ___java project___
- FindBugs maven / gradle plugins functionality
```./gradlew check```
```./mvnw verify site```
- Ascii documentation (asciidoctor gradle plugin)
- Ascii documentation (asciidoctor maven / gradle plugins functionality)
```./gradlew asciidoctor```
- Artifact deployment (local maven repositories)
```./gradlew publish```
Expand Down
1 change: 1 addition & 0 deletions generators/app/index.js
Original file line number Diff line number Diff line change
Expand Up @@ -29,6 +29,7 @@ module.exports = class extends Generator {
'java-ee-cdi-full-multi-project',
'java-ee-ejb-full-multi-project',
'kotlin',
'kotlin-vertx',
'kotlin-spring-boot',
'kotlin-spring-boot-1.x',
'kotlin-spring-cloud-function-web',
Expand Down
10 changes: 5 additions & 5 deletions generators/app/templates/_common/gradle/allure.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,22 +2,22 @@ allprojects {
apply plugin: 'io.qameta.allure'

dependencies {
testCompile("io.qameta.allure:allure-selenide:$allureVersion")
testCompile "io.qameta.allure:allure-selenide:$allureVersion"
}

allure {

useJUnit4 {
version = "$allureVersion"
version = project.allureVersion
}

useJUnit5 {
version = "$allureVersion"
version = project.allureVersion
}

version = "$allureVersion"
version = project.allureVersion
autoconfigure = true
allureJavaVersion = "$allureVersion"
allureJavaVersion = project.allureVersion
//reportDir = file("$rootDir/build/allure-report")
//resultsDir = file("$rootDir/build/allure-results")
downloadLink = "https://dl.bintray.com/qameta/generic/io/qameta/allure/allure/$allureVersion/allure-${allureVersion}.zip"
Expand Down
14 changes: 7 additions & 7 deletions generators/app/templates/_common/gradle/java.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,12 +9,12 @@ allprojects {

dependencies {
//// In java we trust...
//compile("io.vavr:vavr:$vavrVersion")
compileOnly("org.projectlombok:lombok:$lombokVersion")
testCompileOnly("org.projectlombok:lombok:$lombokVersion")
annotationProcessor("org.projectlombok:lombok:$lombokVersion")
testAnnotationProcessor("org.projectlombok:lombok:$lombokVersion")
//compile("org.slf4j:slf4j-api:$slf4jVersion")
//compile("ch.qos.logback:logback-classic:$logbackVersion")
//compile "io.vavr:vavr:$vavrVersion"
compileOnly "org.projectlombok:lombok:$lombokVersion"
testCompileOnly "org.projectlombok:lombok:$lombokVersion"
annotationProcessor "org.projectlombok:lombok:$lombokVersion"
testAnnotationProcessor "org.projectlombok:lombok:$lombokVersion"
//compile "org.slf4j:slf4j-api:$slf4jVersion"
//compile "ch.qos.logback:logback-classic:$logbackVersion"
}
}
10 changes: 5 additions & 5 deletions generators/app/templates/_common/gradle/jgiven.gradle
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
dependencies {
testCompile("com.tngtech.jgiven:jgiven-junit:$jgivenVersion")
testCompile("com.tngtech.jgiven:jgiven-junit5:$jgivenVersion")
testRuntime("com.tngtech.jgiven:jgiven-html5-report:$jgivenVersion")
//testRuntime("org.slf4j:slf4j-api:$slf4jVersion")
testCompile("ch.qos.logback:logback-classic:$logbackVersion")
testCompile "com.tngtech.jgiven:jgiven-junit:$jgivenVersion"
testCompile "com.tngtech.jgiven:jgiven-junit5:$jgivenVersion"
testRuntime "com.tngtech.jgiven:jgiven-html5-report:$jgivenVersion"
//testRuntime "org.slf4j:slf4j-api:$slf4jVersion"
testCompile "ch.qos.logback:logback-classic:$logbackVersion"
}

task jgivenTestReport(type: JavaExec, dependsOn: 'test') {
Expand Down
14 changes: 7 additions & 7 deletions generators/app/templates/_common/gradle/junit.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -2,17 +2,17 @@ allprojects {
// read more: https://docs.gradle.org/4.6/release-notes.html#junit-5-support

dependencies {
testImplementation("junit:junit:$junit4Version")
testImplementation("org.hamcrest:hamcrest-core:$hamcrestVersion")
testImplementation("org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion")
testRuntimeOnly("org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion")
//testCompileOnly('org.apiguardian:apiguardian-api:1.0.0')
testRuntimeOnly("org.junit.vintage:junit-vintage-engine:$junitJupiterVersion") {
testImplementation "junit:junit:$junit4Version"
testImplementation "org.hamcrest:hamcrest-core:$hamcrestVersion"
testImplementation "org.junit.jupiter:junit-jupiter-api:$junitJupiterVersion"
testRuntimeOnly "org.junit.jupiter:junit-jupiter-engine:$junitJupiterVersion"
testRuntimeOnly "org.junit.vintage:junit-vintage-engine:$junitJupiterVersion", {
because 'allows JUnit 3 and JUnit 4 tests to run'
}
testRuntime("org.junit.platform:junit-platform-launcher:$junitPlatformVersion") {
testRuntime "org.junit.platform:junit-platform-launcher:$junitPlatformVersion", {
because 'allows tests to run from IDEs that bundle older version of launcher'
}
//testCompileOnly 'org.apiguardian:apiguardian-api:1.0.0'
}

test {
Expand Down
10 changes: 5 additions & 5 deletions generators/app/templates/_common/gradle/kotlin.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -40,11 +40,11 @@ allprojects {
}

dependencies {
//compile("com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonKotlinVersion")
compile("org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion")
compile("org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion")
//compile "com.fasterxml.jackson.module:jackson-module-kotlin:$jacksonKotlinVersion"
compile "org.jetbrains.kotlin:kotlin-stdlib-jdk8:$kotlinVersion"
compile "org.jetbrains.kotlin:kotlin-reflect:$kotlinVersion"

testImplementation("org.jetbrains.kotlin:kotlin-test:$kotlinVersion")
testImplementation("org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion")
testImplementation "org.jetbrains.kotlin:kotlin-test:$kotlinVersion"
testImplementation "org.jetbrains.kotlin:kotlin-test-junit:$kotlinVersion"
}
}
2 changes: 1 addition & 1 deletion generators/app/templates/_common/gradle/publish.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -58,7 +58,7 @@ allprojects {
repositories {
maven {
url """$rootProject.buildDir/maven-publish/repos/${(
project.version.endsWith("SNAPSHOT") ? 'snapshots' : 'releases'
project.version.endsWith('SNAPSHOT') ? 'snapshots' : 'releases'
)}"""
}
}
Expand Down
8 changes: 4 additions & 4 deletions generators/app/templates/_common/gradle/selenide.gradle
Original file line number Diff line number Diff line change
@@ -1,15 +1,15 @@
dependencies {
testImplementation("com.codeborne:selenide:$selenideVersion") {
testImplementation "com.codeborne:selenide:$selenideVersion", {
exclude module: 'selenium-opera-driver'
exclude module: 'selenium-safari-driver'
exclude module: 'selenium-edge-driver'
exclude module: 'selenium-ie-driver'
because "we don't wanna use any of these..."
}
testImplementation("com.codeborne:phantomjsdriver:$phantomjsDriverVersion")
testImplementation "com.codeborne:phantomjsdriver:$phantomjsDriverVersion"
////these are must be included by selenide library as a transitive dependencies:
//testImplementation("org.seleniumhq.selenium:selenium-chrome-driver:$seleniumDriverVersion")
//testImplementation("org.seleniumhq.selenium:selenium-firefox-driver:$seleniumDriverVersion")
//testImplementation "org.seleniumhq.selenium:selenium-chrome-driver:$seleniumDriverVersion"
//testImplementation "org.seleniumhq.selenium:selenium-firefox-driver:$seleniumDriverVersion"
}

static def findAllSelenideSystemProps() {
Expand Down
36 changes: 18 additions & 18 deletions generators/app/templates/_common/gradle/spring-boot.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -10,31 +10,31 @@ compileJava.dependsOn(processResources)
dependencies {

// spring-boot
compile('org.springframework.boot:spring-boot-starter-webflux')
compile('org.springframework.boot:spring-boot-starter-actuator')
//runtime('org.springframework.boot:spring-boot-devtools')
compile 'org.springframework.boot:spring-boot-starter-webflux'
compile 'org.springframework.boot:spring-boot-starter-actuator'
//runtime 'org.springframework.boot:spring-boot-devtools'

//annotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
//testAnnotationProcessor('org.springframework.boot:spring-boot-configuration-processor')
//annotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'
//testAnnotationProcessor 'org.springframework.boot:spring-boot-configuration-processor'

//// JPA (+embedded)
//runtime('com.h2database:h2')
//compile('org.springframework.boot:spring-boot-starter-data-jpa')
//compile('org.springframework.boot:spring-boot-starter-data-rest')
//runtime 'com.h2database:h2'
//compile 'org.springframework.boot:spring-boot-starter-data-jpa'
//compile 'org.springframework.boot:spring-boot-starter-data-rest'

//// Mongo (+embedded)
//compile('org.springframework.boot:spring-boot-starter-data-mongodb-reactive')
//compile('de.flapdoodle.embed:de.flapdoodle.embed.mongo')
//compile 'org.springframework.boot:spring-boot-starter-data-mongodb-reactive'
//compile 'de.flapdoodle.embed:de.flapdoodle.embed.mongo'

//// Kafka (+embedded)
//compile('org.springframework.cloud:spring-cloud-stream')
//compile('org.springframework.cloud:spring-cloud-stream-binder-kafka')
//compile('org.springframework.kafka:spring-kafka')
//compile('org.springframework.kafka:spring-kafka-test')
//testImplementation('org.springframework.cloud:spring-cloud-stream-test-support')

testImplementation('org.springframework.boot:spring-boot-starter-test')
testImplementation('io.projectreactor:reactor-test')
//compile 'org.springframework.cloud:spring-cloud-stream'
//compile 'org.springframework.cloud:spring-cloud-stream-binder-kafka'
//compile 'org.springframework.kafka:spring-kafka'
//compile 'org.springframework.kafka:spring-kafka-test'
//testImplementation 'org.springframework.cloud:spring-cloud-stream-test-support'

testImplementation 'org.springframework.boot:spring-boot-starter-test'
testImplementation 'io.projectreactor:reactor-test'
}

dependencyManagement {
Expand Down
27 changes: 23 additions & 4 deletions generators/app/templates/java-vertx/.travis.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,23 +26,42 @@ before_script:
- source <(curl -s https://raw.githubusercontent.com/daggerok/bash-functions/master/main.bash)

script:
- bash gradlew >/dev/null 2>&1
- bash gradlew >/dev/null
- java -jar ./build/libs/*-all.jar
- wait_for 8080
- http :8080
- stop_any 8080
#
- bash gradlew clean installDist >/dev/null 2>&1
- bash gradlew clean installDist >/dev/null
- bash ./build/install/<%= projectDirectory %>/bin/<%= projectDirectory %>
- wait_for 8080
- http :8080
- stop_any 8080
#
- bash gradlew clean distZip >/dev/null 2>&1
- bash gradlew clean distZip >/dev/null
- unzip -o ./build/distributions/<%= projectDirectory %>-0.0.1.zip -d /tmp
- bash /tmp/<%= projectDirectory %>-0.0.1/bin/<%= projectDirectory %>
- wait_for 8080
- http :8080
- stop_any 8080
#
- bash gradlew clean build composeUp
- wait_for 8080
- http :8080
- stop_any 8080
- bash gradlew composeDown
#
- bash mvnw clean package >/dev/null 2>&1
- bash mvnw clean package >/dev/null
- java -jar target/*-all.jar
- wait_for 8080
- http :8080
- stop_any 8080
#
- bash mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:up -P docker
- wait_for 8080
- sleep 10
- http :8080
- stop_any 8080
- bash mvnw com.dkanejs.maven.plugins:docker-compose-maven-plugin:1.0.1:down -P docker

before_deploy: ./mvnw -Pdocs
Expand Down
20 changes: 12 additions & 8 deletions generators/app/templates/java-vertx/docker-compose-gradle.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
version: "2.1"
version: '2.1'

services:

gradle-<%= projectDirectory %>-app:
build:
context: .
dockerfile: gradle/Dockerfile
volumes: ["gradle-<%= projectDirectory %>-app-data:/home/appuser"]
networks: [backing-services]
#ports: ["8080:8080"]
#restart: unless-stopped
#mem_limit: 209715200 # container limit: 200Mb (200 * 1024 * 1024)
volumes: ['gradle-<%= projectDirectory %>-app-data:/home/appuser']
ports: ['8080:8080']
restart: unless-stopped
# container limit: 200Mb (200 * 1024 * 1024)
mem_limit: 209715200
networks:
public-network:
aliases:
- app

volumes:
gradle-<%= projectDirectory %>-app-data: {}
gradle-<%= projectDirectory %>-app-data:

networks:
backing-services:
public-network:
driver: bridge
20 changes: 12 additions & 8 deletions generators/app/templates/java-vertx/docker-compose-maven.yaml
Original file line number Diff line number Diff line change
@@ -1,20 +1,24 @@
version: "2.1"
version: '2.1'

services:

maven-<%= projectDirectory %>-app:
build:
context: .
dockerfile: .mvn/Dockerfile
volumes: ["maven-<%= projectDirectory %>-app-data:/home/appuser"]
networks: [backing-services]
#ports: ["8080:8080"]
#restart: unless-stopped
#mem_limit: 209715200 # container limit: 200Mb (200 * 1024 * 1024)
volumes: ['maven-<%= projectDirectory %>-app-data:/home/appuser']
ports: ['8080:8080']
restart: unless-stopped
# container limit: 200Mb (200 * 1024 * 1024)
mem_limit: 209715200
networks:
public-network:
aliases:
- app

volumes:
maven-<%= projectDirectory %>-app-data: {}
maven-<%= projectDirectory %>-app-data:

networks:
backing-services:
public-network:
driver: bridge
1 change: 0 additions & 1 deletion generators/app/templates/java-vertx/gradle/java.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ allprojects {
defaultTasks 'clean', 'build'

dependencies {
compile("io.vertx:vertx-core:$vertxVersion")
// In java we trust...
compile("io.vavr:vavr:$vavrVersion")
compile("org.slf4j:slf4j-api:$slf4jVersion")
Expand Down
4 changes: 4 additions & 0 deletions generators/app/templates/java-vertx/gradle/main.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -4,3 +4,7 @@ apply plugin: 'com.github.johnrengelman.shadow'
mainClassName = 'daggerok.App'
shadowJar.mustRunAfter jar
defaultTasks 'clean', 'build', 'installDist', 'distZip', 'publish'

dependencies {
compile "io.vertx:vertx-core:$vertxVersion"
}
32 changes: 32 additions & 0 deletions generators/app/templates/kotlin-vertx/.mvn/Dockerfile
Original file line number Diff line number Diff line change
@@ -0,0 +1,32 @@
FROM openjdk:8u151-jre-alpine3.7
MAINTAINER Maksim Kostromin https://github.com/daggerok
RUN apk --no-cache --update add busybox-suid bash curl unzip sudo openssh-client shadow wget \
&& adduser -h /home/appuser -s /bin/bash -D -u 1025 appuser wheel \
&& echo "appuser ALL=(ALL) NOPASSWD: ALL" >> /etc/sudoers \
&& sed -i "s/.*requiretty$/Defaults !requiretty/" /etc/sudoers \
&& wget --no-cookies \
--no-check-certificate \
--header "Cookie: oraclelicense=accept-securebackup-cookie" \
"http://download.oracle.com/otn-pub/java/jce/8/jce_policy-8.zip" \
-O /tmp/jce_policy-8.zip \
&& unzip -o /tmp/jce_policy-8.zip -d /tmp \
&& mv -f ${JAVA_HOME}/lib/security ${JAVA_HOME}/lib/backup-security \
&& mv -f /tmp/UnlimitedJCEPolicyJDK8 ${JAVA_HOME}/lib/security \
&& apk del busybox-suid unzip openssh-client shadow wget \
&& rm -rf /var/cache/apk/* /tmp/*
USER appuser
WORKDIR /home/appuser
VOLUME /home/appuser
ARG JAVA_OPTS_ARGS="\
-Djava.net.preferIPv4Stack=true \
-XX:+UnlockExperimentalVMOptions \
-XX:+UseCGroupMemoryLimitForHeap \
-XshowSettings:vm "
ENV JAVA_OPTS="${JAVA_OPTS} ${JAVA_OPTS_ARGS}"
ENTRYPOINT java ${JAVA_OPTS} -jar ./app.jar
CMD /bin/bash
#EXPOSE 8080
#HEALTHCHECK --timeout=1s \
# --retries=66 \
# CMD curl -f http://127.0.0.1:8080/actuator/health || exit 1
COPY --chown=appuser ./target/*-all.jar ./app.jar
Loading

0 comments on commit e9bb84a

Please sign in to comment.