From d18d9c48fd8012eaf54c5e2b93d5965cf46e0f80 Mon Sep 17 00:00:00 2001 From: ratcash Date: Wed, 10 Nov 2021 23:44:28 +0100 Subject: [PATCH 1/3] Mark classes of deprecated messages with @Deprecated --- .../sbe/generation/java/JavaGenerator.java | 4 ++++ .../generation/java/JavaGeneratorTest.java | 23 +++++++++++++++++++ .../since-deprecated-test-schema.xml | 7 +++++- 3 files changed, 33 insertions(+), 1 deletion(-) diff --git a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java index f9dd57a178..a96f018116 100644 --- a/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java +++ b/sbe-tool/src/main/java/uk/co/real_logic/sbe/generation/java/JavaGenerator.java @@ -1657,6 +1657,10 @@ private static CharSequence generateDeclaration( final StringBuilder sb = new StringBuilder(); generateTypeJavadoc(sb, BASE_INDENT, typeToken); + if (typeToken.deprecated() > 0) + { + sb.append("@Deprecated\n"); + } sb.append("@SuppressWarnings(\"all\")\n") .append("public final class ").append(className).append(implementsString).append('\n') .append("{\n"); diff --git a/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java b/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java index 5ffc034cd8..bdaefa43db 100644 --- a/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java +++ b/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java @@ -458,6 +458,29 @@ public void shouldGenerateRepeatingGroupCountLimits() throws Exception assertEquals(65534, maxValue.invoke(null)); } + @Test + public void shouldMarkDeprecatedClasses() throws Exception + { + final ParserOptions options = ParserOptions.builder().stopOnError(true).build(); + final MessageSchema schema = parse(Tests.getLocalResource("since-deprecated-test-schema.xml"), options); + final IrGenerator irg = new IrGenerator(); + ir = irg.generate(schema); + + outputManager.clear(); + outputManager.setPackageName(ir.applicableNamespace()); + + generator().generate(); + final String encoderFqcn = ir.applicableNamespace() + ".DeprecatedMessageEncoder"; + final Class encoderClazz = compile(encoderFqcn); + assertNotNull(encoderClazz); + assertTrue(encoderClazz.isAnnotationPresent(Deprecated.class)); + + final String decoderFqcn = ir.applicableNamespace() + ".DeprecatedMessageDecoder"; + final Class decoderClazz = compile(decoderFqcn); + assertNotNull(decoderClazz); + assertTrue(decoderClazz.isAnnotationPresent(Deprecated.class)); + } + private Class getModelClass(final Object encoder) throws ClassNotFoundException { final String className = "Model"; diff --git a/sbe-tool/src/test/resources/since-deprecated-test-schema.xml b/sbe-tool/src/test/resources/since-deprecated-test-schema.xml index 35787b2495..d37350ef65 100644 --- a/sbe-tool/src/test/resources/since-deprecated-test-schema.xml +++ b/sbe-tool/src/test/resources/since-deprecated-test-schema.xml @@ -1,6 +1,6 @@ + + + + + From f7599f82622809555f5374b886e8e68a5bb13bc2 Mon Sep 17 00:00:00 2001 From: ratcash Date: Thu, 11 Nov 2021 08:00:50 +0100 Subject: [PATCH 2/3] Revert breaking changes --- .../src/test/resources/since-deprecated-test-schema.xml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/sbe-tool/src/test/resources/since-deprecated-test-schema.xml b/sbe-tool/src/test/resources/since-deprecated-test-schema.xml index d37350ef65..35787b2495 100644 --- a/sbe-tool/src/test/resources/since-deprecated-test-schema.xml +++ b/sbe-tool/src/test/resources/since-deprecated-test-schema.xml @@ -1,6 +1,6 @@ - - - - - From 68a70db1a9fed4cb2c2dd6cb569391d3564ffeb9 Mon Sep 17 00:00:00 2001 From: ratcash Date: Thu, 11 Nov 2021 08:04:32 +0100 Subject: [PATCH 3/3] Create a dedicated xml for java test --- .../generation/java/JavaGeneratorTest.java | 2 +- .../resources/deprecated-msg-test-schema.xml | 20 +++++++++++++++++++ 2 files changed, 21 insertions(+), 1 deletion(-) create mode 100644 sbe-tool/src/test/resources/deprecated-msg-test-schema.xml diff --git a/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java b/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java index bdaefa43db..3a9064b810 100644 --- a/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java +++ b/sbe-tool/src/test/java/uk/co/real_logic/sbe/generation/java/JavaGeneratorTest.java @@ -462,7 +462,7 @@ public void shouldGenerateRepeatingGroupCountLimits() throws Exception public void shouldMarkDeprecatedClasses() throws Exception { final ParserOptions options = ParserOptions.builder().stopOnError(true).build(); - final MessageSchema schema = parse(Tests.getLocalResource("since-deprecated-test-schema.xml"), options); + final MessageSchema schema = parse(Tests.getLocalResource("deprecated-msg-test-schema.xml"), options); final IrGenerator irg = new IrGenerator(); ir = irg.generate(schema); diff --git a/sbe-tool/src/test/resources/deprecated-msg-test-schema.xml b/sbe-tool/src/test/resources/deprecated-msg-test-schema.xml new file mode 100644 index 0000000000..e7ed27e445 --- /dev/null +++ b/sbe-tool/src/test/resources/deprecated-msg-test-schema.xml @@ -0,0 +1,20 @@ + + + + + + + + + + + + + +