Skip to content

Commit 85bafea

Browse files
committed
- fix kotlin Rpc code generation
1 parent c401406 commit 85bafea

3 files changed

Lines changed: 49 additions & 4 deletions

File tree

modules/jooby-apt/src/main/java/io/jooby/internal/apt/MvcRouter.java

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -305,7 +305,9 @@ private String generateJsonRpcService(boolean kt) {
305305
buffer.append(statement("package ", packageName, semicolon(kt)));
306306
buffer.append(System.lineSeparator());
307307

308-
buffer.append(statement("@io.jooby.annotation.Generated(", generateTypeName, clazz(kt), ")"));
308+
buffer.append(
309+
statement(
310+
"@io.jooby.annotation.Generated(", generateTypeName, kt ? "::class" : ".class", ")"));
309311

310312
if (kt) {
311313
buffer.append(
@@ -328,15 +330,18 @@ private String generateJsonRpcService(boolean kt) {
328330

329331
buffer.append(
330332
statement(
331-
indent(2), "constructor(provider: javax.inject.Provider<", generateTypeName, ">) {"));
333+
indent(2),
334+
"constructor(provider: io.jooby.SneakyThrows.Supplier<",
335+
generateTypeName,
336+
">) {"));
332337
buffer.append(statement(indent(4), "setup { ctx -> provider.get() }"));
333338
buffer.append(statement(indent(2), "}"));
334339
buffer.append(System.lineSeparator());
335340

336341
buffer.append(
337342
statement(
338343
indent(2),
339-
"constructor(provider: java.util.function.Function<Class<",
344+
"constructor(provider: io.jooby.SneakyThrows.Function<Class<",
340345
generateTypeName,
341346
">, ",
342347
generateTypeName,

tests/src/test/java/io/jooby/i3868/MovieService.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,5 @@ public List<Movie> search(String title, int year) {
3838
return database.stream().filter(m -> m.title().contains(title) && (m.year() == year)).toList();
3939
}
4040

41-
public void deleteMovie(@PathParam int id) {}
41+
public void deleteMovie(int id) {}
4242
}
Lines changed: 40 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,40 @@
1+
/*
2+
* Jooby https://jooby.io
3+
* Apache License Version 2.0 https://jooby.io/LICENSE.txt
4+
* Copyright 2014 Edgar Espina
5+
*/
6+
package i3868
7+
8+
import io.jooby.annotation.*
9+
import io.jooby.exception.NotFoundException
10+
import io.jooby.i3863.Movie
11+
import java.util.function.Supplier
12+
13+
@JsonRpc("movies")
14+
@Path("/api/movies")
15+
class KtMovieService {
16+
private val database: List<Movie> =
17+
listOf(Movie(1, "The Godfather", 1972), Movie(2, "Pulp Fiction", 1994))
18+
19+
/** Procedure: movies.create Takes a single complex object. */
20+
@POST
21+
@Trpc
22+
fun create(movie: Movie): Movie {
23+
// In a real app, save to DB. For now, just return it.
24+
return movie
25+
}
26+
27+
fun getById(id: Int): Movie {
28+
return database
29+
.stream()
30+
.filter { m: Movie -> m.id == id }
31+
.findFirst()
32+
.orElseThrow<NotFoundException?>(Supplier { NotFoundException("Movie not found: " + id) })
33+
}
34+
35+
fun search(title: String, year: Int): List<Movie> {
36+
return database.stream().filter { m -> m.title.contains(title) && (m.year == year) }.toList()
37+
}
38+
39+
fun deleteMovie(id: Int) {}
40+
}

0 commit comments

Comments
 (0)