NotesPropertyBroker / NotesProperty: How Composite Applications Wire Components Together

NotesPropertyBroker / NotesProperty: How Composite Applications Wire Components Together

Jun 27, 2026 494 words

Let’s be clear about where this sits first: Composite Applications were a Notes 8.x feature. They let you assemble several components — a few Notes forms / views, plus Java/Eclipse components — onto one Notes client screen and have them pass values to each other (pick a row in component A, component B updates to match). That’s fairly legacy today and rare in new projects, but the two classes it maps to are still in the catalogue, so this article finishes them off and explains what they actually do.

The middle layer that passes the values is NotesPropertyBroker. The official definition: “Mediates communication between components of a composite application, allowing communication between multiple Notes components, or between Notes and Java components.” And the single piece of data being passed is a NotesProperty.


TL;DR

  • Composite Applications (Release 8 onward): a framework for assembling multiple components on one screen that pass data via “properties.” Fairly legacy today.
  • NotesPropertyBroker is the mediating layer between components; NotesProperty is the single property being passed (per the docs: “data transmitted to or from the Property Broker”).
  • Get the broker from NotesSession: session.GetPropertyBroker().
  • Read/write properties: GetProperty / GetPropertyValue / SetPropertyValue / HasProperty.
  • InputPropertyContext — read-only, the array of input properties passed in this time.
  • Publish — publishes modified property values out to other components; ClearProperty — clears the modifications staged before publishing.

The mental model

Think of it as a “bulletin board” between components:

component A --(SetPropertyValue + Publish)--> PropertyBroker --(triggers)--> component B receives input
  • The user does something in component A → A changes a property with SetPropertyValue, then Publishes it.
  • The broker routes that change to other components “wired” to that property.
  • Component B is triggered, reads the incoming value from its InputPropertyContext, and reacts.

How components are “wired” together is configured in the composite application’s design layer; the code side only reads input, writes output, and publishes.

Getting it and reading/writing

Dim session As New NotesSession
Dim broker As NotesPropertyBroker
Set broker = session.GetPropertyBroker()
' read an input property passed in this time
If broker.HasProperty("CustomerId") Then
Dim v As Variant
v = broker.GetPropertyValue("CustomerId")
' ...use v to look up data and update your own display
End If
' set an output property and publish it to other components
Call broker.SetPropertyValue("SelectedOrder", orderNo)
Call broker.Publish()
MemberWhat it does
GetProperty(name)get a property’s NotesProperty object
GetPropertyValue(name)read a property value directly
SetPropertyValue(name, value)set a property value
HasProperty(name)whether the property exists
InputPropertyContextread-only, the input-property array for this invocation
Publish()publish modified values to other components
ClearProperty()discard staged, unpublished modifications

NotesProperty itself describes “one property” (its name, namespace, type, value), returned by the broker’s GetProperty.

What it means today

Honestly: if you’re building a new system, you almost certainly won’t use Composite Applications — a modern front end goes through XPages, or the DRAPI-to-external-framework path discussed earlier on the site. NotesPropertyBroker mostly shows up in 8.x-era composite apps still under maintenance: you meet these classes when you inherit such a system and need to understand or tweak how its components pass values.

This is here for “understanding the old system” — not a recommendation to use it in new work.

What about Java and SSJS?

LanguageCounterpartNote
Java (lotus.domino.*)PropertyBroker / Propertycomposite apps support Java components too; either end of the property broker can be Notes or Java
SSJS / XPagesNoneComposite Applications is a Notes client framework, outside the XPages scope

That echoes the conclusion from the earlier UI-classes piece: anything bound to the Notes client framework (the UI classes, composite apps) has no server-side / web counterpart — because its very premise is “the Notes client as a container.”

Sources

← Back to all posts