Skip to content

Conversation

@Artur-
Copy link
Member

@Artur- Artur- commented Jan 26, 2026

The method name set() better communicates the intent of the operation
and avoids confusion with the value() getter inherited from Signal.

Artur- added 17 commits January 25, 2026 16:46
Renames ValueSignal class to SharedValueSignal to clarify that this
is a shared signal (serializable, cluster-capable) as opposed to
local signals which will be introduced in future commits.

This is part of the incremental signals restructuring effort to
distinguish between:
- Local signals: non-serializable, UI-local state management
- Shared signals: serializable, cluster-capable state sharing

Changes:
- Renamed ValueSignal.java -> SharedValueSignal.java
- Updated all references in signals module (5 main files, 7 test files)
- Updated all references in flow-server module (8 main files, 17 test files)
- Updated subclasses: NumberSignal, NodeSignal
- Updated dependent classes: ListSignal, MapSignal
- All tests pass: 446 signals tests, 214 flow-server signal tests

Part of incremental signals restructuring. Phase 1 of 4.
… package

Move core interfaces to com.vaadin.signals.core package:
- Signal.java
- WritableSignal.java
- BindingActiveException.java

Update all imports across signals and flow-server modules.
Move all shared signal classes from com.vaadin.signals to
com.vaadin.signals.shared:
- AbstractSignal
- SharedValueSignal
- SharedNumberSignal
- SharedNodeSignal
- SharedListSignal
- SharedMapSignal
- SignalUtils (helper class)

Also move corresponding test files to the shared package.
Update all imports across signals and flow-server modules.
Move ReferenceSignal to the local package and rename to ValueSignal.
Local signals are intended for UI-local state only and do not
participate in clustering.

The local package provides non-serializable signals that are
simpler than shared signals and don't use JSON serialization.
Update javadoc examples in binding methods to use the simpler
local ValueSignal instead of SharedValueSignal. ValueSignal is
more appropriate for introductory documentation as it's simpler
and doesn't require understanding shared/distributed state concepts.

Both signal types work with the binding methods since they accept
the Signal<T> interface.
Update test classes to use the simpler local ValueSignal instead of
SharedValueSignal. These tests verify UI binding behavior which is
local to the UI and doesn't require shared/distributed state.
… root package

Move core interfaces back from com.vaadin.signals.core to
com.vaadin.signals. A separate core package adds no value when
the root package works just as well for these top-level types.
Move general-purpose classes (ComputedSignal, Transaction, Effect,
TransientListener, UsageTracker) to the root signals package and
shared-signal implementation classes (SignalTree, StagedTransaction,
TreeRevision, etc.) to shared/impl. This eliminates the impl/ package
and colocates classes with their logical grouping.
Update 7 flow-tests view files to import ValueSignal from
com.vaadin.signals.local instead of com.vaadin.signals. Fix two
broken javadoc references: AbstractSignal#peek() in Signal.java
and Signal#runInTransaction in SharedValueSignal.java.
Local ValueSignal stores raw objects, so signal.peek() returns
Person records rather than Maps. Update the casts in
bindListProperty and bindMapProperty reattach tests accordingly.
The method name set() better communicates the intent of the operation
and avoids confusion with the value() getter inherited from Signal.
@github-actions
Copy link

Format Checker Report

BLOCKER There are 1 files with format errors

  • To see a complete report of formatting issues, download the differences artifact

  • To fix the build, please run mvn spotless:apply in your branch and commit the changes.

  • Optionally you might add the following line in your .git/hooks/pre-commit file:

    mvn spotless:apply
    

Here is the list of files with format issues in your PR:

flow-tests/test-root-context/src/main/java/com/vaadin/flow/uitest/ui/signal/BindWidthHeightView.java

@sonarqubecloud
Copy link

@github-actions
Copy link

Test Results

1 325 files  ±0  1 325 suites  ±0   1h 15m 46s ⏱️ + 1m 29s
9 399 tests ±0  9 331 ✅ ±0  68 💤 ±0  0 ❌ ±0 
9 859 runs  +7  9 783 ✅ +7  76 💤 ±0  0 ❌ ±0 

Results for commit 653a03f. ± Comparison against base commit 8df7646.

This pull request removes 437 and adds 437 tests. Note that renamed tests count towards both.
com.vaadin.flow.component.ComponentEffectTest ‑ bindChildren_emptyListSignalWithNotInitiallyEmptyParent_throw
com.vaadin.flow.component.ComponentEffectTest ‑ bindChildren_emptyListSignal_emptyParent
com.vaadin.signals.ListSignalTest ‑ clear_listWithChildren_listCleared
com.vaadin.signals.ListSignalTest ‑ constructor_initialValue_isEmpty
com.vaadin.signals.ListSignalTest ‑ equalsHashCode
com.vaadin.signals.ListSignalTest ‑ equalsHashCode_children
com.vaadin.signals.ListSignalTest ‑ insertAt_invalidLocation_insertFailed
com.vaadin.signals.ListSignalTest ‑ insertAt_validLocation_insertSuccessful
com.vaadin.signals.ListSignalTest ‑ insertFirst_concurrentInserts_insertedInConfirmOrder
com.vaadin.signals.ListSignalTest ‑ insertFirst_twoInserts_insertedInOrder
…
com.vaadin.flow.component.ComponentEffectTest ‑ bindChildren_emptySharedListSignalWithNotInitiallyEmptyParent_throw
com.vaadin.flow.component.ComponentEffectTest ‑ bindChildren_emptySharedListSignal_emptyParent
com.vaadin.signals.ComputedSignalTest ‑ callback_updateOtherSignal_signalUpdated
com.vaadin.signals.ComputedSignalTest ‑ effect_changeComputedDependency_effectRunAgain
com.vaadin.signals.ComputedSignalTest ‑ effect_closedEffect_computedGarbageCollected
com.vaadin.signals.ComputedSignalTest ‑ effect_noOpChangeInComputedDependency_effectNotRunAgainButRemainsActive
com.vaadin.signals.ComputedSignalTest ‑ effect_signalUpdatedInTransaction_effectIsUpdated
com.vaadin.signals.ComputedSignalTest ‑ exceptionHandling_callbackThrows_rethrowWhenReading
com.vaadin.signals.ComputedSignalTest ‑ lambda_computesValue_computedNotCached
com.vaadin.signals.ComputedSignalTest ‑ map_countCallbackInvocations_invocationsAreNotCached
…

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants