This is an automated email from the ASF dual-hosted git repository. jamesbognar pushed a commit to branch docs in repository https://gitbox.apache.org/repos/asf/juneau.git
commit 13ddbb7ce3fafdb2627148f36f996df2713545cb Author: James Bognar <[email protected]> AuthorDate: Wed Jul 1 13:41:36 2026 -0400 Docs follow-ups for juneau-test refactors - Update assertion examples for serializers implementing ThrowingFunction directly (asFunction() bridge removed): asString(Json5Serializer.DEFAULT). - Update org.apache.juneau.test.junit.bct -> org.apache.juneau.test.bct package references (annotations subpackage folded in). - Regenerate static/ai artifacts. Co-authored-by: Cursor <[email protected]> --- pages/release-notes/10.0.0.md | 4 ++-- pages/topics/01.08.FluentAssertions.md | 2 +- pages/topics/07.02.AssertionsOverview.md | 2 +- pages/topics/08.01.JuneauBctBasics.md | 2 +- pages/topics/08.03.01.Customization.md | 4 ++-- static/ai/juneau-knowledge.jsonl | 4 ++-- static/ai/manifest.json | 2 +- 7 files changed, 10 insertions(+), 10 deletions(-) diff --git a/pages/release-notes/10.0.0.md b/pages/release-notes/10.0.0.md index 1d26841591..c5659f5ad1 100644 --- a/pages/release-notes/10.0.0.md +++ b/pages/release-notes/10.0.0.md @@ -601,8 +601,8 @@ _TBD — to be filled in as development continues._ - Migration: if you relied on the out-of-the-box JSON behavior, add `.defaultParser(JsonParser.DEFAULT)` and/or `.defaultSerializer(JsonSerializer.DEFAULT)` to your `RestClient.Builder`. The classic `org.apache.juneau.rest.client.classic.RestClient` is unaffected. - **Test modules merged into a single `juneau-test` artifact.** `juneau-assertions`, `juneau-bct`, and `juneau-junit5` have been consolidated into one commons-only module, `org.apache.juneau:juneau-test`, and the three old artifacts are removed (no relocation POMs). Migration: - **Dependency:** replace any `juneau-assertions` / `juneau-bct` / `juneau-junit5` dependency with a single `juneau-test` dependency (dedupe where you used more than one). - - **Package renames:** `org.apache.juneau.assertions` → `org.apache.juneau.test.assertions`; `org.apache.juneau.junit5` → `org.apache.juneau.test.junit`; `org.apache.juneau.junit.bct` → `org.apache.juneau.test.junit.bct` (and `…bct.annotations` → `org.apache.juneau.test.junit.bct.annotations`). Update imports accordingly. - - **Removed JSON-assertion methods on `FluentObjectAssertion`:** `asJson()`, `asJsonSorted()`, `isJson(String)`, `isSameJsonAs(Object)`, `isSameSortedJsonAs(Object)`, `asString(WriterSerializer)`, and `isSameSerializedAs(Object, WriterSerializer)` are gone (the assertions module no longer depends on `juneau-marshall`). Where you still want JSON/serialized comparisons, pass a serializer explicitly via the new opt-in bridge: `assertObject(x).asString(Json5Serializer.DEFAULT.asFunction()) [...] + - **Package renames:** `org.apache.juneau.assertions` → `org.apache.juneau.test.assertions`; `org.apache.juneau.junit5` → `org.apache.juneau.test.junit`; `org.apache.juneau.junit.bct` (and its `…bct.annotations` sub-package) → `org.apache.juneau.test.bct`. Update imports accordingly. + - **Removed JSON-assertion methods on `FluentObjectAssertion`:** `asJson()`, `asJsonSorted()`, `isJson(String)`, `isSameJsonAs(Object)`, `isSameSortedJsonAs(Object)`, `asString(WriterSerializer)`, and `isSameSerializedAs(Object, WriterSerializer)` are gone (the assertions module no longer depends on `juneau-marshall`). Where you still want JSON/serialized comparisons, pass a serializer explicitly: `assertObject(x).asString(Json5Serializer.DEFAULT).is("{…}")`. `WriterSerializer` now imp [...] _Other entries TBD — to be filled in before release. See also the major version bump note above._ diff --git a/pages/topics/01.08.FluentAssertions.md b/pages/topics/01.08.FluentAssertions.md index a34ee6cbc9..7d281470df 100644 --- a/pages/topics/01.08.FluentAssertions.md +++ b/pages/topics/01.08.FluentAssertions.md @@ -30,7 +30,7 @@ import org.apache.juneau.marshall.json5.Json5Serializer; List myListOfBeans = ...; assertBeanList(myListOfBeans) .asPropertyMaps("a,b") - .asString(Json5Serializer.DEFAULT.asFunction()).is("[{a:1,b:'foo'}]"); + .asString(Json5Serializer.DEFAULT).is("[{a:1,b:'foo'}]"); // Perform an arbitrary Predicate check against a bean. MyBean myBean = ...; diff --git a/pages/topics/07.02.AssertionsOverview.md b/pages/topics/07.02.AssertionsOverview.md index fba152f693..8dbc0718c4 100644 --- a/pages/topics/07.02.AssertionsOverview.md +++ b/pages/topics/07.02.AssertionsOverview.md @@ -61,7 +61,7 @@ import org.apache.juneau.marshall.json5.Json5Serializer; List myListOfBeans = ...; assertBeanList(myListOfBeans) .asPropertyMaps("a,b") - .asString(Json5Serializer.DEFAULT.asFunction()).is("[{a:1,b:'foo'}]"); + .asString(Json5Serializer.DEFAULT).is("[{a:1,b:'foo'}]"); // Perform an arbitrary Predicate check against a bean. MyBean myBeans = ...; diff --git a/pages/topics/08.01.JuneauBctBasics.md b/pages/topics/08.01.JuneauBctBasics.md index d1ff077c13..6cb03b6656 100644 --- a/pages/topics/08.01.JuneauBctBasics.md +++ b/pages/topics/08.01.JuneauBctBasics.md @@ -76,7 +76,7 @@ assertBean(user, "name,age,active,address{street,city}", ### 1. Import Static Methods ```java -import static org.apache.juneau.test.junit.bct.BctAssertions.*; +import static org.apache.juneau.test.bct.BctAssertions.*; ``` ### 2. Basic Object Testing diff --git a/pages/topics/08.03.01.Customization.md b/pages/topics/08.03.01.Customization.md index af3a474fbd..9c28341975 100644 --- a/pages/topics/08.03.01.Customization.md +++ b/pages/topics/08.03.01.Customization.md @@ -23,7 +23,7 @@ The `@BctConfig` annotation provides a declarative way to configure BCT settings ### Basic Usage ```java -import org.apache.juneau.test.junit.bct.annotations.BctConfig; +import org.apache.juneau.test.bct.BctConfig; import org.apache.juneau.commons.lang.TriState; @BctConfig(sortMaps=TriState.TRUE) @@ -157,7 +157,7 @@ The `BctConfiguration` class provides a programmatic API for configuring BCT set ### Setting Configuration Values ```java -import static org.apache.juneau.test.junit.bct.BctConfiguration.*; +import static org.apache.juneau.test.bct.BctConfiguration.*; @BeforeEach void setUp() { diff --git a/static/ai/juneau-knowledge.jsonl b/static/ai/juneau-knowledge.jsonl index 84dd98afba..4a837d54e7 100644 --- a/static/ai/juneau-knowledge.jsonl +++ b/static/ai/juneau-knowledge.jsonl @@ -109,7 +109,7 @@ {"description": "Juneau ships two REST client stacks:\n\n- The classic `org.apache.juneau.rest.client.classic.RestClient` (HC4.5-based, supports the rich fluent surface shown below) in the `juneau-rest-client-classic` Maven module.\n- The next-generation `org.apache.juneau.rest.client.RestClient` (transport-agnostic, no Apache HttpClient dependency) in the `juneau-rest-client` Maven module \u2014 see [Next-Generation REST Client](/docs/topics/NextGenRestClient).\n\nThe remainder of this [...] {"description": "The [juneau-bean](/docs/topics/JuneauBeanBasics) libraries contain several predefined POJOs for generating commonly-used document types that are designed\nto be used with the Juneau Marshaller APIs for both serializing and parsing.\n\n### HTML5\n\nThe Juneau HTML5 DTO beans are simply beans with fluent-style setters that allow you to quickly construct HTML fragments as\nJava objects.\nThese objects can then be serialized to HTML using one of the existing HTML serializers [...] {"description": "The [juneau-config](/docs/topics/JuneauConfigBasics) library contains a powerful API for creating and using INI-style config files.\n\n:::tip Example configuration file\n```ini\n# A set of entries\n[Section1]\n\n# An integer\nkey1 = 1\n\n# A boolean\nkey2 = true\n\n# An array\nkey3 = 1,2,3\n\n# A POJO\nkey4 = http://bar\n```\n:::\n\nConfig files are accessed through the <a href=\"/site/apidocs/org/apache/juneau/config/Config.html\" target=\"_blank\">Config</a> class whic [...] -{"description": "The juneau-test module in Juneau is a powerful API for performing fluent style assertions.\n\nFluent assertions have two types of methods:\n\n- `asX` methods which perform transformations.\n- `isX` methods which perform assertions.\n\nMultiple transformations and assertions can be performed per statement.\n\n:::tip Examples\n```java\nimport static org.apache.juneau.test.assertions.Assertions.*;\nimport static org.apache.juneau.test.assertions.AssertionPredicates.*;\n\n// [...] +{"description": "The juneau-test module in Juneau is a powerful API for performing fluent style assertions.\n\nFluent assertions have two types of methods:\n\n- `asX` methods which perform transformations.\n- `isX` methods which perform assertions.\n\nMultiple transformations and assertions can be performed per statement.\n\n:::tip Examples\n```java\nimport static org.apache.juneau.test.assertions.Assertions.*;\nimport static org.apache.juneau.test.assertions.AssertionPredicates.*;\n\n// [...] {"description": "The Juneau framework uses the design pattern of builders, context, and session objects:\n\n- Context Builders - Modifiable objects that allow you to define configuration settings for contexts.\n- Contexts - Unmodifiable thread-safe objects meant to be cacheable and reusable.\n- Sessions - Modifiable objects usually meant for one-time use.\n\nThis is a general design pattern used throughout the framework including the REST client and server APIs.\n\nThe following shows th [...] {"description": "# Framework Comparisons\n\nThis page provides detailed comparisons between Juneau and popular alternatives to help you choose the right tool for your needs.\n\n## Juneau vs Jackson\n\n| Feature | Juneau | Jackson | Winner |\n|---------|--------|---------|--------|\n| **Multi-format support** | JSON, XML, HTML, URL-Encoding, UON, OpenAPI, PlainText, CSV, SOAP, MessagePack, RDF | Primarily JSON (with modules for XML, YAML, etc.) | **Juneau** - Built-in multi-format support [...] {"description": "# Why Choose Juneau?\n\nApache Juneau\u2122 offers a unique combination of simplicity, power, and zero-dependency design that makes it an excellent choice for modern Java development. Here's why developers choose Juneau over alternatives.\n\n## The Juneau Advantage\n\n### **Zero Dependencies, Maximum Power**\n\nUnlike other frameworks that require multiple dependencies and complex configurations, Juneau provides comprehensive functionality with minimal external requireme [...] @@ -292,7 +292,7 @@ {"description": "The <a href=\"/site/apidocs/org/apache/juneau/test/assertions/package-summary.html\" target=\"_blank\">org.apache.juneau.test.assertions</a> package in Juneau is a powerful API for performing\nfluent style assertions.\nIt is used throughout the REST client and server APIs for performing inline assertions on REST requests and responses.\n\n:::tip Example\n```java\n// Create a basic REST client with JSON support and download a bean.\nMyBean bean = RestClient.create()\n [...] {"description": "# Bean-Centric Testing Framework\n\nA powerful and intuitive testing framework that extends JUnit with streamlined assertion methods for Java objects. BCT eliminates verbose test code while providing comprehensive object introspection and comparison capabilities.\n\n## \ud83d\udccb Table of Contents\n\n- [Overview](#overview)\n- [Quick Start](#quick-start)\n- [Core Assertion Methods](#core-assertion-methods)\n- [Nested Property Access](#nested-property-access)\n- [Advanc [...] {"description": "# Custom Error Messages\n\nCustom error messages allow you to provide contextual information when BCT assertions fail. This makes test failures more informative and helps identify issues faster during debugging.\n\n## Overview\n\nBCT supports custom error messages through a `Supplier<String>` parameter in all assertion methods. This provides:\n- **Lazy evaluation** - Messages are only generated when assertions fail\n- **Format support** - Use `Utils.fs()` for convenient [...] -{"description": "# Customization\n\nBCT provides flexible customization options through the `@BctConfig` annotation and the `BctConfiguration` class. These tools allow you to configure assertion behavior, customize property access, and extend BCT's capabilities to match your testing needs.\n\n## \ud83d\udccb Table of Contents\n\n- [@BctConfig Annotation](#bctconfig-annotation)\n- [BctConfiguration Class](#bctconfiguration-class)\n- [Configuration Properties](#configuration-properties)\n- [...] +{"description": "# Customization\n\nBCT provides flexible customization options through the `@BctConfig` annotation and the `BctConfiguration` class. These tools allow you to configure assertion behavior, customize property access, and extend BCT's capabilities to match your testing needs.\n\n## \ud83d\udccb Table of Contents\n\n- [@BctConfig Annotation](#bctconfig-annotation)\n- [BctConfiguration Class](#bctconfiguration-class)\n- [Configuration Properties](#configuration-properties)\n- [...] {"description": "# Stringifiers\n\nStringifiers define how specific types should be converted to strings for comparison in BCT assertions. They provide flexible, customizable string representations that can be tailored to your testing needs.\n\n## Built-in Stringifiers\n\nBCT comes with comprehensive built-in stringifiers for common Java types:\n\n```java\n// Array types\nchar[] chars = {'H', 'e', 'l', 'l', 'o'};\nassertString(\"Hello\", chars); // Uses charArrayStringifier()\n\nbyte[] [...] {"description": "# Listifiers\n\nListifiers convert collection-like objects into lists for use in BCT assertions. They provide a unified way to work with various collection types, iterators, streams, and other iterable data structures.\n\n## Built-in Listifiers\n\nBCT comes with comprehensive built-in listifiers for collection-like Java types:\n\n```java\n// Collection types\nList<String> list = List.of(\"a\", \"b\", \"c\");\nassertList(list, \"a\", \"b\", \"c\"); // Uses collectionList [...] {"description": "# Swappers\n\nSwappers transform objects before they are processed by BCT assertions. They provide a way to unwrap, evaluate, or transform objects into more testable forms. Swappers are particularly useful for wrapper types like Optional, Supplier, and Future.\n\n## Built-in Swappers\n\nBCT comes with built-in swappers for common wrapper and lazy-evaluation types:\n\n```java\n// Optional types\nOptional<String> optional = Optional.of(\"Hello\");\nassertString(\"Hello\", [...] diff --git a/static/ai/manifest.json b/static/ai/manifest.json index d3742dbcd1..890945c839 100644 --- a/static/ai/manifest.json +++ b/static/ai/manifest.json @@ -4,7 +4,7 @@ "schema_version": "1.0.0", "source_commit": { "juneau": "f925cfecd6ad9e4fbcb5677a839302fdac3550bc", - "juneau_docs": "1c84283bfdbac1caf506368aa07a8d60cf93caf4" + "juneau_docs": "3c6aced9c6e5517c7b50d229f90d236f28020e77" }, "version": "10.0.0" }
