Skip to content

Commit 4db9833

Browse files
Test and fix javax PropertyVisibilityStrategy fix (#854, #855)
1 parent 0f854de commit 4db9833

File tree

2 files changed

+34
-7
lines changed
  • typescript-generator-core/src

2 files changed

+34
-7
lines changed

typescript-generator-core/src/main/java/cz/habarta/typescript/generator/util/Utils.java

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -207,14 +207,14 @@ public static <A extends Annotation> A getMigratedAnnotation(AnnotatedElement an
207207
if (fallbackAnnotationClass != null) {
208208
final Object fallbackAnnotation = annotatedElement.getAnnotation((Class<Annotation>)fallbackAnnotationClass);
209209
if (fallbackAnnotation != null) {
210-
return asMigrationProxy((A) fallbackAnnotation, annotationClass);
210+
return asMigrationProxy(fallbackAnnotation, annotationClass);
211211
}
212212
}
213213
return null;
214214
}
215215

216216
@SuppressWarnings("unchecked")
217-
public static <T> T asMigrationProxy(T object, Class<T> clazz) {
217+
public static <T> T asMigrationProxy(Object object, Class<T> clazz) {
218218
return (T) Proxy.newProxyInstance(
219219
clazz.getClassLoader(),
220220
new Class<?>[]{clazz},

typescript-generator-core/src/test/java/cz/habarta/typescript/generator/parser/JsonbParserTest.java

Lines changed: 32 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -6,22 +6,24 @@
66
import cz.habarta.typescript.generator.Settings;
77
import cz.habarta.typescript.generator.TestUtils;
88
import cz.habarta.typescript.generator.TypeScriptGenerator;
9+
import jakarta.json.JsonArray;
10+
import jakarta.json.JsonNumber;
11+
import jakarta.json.JsonObject;
12+
import jakarta.json.JsonString;
13+
import jakarta.json.JsonValue;
914
import jakarta.json.bind.annotation.JsonbCreator;
1015
import jakarta.json.bind.annotation.JsonbProperty;
1116
import jakarta.json.bind.annotation.JsonbTransient;
1217
import java.lang.annotation.Retention;
1318
import java.lang.annotation.RetentionPolicy;
19+
import java.lang.reflect.Field;
20+
import java.lang.reflect.Method;
1421
import java.util.Collection;
1522
import java.util.Date;
1623
import java.util.List;
1724
import java.util.Map;
1825
import java.util.OptionalInt;
1926
import java.util.UUID;
20-
import javax.json.JsonArray;
21-
import javax.json.JsonNumber;
22-
import javax.json.JsonObject;
23-
import javax.json.JsonString;
24-
import javax.json.JsonValue;
2527
import org.checkerframework.checker.nullness.qual.Nullable;
2628
import org.junit.jupiter.api.Assertions;
2729
import org.junit.jupiter.api.BeforeEach;
@@ -318,4 +320,29 @@ public void testTransientField() {
318320
private String generate(final Settings settings, Class<?> cls) {
319321
return new TypeScriptGenerator(settings).generateTypeScript(Input.from(cls));
320322
}
323+
324+
@javax.json.bind.annotation.JsonbVisibility(HideAllVisibilityStrategy.class)
325+
public class SecretDataJavax {
326+
public String password;
327+
}
328+
329+
public static class HideAllVisibilityStrategy implements javax.json.bind.config.PropertyVisibilityStrategy {
330+
331+
@Override
332+
public boolean isVisible(Field field) {
333+
return false;
334+
}
335+
336+
@Override
337+
public boolean isVisible(Method method) {
338+
return false;
339+
}
340+
}
341+
342+
@Test
343+
public void testJavaxVisibilityStrategy() {
344+
final String output = generate(settings, SecretDataJavax.class);
345+
Assertions.assertFalse(output.contains("password"), output);
346+
}
347+
321348
}

0 commit comments

Comments
 (0)