Skip to content

Add solace event integration content#507

Open
samithkavishke wants to merge 2 commits into
wso2:mainfrom
samithkavishke:solace
Open

Add solace event integration content#507
samithkavishke wants to merge 2 commits into
wso2:mainfrom
samithkavishke:solace

Conversation

@samithkavishke

@samithkavishke samithkavishke commented May 26, 2026

Copy link
Copy Markdown
Contributor

Purpose

This PR add the content for the solace event integration.

Goals

Describe the solutions that this feature/fix will introduce to resolve the problems described above

Approach

Describe how you are implementing the solutions. Include an animated GIF or screenshot if the change affects the UI (email documentation@wso2.com to review all UI text). Include a link to a Markdown file or Google doc if the feature write-up is too long to paste here.

User stories

image

Release note

Brief description of the new feature or bug fix as it will appear in the release notes

Documentation

Link(s) to product documentation that addresses the changes of this PR. If no doc impact, enter �N/A� plus brief explanation of why there�s no doc impact

Training

Link to the PR for changes to the training content in https://github.com/wso2/WSO2-Training, if applicable

Certification

Type �Sent� when you have provided new/updated certification questions, plus four answers for each question (correct answer highlighted in bold), based on this change. Certification questions/answers should be sent to certification@wso2.com and NOT pasted in this PR. If there is no impact on certification exams, type �N/A� and explain why.

Marketing

Link to drafts of marketing content that will describe and promote this feature, including product page changes, technical articles, blog posts, videos, etc., if applicable

Automation tests

  • Unit tests

    Code coverage information

  • Integration tests

    Details about the test cases and coverage

Security checks

Samples

Provide high-level details about the samples related to this feature

Related PRs

List any other related PRs

Migrations (if applicable)

Describe migration steps and platforms on which migration has been tested

Test environment

List all JDK versions, operating systems, databases, and browser/versions on which this feature/fix was tested

Learning

Describe the research phase and any blog posts, patterns, libraries, or add-ons you used to solve the problem.

Summary by CodeRabbit

  • Documentation
    • Restructured Solace integration documentation with improved organization of authentication methods (Basic, Kerberos, OAuth2) and queue/topic configurations
    • Added clearer explanations for listener configuration and event handler setup
    • Enhanced code examples and formatting throughout

Review Change Stack

@coderabbitai

coderabbitai Bot commented May 26, 2026

Copy link
Copy Markdown
Contributor
📝 Walkthrough

Walkthrough

This documentation update restructures the Solace integration guide with nested authentication tabs (Basic/Kerberos/OAuth2), separate queue/topic configuration, expanded Ballerina code explanations for listener definition and constructor configuration, updated listener field tables with improved formatting, and refreshed event handler descriptions.

Changes

Solace Integration Documentation Restructure

Layer / File(s) Summary
Visual Designer authentication and destination configuration
en/docs/develop/integration-artifacts/event/solace.md
Authentication UI flow is restructured using nested tabs for Basic, Kerberos, and OAuth2 methods; Queue vs Topic destination configuration is separated into dedicated tabs with an Advanced Configurations table for listener name and authentication method selection.
Ballerina listener and service configuration documentation
en/docs/develop/integration-artifacts/event/solace.md
Added explanatory text instructing users to define a Solace listener with @solace:ServiceConfig annotation, configure destination and message-handling options using queueName or topicName, and pass listener configuration fields to the solace:Listener constructor.
Listener configuration fields and field tables
en/docs/develop/integration-artifacts/event/solace.md
Visual Designer listener configuration replaces prior visuals with an explicit UI table covering Name, Url, Message VPN, Auth, Secure Socket, Transacted, and related fields; solace:ListenerConfiguration field table is expanded to include auth, secureSocket, transacted, clientId, and other properties with normalized optional-field default formatting.
Event handlers documentation refresh
en/docs/develop/integration-artifacts/event/solace.md
The "Adding an event handler" section is rewritten to emphasize configuration steps for onMessage before saving; onError handler heading is added with clarified context for message retrieval and processing failures.
Punctuation and formatting consistency
en/docs/develop/integration-artifacts/event/solace.md
The "What's next" section bullet list is normalized to use consistent dash punctuation for related topic links (Kafka, RabbitMQ, Connections).

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~10 minutes

Suggested reviewers

  • rosensilva
  • anupama-pathirage
  • KavinduZoysa
  • NipunaRanasinghe

Poem

🐰 A document springs to life so bright,
With tabs and tables, all set right,
Solace flows through nested care,
Ballerina code explained with flair,
Event handlers dance with newfound grace! 🌟

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Description check ⚠️ Warning The PR description is incomplete with most required template sections left as placeholder text. Only Purpose and a User stories image are provided; Goals, Approach, Release note, Documentation, Training, Certification, Marketing, Automation tests, Security checks, Samples, Related PRs, Migrations, Test environment, and Learning sections remain unfilled. Complete all required sections of the PR description template, particularly Goals, Approach, Release note, Documentation, and other critical fields that are currently left as placeholder prompts.
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately reflects the main change: adding documentation content for Solace event integration as evidenced by the file modification to solace.md.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 3

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@en/docs/develop/integration-artifacts/event/solace.md`:
- Around line 43-56: Update the TabItem value and label strings to correct
typos: change the TabItem with value "kerbos-authentication" and label "Kerbos"
to value "kerberos-authentication" and label "Kerberos", and change the TabItem
label "Oauth2" to "OAuth2" so the TabItem components (value/label attributes)
use consistent spelling across the document.
- Around line 226-227: The Connect Timeout and Read Timeout defaults are
inconsistent between the two tables; update the first table entries for "Connect
Timeout" and "Read Timeout" (currently `0.0`) so they match the later table's
defaults (`30.0` and `10.0` respectively) used by the implementation/UI, or vice
versa if the later table is wrong—ensure both table rows with labels "Connect
Timeout" and "Read Timeout" contain the same default values across the document
so the UI and code documentation are consistent.
- Around line 70-91: The two sibling TabItem components (TabItem value="uiQueue"
and TabItem value="uiTopic") both include the default prop; remove the duplicate
by keeping the default only on the primary TabItem (e.g., TabItem
value="uiQueue") and deleting the default prop from the other TabItem (TabItem
value="uiTopic") so only one TabItem has default in the Tabs group.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: fcc4c61c-2708-4cfd-b58e-9e5b6a1a2de3

📥 Commits

Reviewing files that changed from the base of the PR and between 558ce58 and f33d3b3.

⛔ Files ignored due to path filters (4)
  • en/static/img/develop/integration-artifacts/event/solace/adding-event-handler.png is excluded by !**/*.png
  • en/static/img/develop/integration-artifacts/event/solace/step-creation-form.png is excluded by !**/*.png
  • en/static/img/develop/integration-artifacts/event/solace/step-service-config.png is excluded by !**/*.png
  • en/static/img/develop/integration-artifacts/event/solace/step-service-designer.png is excluded by !**/*.png
📒 Files selected for processing (1)
  • en/docs/develop/integration-artifacts/event/solace.md

Comment on lines +43 to +56
<TabItem value="kerbos-authentication" label="Kerbos">
**Kerberos Authentication fields:**

| Field | Description | Default |
|---|---|---|
| **Service Name** | Kerberos service name. | `solace` |
| **JAAS Login Context** | JAAS login context name. | `SolaceGSS` |
| **Mutual Authentication** | Enable Kerberos mutual authentication. | Enabled |
| **JAAS Config Reload** | Enable automatic JAAS configuration reload. | |
| **Secure Socket** | SSL/TLS configuration for a secure connection. | |
| **JAAS Config Reload** | Enable automatic JAAS configuration reload. | - |
| **Secure Socket** | SSL/TLS configuration for a secure connection. | - |

</TabItem>

<TabItem value="oauth2-authentication" label="Oauth2">

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

Fix authentication label/value typos for consistency.

Line 43 uses kerbos-authentication and Kerbos, and Line 56 uses Oauth2. Please standardize to kerberos-authentication, Kerberos, and OAuth2 to match terminology used elsewhere in the page.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/docs/develop/integration-artifacts/event/solace.md` around lines 43 - 56,
Update the TabItem value and label strings to correct typos: change the TabItem
with value "kerbos-authentication" and label "Kerbos" to value
"kerberos-authentication" and label "Kerberos", and change the TabItem label
"Oauth2" to "OAuth2" so the TabItem components (value/label attributes) use
consistent spelling across the document.

Comment on lines +70 to +91
<Tabs>
<TabItem value="uiQueue" label="Queue" default>
**When Destination is Queue:**

| Field | Description | Default |
|---|---|---|
| **Queue Name** | Queue to listen for incoming messages. | `test-queue` |
| **Session Acknowledgment Mode** | How received messages are acknowledged. Options: `AUTO_ACKNOWLEDGE`, `CLIENT_ACKNOWLEDGE`, `DUPS_OK_ACKNOWLEDGE`, `SESSION_TRANSACTED`. | `AUTO_ACKNOWLEDGE` |

</TabItem>
<TabItem value="uiTopic" label="Topic" default>
**When Destination is Topic:**

| Field | Description | Default |
|---|---|---|
| **Topic Name** | Topic to listen for incoming messages. | `test/topic` |
| **Subscriber Name** | Name to use for the subscription. | `default` |
| **Durable Subscriber** | When enabled, persists the subscription when the client disconnects. | - |
| **Session Acknowledgment Mode** | How received messages are acknowledged. Options: `AUTO_ACKNOWLEDGE`, `CLIENT_ACKNOWLEDGE`, `DUPS_OK_ACKNOWLEDGE`, `SESSION_TRANSACTED`. | `AUTO_ACKNOWLEDGE` |

</TabItem>
</Tabs>

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟡 Minor | ⚡ Quick win

🧩 Analysis chain

🌐 Web query:

In Docusaurus Tabs/TabItem (MDX), what happens if multiple sibling <TabItem> elements are marked with the default prop? Is only one allowed?

💡 Result:

If multiple sibling elements are marked with the default prop, Docusaurus does not specify that only one is allowed; instead it picks the first tab marked default (and otherwise falls back to the first tab). In the Tabs theme logic, the initial selected tab is computed by searching tab values for the first one with default and using tabValues.find((tabValue) => tabValue.default) ?? tabValues[0]—so when more than one TabItem has default, the earliest one in the rendered children order wins, and the others are ignored for the initial selection [1]. The docs also describe the mechanism as “adding default to one of the tab items” to override the “first tab displayed by default” behavior, which aligns with the “first default wins” implementation [2]. Answer: Yes, only one will effectively be chosen for the initial render—specifically the first sibling TabItem with default—but Docusaurus does not document/enforce an error for multiple defaults; they’re just resolved by “first default wins” [1].

Citations:


Remove the duplicate default prop from sibling <TabItem>
Docusaurus “first default wins” for initial tab selection, so multiple defaults won’t cause runtime ambiguity—but having two is redundant and confusing; keep only one <TabItem ... default> in the <Tabs> group.

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/docs/develop/integration-artifacts/event/solace.md` around lines 70 - 91,
The two sibling TabItem components (TabItem value="uiQueue" and TabItem
value="uiTopic") both include the default prop; remove the duplicate by keeping
the default only on the primary TabItem (e.g., TabItem value="uiQueue") and
deleting the default prop from the other TabItem (TabItem value="uiTopic") so
only one TabItem has default in the Tabs group.

Comment on lines 226 to 227
| **Connect Timeout** | Maximum time in seconds permitted for a JNDI connection attempt. Set to `0` to wait indefinitely. | `0.0` |
| **Read Timeout** | Maximum time in seconds permitted for reading a JNDI lookup reply from the host. | `0.0` |

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major | ⚡ Quick win

Resolve conflicting timeout defaults between UI and code tables.

Line 226-227 says Connect Timeout/Read Timeout default to 0.0, while Line 272-273 lists 30.0/10.0. These defaults should match in both sections to prevent incorrect configuration expectations.

Also applies to: 272-273

🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In `@en/docs/develop/integration-artifacts/event/solace.md` around lines 226 -
227, The Connect Timeout and Read Timeout defaults are inconsistent between the
two tables; update the first table entries for "Connect Timeout" and "Read
Timeout" (currently `0.0`) so they match the later table's defaults (`30.0` and
`10.0` respectively) used by the implementation/UI, or vice versa if the later
table is wrong—ensure both table rows with labels "Connect Timeout" and "Read
Timeout" contain the same default values across the document so the UI and code
documentation are consistent.

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