diff --git a/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/TypeInfos.java b/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/TypeInfos.java index 51aa6b0e8aa03..fbc0ec54a7400 100644 --- a/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/TypeInfos.java +++ b/extensions/qute/deployment/src/main/java/io/quarkus/qute/deployment/TypeInfos.java @@ -51,7 +51,9 @@ static List create(Expression expression, IndexView index, Function templateIdToPathFun, Origin expressionOrigin) { - if (typeInfo.startsWith(TYPE_INFO_SEPARATOR)) { + if (typeInfo.startsWith(TYPE_INFO_SEPARATOR) + && (typeInfo.endsWith(TYPE_INFO_SEPARATOR) || typeInfo.endsWith(RIGHT_ANGLE))) { + // |TYPE_INFO| or |TYPE_INFO| int endIdx = typeInfo.substring(1, typeInfo.length()).indexOf(Expressions.TYPE_INFO_SEPARATOR); if (endIdx < 1) { throw new IllegalArgumentException("Invalid type info: " + typeInfo); diff --git a/extensions/qute/deployment/src/test/java/io/quarkus/qute/deployment/globals/TemplateGlobalTest.java b/extensions/qute/deployment/src/test/java/io/quarkus/qute/deployment/globals/TemplateGlobalTest.java index 35674762c495a..d9fc5fb1befa5 100644 --- a/extensions/qute/deployment/src/test/java/io/quarkus/qute/deployment/globals/TemplateGlobalTest.java +++ b/extensions/qute/deployment/src/test/java/io/quarkus/qute/deployment/globals/TemplateGlobalTest.java @@ -26,7 +26,7 @@ public class TemplateGlobalTest { .withApplicationRoot(root -> root .addClasses(Globals.class, NextGlobals.class) .addAsResource(new StringAsset( - "Hello {currentUser}|{global:currentUser}! Your name is {_name}|{global:_name}. You're {age}|{global:age} years old."), + "Hello {currentUser}|{global:currentUser}! Your name is {_name}|{global:_name}. You're {age}|{global:age} years old. [{serviceEnabled || true}]"), "templates/hello.txt")); @Inject @@ -42,13 +42,13 @@ public void testTemplateData() { assertEquals("Hello 40!", instance.render()); assertTrue(Globals.AGE_USED.get()); - assertEquals("Hello Fu|Fu! Your name is Lu|Lu. You're 40|40 years old.", hello.render()); + assertEquals("Hello Fu|Fu! Your name is Lu|Lu. You're 40|40 years old. [true]", hello.render()); assertEquals("Hello Fu|Fu! Your name is Lu|Lu. You're 40|40 years old.", Qute.fmt( "Hello {currentUser}|{global:currentUser}! Your name is {_name}|{global:_name}. You're {age}|{global:age} years old.") .render()); Globals.user = "Hu"; - assertEquals("Hello Hu|Hu! Your name is Lu|Lu. You're 20|20 years old.", hello.render()); + assertEquals("Hello Hu|Hu! Your name is Lu|Lu. You're 20|20 years old. [true]", hello.render()); assertEquals("Hello Hu|Hu! Your name is Lu|Lu. You're 20|20 years old.", Qute.fmt( "Hello {currentUser}|{global:currentUser}! Your name is {_name}|{global:_name}. You're {age}|{global:age} years old.") @@ -70,6 +70,11 @@ static int age() { return user.equals("Fu") ? 40 : 20; } + @TemplateGlobal + static boolean serviceEnabled() { + return true; + } + } static enum Color {