Skip to content

Commit d9ff775

Browse files
authored
Merge branch 'master' into loomClient
2 parents 63e3fe4 + 42e5468 commit d9ff775

File tree

34 files changed

+127
-69
lines changed

34 files changed

+127
-69
lines changed

README.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -184,7 +184,7 @@ public class WidgetController$Route implements HttpFeature {
184184
private void _getById(ServerRequest req, ServerResponse res) throws Exception {
185185
res.status(OK_200);
186186
var pathParams = req.path().pathParameters();
187-
var id = asInt(pathParams.first("id").get());
187+
var id = asInt(pathParams.contains("id") ? pathParams.get("id") : null);
188188
var result = controller.getById(id);
189189
res.send(result);
190190
}
@@ -263,7 +263,7 @@ public class WidgetController$Route implements HttpFeature {
263263
private void _getById(ServerRequest req, ServerResponse res) throws Exception {
264264
res.status(OK_200);
265265
var pathParams = req.path().pathParameters();
266-
var id = asInt(pathParams.first("id").get());
266+
var id = asInt(pathParams.contains("id") ? pathParams.get("id") : null);
267267
var result = controller.getById(id);
268268
res.headers().contentType(MediaTypes.APPLICATION_JSON);
269269
//jsonb has a special accommodation for helidon to improve performance

htmx-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.avaje</groupId>
88
<artifactId>avaje-http-parent</artifactId>
9-
<version>2.8-RC1</version>
9+
<version>2.8-RC3</version>
1010
</parent>
1111

1212
<artifactId>avaje-htmx-api</artifactId>

htmx-nima-jstache/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.avaje</groupId>
88
<artifactId>avaje-http-parent</artifactId>
9-
<version>2.8-RC1</version>
9+
<version>2.8-RC3</version>
1010
</parent>
1111

1212
<artifactId>avaje-htmx-nima-jstache</artifactId>
@@ -39,7 +39,7 @@
3939
<dependency>
4040
<groupId>io.avaje</groupId>
4141
<artifactId>avaje-inject</artifactId>
42-
<version>10.3</version>
42+
<version>10.4</version>
4343
<scope>provided</scope>
4444
<optional>true</optional>
4545
</dependency>

htmx-nima/pom.xml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,7 @@
66
<parent>
77
<groupId>io.avaje</groupId>
88
<artifactId>avaje-http-parent</artifactId>
9-
<version>2.8-RC1</version>
9+
<version>2.8-RC3</version>
1010
</parent>
1111

1212
<artifactId>avaje-htmx-nima</artifactId>
@@ -21,12 +21,12 @@
2121
<dependency>
2222
<groupId>io.avaje</groupId>
2323
<artifactId>avaje-htmx-api</artifactId>
24-
<version>2.8-RC1</version>
24+
<version>2.8-RC3</version>
2525
</dependency>
2626
<dependency>
2727
<groupId>io.helidon.webserver</groupId>
2828
<artifactId>helidon-webserver</artifactId>
29-
<version>4.1.0</version>
29+
<version>4.1.2</version>
3030
</dependency>
3131
</dependencies>
3232
</project>

http-api-javalin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
<relativePath>..</relativePath>
99
</parent>
1010

http-api/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
<relativePath>..</relativePath>
99
</parent>
1010

http-client-gson-adapter/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-client-gson</artifactId>
@@ -20,7 +20,7 @@
2020
<dependency>
2121
<groupId>io.avaje</groupId>
2222
<artifactId>avaje-http-client</artifactId>
23-
<version>2.8-RC1</version>
23+
<version>2.8-RC3</version>
2424
<scope>provided</scope>
2525
</dependency>
2626

http-client-moshi-adapter/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
<parent>
44
<groupId>io.avaje</groupId>
55
<artifactId>avaje-http-parent</artifactId>
6-
<version>2.8-RC1</version>
6+
<version>2.8-RC3</version>
77
</parent>
88
<artifactId>avaje-http-client-moshi</artifactId>
99

@@ -19,7 +19,7 @@
1919
<dependency>
2020
<groupId>io.avaje</groupId>
2121
<artifactId>avaje-http-client</artifactId>
22-
<version>2.8-RC1</version>
22+
<version>2.8-RC3</version>
2323
<scope>provided</scope>
2424
</dependency>
2525

http-client/pom.xml

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-client</artifactId>
@@ -29,21 +29,21 @@
2929
<dependency>
3030
<groupId>com.fasterxml.jackson.core</groupId>
3131
<artifactId>jackson-databind</artifactId>
32-
<version>2.17.2</version>
32+
<version>2.18.0</version>
3333
<optional>true</optional>
3434
</dependency>
3535

3636
<dependency>
3737
<groupId>io.avaje</groupId>
3838
<artifactId>avaje-jsonb</artifactId>
39-
<version>2.1</version>
39+
<version>2.2</version>
4040
<optional>true</optional>
4141
</dependency>
4242

4343
<dependency>
4444
<groupId>io.avaje</groupId>
4545
<artifactId>avaje-inject</artifactId>
46-
<version>10.3</version>
46+
<version>10.4</version>
4747
<optional>true</optional>
4848
</dependency>
4949

@@ -66,7 +66,7 @@
6666
<dependency>
6767
<groupId>io.avaje</groupId>
6868
<artifactId>avaje-http-api</artifactId>
69-
<version>2.8-RC1</version>
69+
<version>2.8-RC3</version>
7070
<scope>test</scope>
7171
</dependency>
7272

@@ -99,7 +99,7 @@
9999
<path>
100100
<groupId>io.avaje</groupId>
101101
<artifactId>avaje-inject-generator</artifactId>
102-
<version>10.3</version>
102+
<version>10.4</version>
103103
</path>
104104
</annotationProcessorPaths>
105105
</configuration>

http-generator-client/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-client-generator</artifactId>

http-generator-core/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-generator-core</artifactId>

http-generator-core/src/main/java/io/avaje/http/generator/core/openapi/OpenAPISerializer.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -65,7 +65,8 @@ static String serialize(Object obj) throws IllegalAccessException {
6565
for (final Field field : fields) {
6666

6767
// skip JsonIgnored fields
68-
if ("BIND_TYPE_AND_TYPES".equals(field.getName())
68+
if ("SCHEMA_RESOLUTION_PROPERTY".equals(field.getName())
69+
|| "BIND_TYPE_AND_TYPES".equals(field.getName())
6970
|| "BINARY_STRING_CONVERSION_PROPERTY".equals(field.getName())
7071
|| "COMPONENTS_SCHEMAS_REF".equals(field.getName())
7172
|| "exampleSetFlag".equals(field.getName())

http-generator-helidon/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<artifactId>avaje-http-parent</artifactId>
66
<groupId>io.avaje</groupId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-helidon-generator</artifactId>

http-generator-helidon/src/main/java/io/avaje/http/generator/helidon/nima/ControllerMethodWriter.java

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,15 @@ void writeRule() {
8888
writer.append(" routing.addFilter(this::_%s);", method.simpleName()).eol();
8989
} else {
9090
writer.append(" routing.%s(\"%s\", ", webMethod.name().toLowerCase(), method.fullPath().replace("\\", "\\\\"));
91+
var roles = method.roles();
92+
if (!roles.isEmpty()) {
93+
writer.append("SecurityFeature.rolesAllowed(");
94+
writer.append("\"%s\"", Util.shortName(roles.getFirst(), true));
95+
for (var i = 1; i < roles.size(); i++) {
96+
writer.append(", \"%s\"", Util.shortName(roles.get(i), true));
97+
}
98+
writer.append("), ");
99+
}
91100
var hxRequest = method.hxRequest();
92101
if (hxRequest != null) {
93102
writer.append("HxHandler.builder(this::_%s)", method.simpleName());

http-generator-helidon/src/main/java/io/avaje/http/generator/helidon/nima/ControllerWriter.java

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -50,6 +50,9 @@ class ControllerWriter extends BaseControllerWriter {
5050
reader.addImportType("io.helidon.webserver.http.ServerResponse");
5151
reader.addImportType("io.helidon.webserver.http.HttpFeature");
5252
reader.addImportType("io.helidon.http.HeaderNames");
53+
if (!reader.roles().isEmpty() || reader.methods().stream().anyMatch(m -> !m.roles().isEmpty())) {
54+
reader.addImportType("io.helidon.webserver.security.SecurityFeature");
55+
}
5356
if (reader.isIncludeValidator()) {
5457
reader.addImportType("io.helidon.http.HeaderName");
5558
}
@@ -202,7 +205,11 @@ private void writeClassStart() {
202205

203206
if (reader.isIncludeValidator()) {
204207
writer.append(" private String language(ServerRequest req) {").eol();
205-
writer.append(" return req.headers().first(HEADER_ACCEPT_LANGUAGE).orElse(null);").eol();
208+
writer.append(" var headers = req.headers();").eol();
209+
writer.append(" if (headers.contains(HEADER_ACCEPT_LANGUAGE)) {").eol();
210+
writer.append(" return headers.get(HEADER_ACCEPT_LANGUAGE).get();").eol();
211+
writer.append(" }").eol();
212+
writer.append(" return null;").eol();
206213
writer.append(" }").eol().eol();
207214
}
208215
}

http-generator-helidon/src/main/java/io/avaje/http/generator/helidon/nima/NimaPlatformAdapter.java

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -61,22 +61,24 @@ public void methodRoles(List<String> roles, ControllerReader controller) {
6161
}
6262

6363
private void addRoleImports(List<String> roles, ControllerReader controller) {
64-
// nothing here yet
64+
for (final String role : roles) {
65+
controller.addStaticImportType(role);
66+
}
6567
}
6668

6769
@Override
6870
public void writeReadParameter(Append writer, ParamType paramType, String paramName) {
6971
switch (paramType) {
70-
case PATHPARAM -> writer.append("pathParams.first(\"%s\").get()", paramName);
72+
case PATHPARAM -> writer.append("pathParams.contains(\"%s\") ? pathParams.get(\"%s\") : null", paramName, paramName);
7173

72-
case QUERYPARAM -> writer.append("req.query().first(\"%s\").orElse(null)", paramName);
74+
case QUERYPARAM -> writer.append("req.query().contains(\"%s\") ? req.query().get(\"%s\") : null", paramName, paramName);
7375

74-
case FORMPARAM -> writer.append("formParams.first(\"%s\").orElse(null)", paramName);
76+
case FORMPARAM -> writer.append("formParams.contains(\"%s\") ? formParams.get(\"%s\") : null", paramName, paramName);
7577

7678
case HEADER -> writer.append(
7779
"req.headers().value(HeaderNames.create(\"%s\")).orElse(null)", paramName);
7880

79-
case COOKIE -> writer.append("req.headers().cookies().first(\"%s\").orElse(null)", paramName);
81+
case COOKIE -> writer.append("req.headers().cookies().contains(\"%s\") ? req.headers().cookies().get(\"%s\") : null", paramName, paramName);
8082

8183
default -> writer.append("null // TODO req.%s().param(\"%s\")", paramType.type(), paramName);
8284
}
@@ -86,19 +88,19 @@ public void writeReadParameter(Append writer, ParamType paramType, String paramN
8688
public void writeReadParameter(Append writer, ParamType paramType, String paramName, String paramDefault) {
8789
switch (paramType) {
8890
case PATHPARAM -> writer.append(
89-
"pathParams.first(\"%s\").orElse(\"%s\")", paramName, paramDefault);
91+
"pathParams.contains(\"%s\") ? pathParams.get(\"%s\") : \"%s\"", paramName, paramName, paramDefault);
9092

9193
case QUERYPARAM -> writer.append(
92-
"req.query().first(\"%s\").orElse(\"%s\")", paramName, paramDefault);
94+
"req.query().contains(\"%s\") ? req.query().get(\"%s\") : \"%s\"", paramName, paramName, paramDefault);
9395

9496
case FORMPARAM -> writer.append(
95-
"formParams.first(\"%s\").orElse(\"%s\")", paramName, paramDefault);
97+
"formParams.contains(\"%s\") ? formParams.get(\"%s\") : \"%s\"", paramName, paramName, paramDefault);
9698

9799
case HEADER -> writer.append(
98100
"req.headers().value(Http.Header.create(\"%s\").orElse(\"%s\")", paramName, paramDefault);
99101

100102
case COOKIE -> writer.append(
101-
"req.headers().cookies().first(\"%s\").orElse(\"%s\")", paramName, paramDefault);
103+
"req.headers().cookies().contains(\"%s\") ? req.headers().cookies().get(\"%s\") : \"%s\"", paramName, paramName, paramDefault);
102104

103105
default -> writer.append("null // TODO req.%s().param(\"%s\")", paramType.type(), paramName);
104106
}

http-generator-javalin/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-javalin-generator</artifactId>

http-generator-jex/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-jex-generator</artifactId>

http-generator-sigma/pom.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
</parent>
99

1010
<artifactId>avaje-http-sigma-generator</artifactId>

http-inject-plugin/pom.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
<parent>
55
<groupId>io.avaje</groupId>
66
<artifactId>avaje-http-parent</artifactId>
7-
<version>2.8-RC1</version>
7+
<version>2.8-RC3</version>
88
<relativePath>..</relativePath>
99
</parent>
1010

@@ -19,7 +19,7 @@
1919
<dependency>
2020
<groupId>io.avaje</groupId>
2121
<artifactId>avaje-inject</artifactId>
22-
<version>10.3</version>
22+
<version>10.4</version>
2323
<scope>provided</scope>
2424
<optional>true</optional>
2525
</dependency>

pom.xml

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,12 +4,12 @@
44
<parent>
55
<groupId>org.avaje</groupId>
66
<artifactId>java11-oss</artifactId>
7-
<version>4.4</version>
7+
<version>4.5</version>
88
</parent>
99

1010
<groupId>io.avaje</groupId>
1111
<artifactId>avaje-http-parent</artifactId>
12-
<version>2.8-RC1</version>
12+
<version>2.8-RC3</version>
1313
<packaging>pom</packaging>
1414

1515
<scm>
@@ -19,9 +19,9 @@
1919

2020
<properties>
2121
<nexus.staging.autoReleaseAfterClose>true</nexus.staging.autoReleaseAfterClose>
22-
<swagger.version>2.2.23</swagger.version>
22+
<swagger.version>2.2.25</swagger.version>
2323
<jackson.version>2.14.2</jackson.version>
24-
<avaje.prisms.version>1.31</avaje.prisms.version>
24+
<avaje.prisms.version>1.32</avaje.prisms.version>
2525
<module-info.shade>${project.build.directory}${file.separator}module-info.shade</module-info.shade>
2626
</properties>
2727

0 commit comments

Comments
 (0)