This document lists all locations in the Apache Juneau codebase where Java text blocks (multi-line strings) could be used to replace concatenated strings. Text blocks were introduced in Java 15 and provide a cleaner way to write multi-line strings.
These locations have extensive string concatenation that would significantly benefit from text blocks:
Location: juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/Queryable.java:85-94
public static final String SWAGGER_PARAMS = "" + "{" + "in:'query'," + "name:'s'," + "description:'" + "Search.\n" + "Key/value pairs representing column names and search tokens.\n" + "\\'*\\' and \\'?\\' can be used as meta-characters in string fields.\n" + "\\'>\\', \\'>=\\', \\'<\\', and \\'<=\\' can be used as limits on numeric and date fields.\n" + "Date fields can be matched with partial dates (e.g. \\'2018\\' to match any date in the year 2018)." + "'," + "type:'array'," + "collectionFormat:'csv'," // ... continues for 10 lines
Benefit: Extremely long concatenated string spanning 10 lines. Text block would be much more readable. Lines: Approximately 10 lines of concatenation
Location: juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/widget/MenuItemWidget.java:136-184
sb.append("\n\t\tfunction onPreShow" + id + "() {"); // ... + "\n\t<a onclick='"+onclick+"'>"+getLabel(req, res)+"</a>" + "\n<div class='popup-content'>" // ... + "\n\t</div>" + "\n</div>"
Benefit: HTML structure with newlines - perfect candidate for text block Lines: Multiple concatenations with \n escape sequences
Location: juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/converter/Introspectable.java Benefit: Similar to Queryable.java, contains Swagger parameter definitions with extensive concatenation Lines: Multiple lines of string concatenation
Location: juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Content_Test.java Benefit: Test strings with concatenation - approximately 60 occurrences Lines: Throughout the file
Location: juneau-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingSerializer_Test.java Benefit: Test strings with concatenation - approximately 160 occurrences Lines: Throughout the file
Location: juneau-utest/src/test/java/org/apache/juneau/urlencoding/UrlEncodingParser_Test.java Benefit: Test strings with concatenation - approximately 80 occurrences Lines: Throughout the file
These locations have string concatenation that could benefit from text blocks:
Location: juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Rest_Debug_Test.java Lines: Approximately 8 occurrences
Location: juneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/DirectoryResource.java Lines: Approximately 4 occurrences
Location: juneau-utest/src/test/java/org/apache/juneau/TestUtils.java Lines: Approximately 4 occurrences
Location: juneau-utest/src/test/java/org/apache/juneau/rest/annotation/Query_Test.java Lines: Approximately 4 occurrences
Location: juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ReflectionMap.java Lines: Approximately 3 occurrences
Location: juneau-core/juneau-marshall/src/main/java/org/apache/juneau/utils/ManifestFile.java Lines: Approximately 2 occurrences
Location: juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/UrlPathMatcher.java Lines: Approximately 2 occurrences
Location: juneau-rest/juneau-rest-server/src/main/java/org/apache/juneau/rest/util/RestUtils.java Lines: Approximately 2 occurrences
These test files contain multiple string concatenations for test data:
juneau-utest/src/test/java/org/apache/juneau/junit/bct/Swapper_Test.java (3 occurrences)juneau-utest/src/test/java/org/apache/juneau/junit/bct/Stringifier_Test.java (5 occurrences)juneau-utest/src/test/java/org/apache/juneau/junit/bct/BctAssertions_Test.javajuneau-utest/src/test/java/org/apache/juneau/junit/bct/BeanConverter_Test.javajuneau-utest/src/test/java/org/apache/juneau/junit/bct/Listifier_Test.javajuneau-utest/src/test/java/org/apache/juneau/assertions/AnyAssertion_Test.javajuneau-utest/src/test/java/org/apache/juneau/assertions/BeanAssertion_Test.javajuneau-utest/src/test/java/org/apache/juneau/assertions/BeanListAssertion_Test.javajuneau-utest/src/test/java/org/apache/juneau/assertions/ArrayAssertion_Test.javajuneau-utest/src/test/java/org/apache/juneau/assertions/ObjectAssertion_Test.javajuneau-utest/src/test/java/org/apache/juneau/cp/BeanStore_Test.java (8 occurrences)juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasQuery_Test.java (2 occurrences)juneau-utest/src/test/java/org/apache/juneau/rest/annotation/HasFormData_Test.javajuneau-utest/src/test/java/org/apache/juneau/rest/annotation/FormData_Test.java (2 occurrences)juneau-utest/src/test/java/org/apache/juneau/BeanMap_Test.java (2 occurrences)juneau-core/juneau-marshall/src/main/java/org/apache/juneau/serializer/SerializerSession.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/MediaType.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/xml/Namespace.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/VarResolverSession.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/svl/DefaultingVar.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/internal/VersionRange.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/LocalDir.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/cp/Messages.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/objecttools/ObjectRest.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/swaps/StackTraceElementSwap.javajuneau-core/juneau-marshall/src/main/java/org/apache/juneau/html/BasicHtmlDocTemplate.javajuneau-rest/juneau-rest-client/src/main/java/org/apache/juneau/rest/client/RestRequest.javajuneau-rest/juneau-rest-mock/src/main/java/org/apache/juneau/rest/mock/MockServletRequest.javajuneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/console/HelpCommand.javajuneau-microservice/juneau-microservice-core/src/main/java/org/apache/juneau/microservice/resources/LogEntryFormatter.javajuneau-bean/juneau-bean-openapi-v3/src/main/java/org/apache/juneau/bean/openapi3/Items.javajuneau-examples/juneau-examples-core/src/main/java/org/apache/juneau/examples/core/xml/XmlConfigurationExample.javaBefore:
public static final String SWAGGER_PARAMS = "" + "{" + "in:'query'," + "name:'s'," + "description:'" + "Search.\n" + "Key/value pairs representing column names and search tokens.\n" + "\\'*\\' and \\'?\\' can be used as meta-characters in string fields.\n";
After:
public static final String SWAGGER_PARAMS = """ { in:'query', name:'s', description:'Search. Key/value pairs representing column names and search tokens. \\'*\\' and \\'?\\' can be used as meta-characters in string fields. """;