Skip to content

Commit

Permalink
fix: Add WireMock Stub Generator
Browse files Browse the repository at this point in the history
  • Loading branch information
lukasz-gryzbon committed Apr 1, 2023
1 parent 7614a20 commit 61798c8
Show file tree
Hide file tree
Showing 3 changed files with 39 additions and 6 deletions.
35 changes: 34 additions & 1 deletion service/build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,10 @@ plugins {
id("signing")
id("jacoco")
id("com.palantir.git-version")
id("kotlin-kapt")
}


//////////////////////////
// componentTest settings
//////////////////////////
Expand Down Expand Up @@ -72,6 +74,11 @@ dependencies {
implementation("org.jetbrains.kotlin:kotlin-reflect")
implementation("org.jetbrains.kotlin:kotlin-stdlib-jdk8")

// WireMockStubGenerator
kapt("io.github.lsd-consulting:spring-wiremock-stub-generator:2.0.3")
compileOnly("io.github.lsd-consulting:spring-wiremock-stub-generator:2.0.3")
compileOnly("com.github.tomakehurst:wiremock:2.27.2")

implementation("com.fasterxml.jackson.module:jackson-module-kotlin:2.14.2")
implementation("org.apache.commons:commons-collections4:4.4")
implementation("io.pebbletemplates:pebble:3.2.0")
Expand Down Expand Up @@ -112,6 +119,33 @@ dependencies {
componentTestImplementation("com.approvaltests:approvaltests:12.4.1")
}

//////////////////////////
// WireMockStubGenerator
//////////////////////////

val compileJava = project.tasks.named("compileJava").get() as JavaCompile
tasks.register<JavaCompile>("compileStubs") {
classpath = compileJava.classpath
source = project.layout.buildDirectory.dir("generated-stub-sources").get().asFileTree
val stubsClassesDir = project.buildDir.resolve("generated-stub-classes")
destinationDirectory.set(stubsClassesDir)
}
compileJava.finalizedBy(tasks.getByName("compileStubs"))

val compileJavaStubs = project.tasks.named("compileStubs").get() as JavaCompile
tasks.register<Jar>("stubsJar") {
description = "Java Wiremock stubs JAR"
group = "Verification"
archiveBaseName.set(project.provider { project.name })
archiveClassifier.set("wiremock-stubs")
from(compileJavaStubs.destinationDirectory)
dependsOn(compileJavaStubs)
project.artifacts {
add("archives", tasks.getByName("stubsJar"))
}
}
compileJavaStubs.finalizedBy(tasks.getByName("stubsJar"))

//////////////////////////
// Jacoco
//////////////////////////
Expand Down Expand Up @@ -196,7 +230,6 @@ publishing {
credentials(PasswordCredentials::class)
}
}

}
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,16 +2,16 @@ package com.lsdconsulting.generatorui.controller

import com.lsdconsulting.generatorui.config.logger.log
import com.lsdconsulting.generatorui.service.LsdGenerator
import org.springframework.stereotype.Controller
import io.lsdconsulting.stub.annotation.GenerateWireMockStub
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.PathVariable
import org.springframework.web.bind.annotation.ResponseBody
import org.springframework.web.bind.annotation.RestController

@Controller
@GenerateWireMockStub
@RestController
class LsdController(private val lsdGenerator: LsdGenerator) {

@GetMapping("/lsd/{traceId}")
@ResponseBody
fun find(@PathVariable traceId: String): String {
log().info("Received lsd request for traceId={}", traceId)
return lsdGenerator.captureInteractionsFromDatabase(traceId)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ class SanitiserFilter : Filter {
override fun getArgumentNames(): List<String>? = null

private fun sanitise(input: String?): String =
input?.strip()
input?.trim()
?.replace("<\\$.*?>".toRegex(), "")
?: ""
}

0 comments on commit 61798c8

Please sign in to comment.