Skip to content

Conversation

@cppwfs
Copy link

@cppwfs cppwfs commented Oct 29, 2025

Introduce Java-based configuration as an alternative to the existing XML configuration for the barrier sample application. Provide developers with a modern, type-safe approach to configuring the barrier pattern while maintaining backward compatibility. Java-based configuration will be the default.
Allow user to specify either java-config or xml-config profile to determine how app is configured.

Add three new @Configuration classes activated via profiles:

  • ClientConfiguration: Configure HTTP outbound gateway
  • ServerConfiguration: Implement complete barrier pattern flow
  • ErrorHandlingConfiguration: Handle error scenarios

Fix barrier2 gateway parameter mapping by adding Spring Integration as the current XML configuration does not work.

Add comprehensive Javadoc documentation in imperative voice for all configuration classes, explaining the barrier pattern implementation, message flows, and component interactions.

Update README.md to document profile-based configuration selection (xml-config vs java-config) and provide commands for running error handling examples.

Remove unused namespaces from XML files

@cppwfs cppwfs requested a review from artembilan October 29, 2025 12:17
Introduce Java-based configuration as an alternative to the existing
XML configuration for the barrier sample application. Provide
developers with a modern, type-safe approach to configuring the
barrier pattern while maintaining backward compatibility.
Java-based configuration will be the default.
Allow user to specify either `java-config` or `xml-config` profile
to determine how app is configured.

Add three new `@Configuration` classes activated via profiles:
- ClientConfiguration: Configure HTTP outbound gateway
- ServerConfiguration: Implement complete barrier pattern flow
- ErrorHandlingConfiguration: Handle error scenarios

Fix barrier2 gateway parameter mapping by adding Spring Integration
as the current XML configuration does not work.

Add comprehensive Javadoc documentation in imperative voice for all
configuration classes, explaining the barrier pattern implementation,
message flows, and component interactions.

Update README.md to document profile-based configuration selection
(xml-config vs java-config) and provide commands for running
error handling examples.

Remove unused namespaces from XML files
@cppwfs cppwfs force-pushed the SIS-barrier-java-config branch from d76aa72 to 071d683 Compare October 29, 2025 14:23
Introduce Java-based Spring Integration configuration as an
alternative to the existing XML configuration. The new
ControlBusConfiguration class uses `@Configuration` and Integration
DSL to define the control bus flow and inbound adapter.

The application.properties file sets `java-config` as the default
profile, allowing users to run the sample with Java configuration
out of the box. The XML configuration remains available by
explicitly activating the `xml-config` profile.
Introduce Java-based Spring Integration configuration as an
alternative to the existing XML configuration. The new
EnricherConfiguration class uses `@Configuration` and Integration
DSL to define three enricher flows demonstrating different
enrichment strategies.

The UserGateway interface uses `@MessagingGateway` to provide a
simple interface for clients to invoke enricher flows. The
application.properties file sets `java-config` as the default
profile, allowing users to run the sample with Java configuration
out of the box.

The Main class now supports profile-based configuration switching
to load either Java or XML configuration. Tests have been updated
to verify both configuration modes work correctly, with helper
methods extracted to reduce code duplication.

The XML configuration remains available by explicitly activating
the `xml-config` profile, maintaining backward compatibility.

All samples can now run using gradlew :enricher:run.  Was broken before
@cppwfs cppwfs closed this Nov 3, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant