Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
644 commits
Select commit Hold shift + click to select a range
6e88867
Javadoc cleanup (#15134)
Legioth Nov 11, 2014
5e2d1da
Remove example code (#15211)
Legioth Nov 12, 2014
9b392e3
Prevent deploying embedded VaadinServlet inside @CDIUI (#15205)
Nov 13, 2014
c1e4afc
Require CDIView to implement view (#15208)
Nov 14, 2014
fb1d8c6
Separate TomEE testing profile (active by default)
Nov 12, 2014
1bc16cc
Move VaadinCDIServlet/Service to public package (#15161)
Nov 14, 2014
a02385b
Don't add hyphens in the middle of abbreviations (#15235)
Legioth Nov 18, 2014
84a0937
Release notes for 1.0.0.rc1
Nov 19, 2014
42d9186
Upgrade to DeltaSpike 1.0.3
Nov 26, 2014
dd685d7
Update readme for 1.0.0
Nov 27, 2014
1ff9923
Update readme for 1.0.1
Dec 4, 2014
8e2878b
Stop non-PassivationCapable beans breaking ContextualStorage (#15243)
juusovalli Nov 18, 2014
b1f29df
Readme for 1.0.2
Dec 17, 2014
6bf0f98
Upgrade to DeltaSpike 1.3.0 and Vaadin 7.4.3
Apr 9, 2015
4d1a22a
Update DeltaSpike to 1.4.1 (#18445)
Jul 9, 2015
0d9d789
Update release notes for 1.0.3 and Vaadin dependency
Jul 10, 2015
b161324
Add compatibility note in README.md
Jul 16, 2015
942ddab
Fix websockets support on WebSphere (#18810)
Sep 7, 2015
c25c53d
Swap servlet mapping order to work correctly with Atmosphere (#19513)
Artur- Jan 27, 2016
240a4e2
Fix security annotations for CDIProvider (#19933)
Jun 11, 2016
4caf05e
Travis build for validation and master snapshots (#174)
Artur- Sep 30, 2016
073e49e
Update README for a GitHub workflow (#173)
Artur- Sep 30, 2016
19a40ac
Fix path issue in deploy script (#177)
Artur- Oct 4, 2016
11e8a2c
Make sure all tests are run with TomEE 7 (#182)
hesara Nov 17, 2016
019edc3
Update version number, dependencies etc. for Vaadin 8 (#185)
hesara Dec 19, 2016
1143eb7
Fix JavaDoc syntax for referencing annotations (#187)
tsuoanttila Dec 19, 2016
9962c8c
Fix Vaadin version in readme (#188)
hesara Dec 20, 2016
89d0a93
wildfly managed profile
kumm Oct 31, 2016
0a04a65
introduce clickAndWait, waitForClient test helper methods.
kumm Nov 1, 2016
932fe56
fix ShiroTest
kumm Nov 1, 2016
500aa7f
drop sleep test helper method.
kumm Nov 1, 2016
7657d04
inroduce refreshWindow test helper to ensure wait for load
kumm Nov 6, 2016
b37840a
counter test helper
kumm Nov 8, 2016
605f878
eliminate static AtomicInteger counters
kumm Nov 10, 2016
dfb5009
remove static NAVIGATE_TO from tests
kumm Nov 12, 2016
9ba49d4
fix CDIIntegrationWithDefaultDeployment deployment for managed contai…
kumm Nov 17, 2016
33a5c25
assert for error message instead of status code.
kumm Nov 17, 2016
956994f
ScopedProducer test fix for weld
kumm Nov 12, 2016
ced3887
testable = false for all Deployments. Do not try to deploy test classes.
kumm Nov 12, 2016
c9546e7
glassfish managed profile
kumm Nov 13, 2016
09fcb82
Do not expect undeclared DeploymentException in deployment tests. Gla…
kumm Nov 17, 2016
3a81f4f
remove sout-ing null value. Causes NPE in glassfish.
kumm Nov 13, 2016
d17c07a
remove Thread.sleep from tests
kumm Nov 20, 2016
66e9526
unify of CONTRUCT_COUNT constant name
kumm Jan 12, 2017
4861b81
Remove reindeer theme from InjectionUI test UI. It's in compatibility…
kumm Jan 12, 2017
8cce1e7
fix ShiroTest for vaadin8 with phantomjs. Phantomjs have problems wit…
kumm Jan 13, 2017
7c0b8a2
Fix for closed UI cleanup (#193)
kumm Jan 31, 2017
c9b3a32
Update README.md (#197)
ahie Feb 16, 2017
3d0bca7
Remove Class-Path from manifest
hesara May 31, 2017
fb78f02
Introduce VaadinSessionScoped Context
kumm Jan 17, 2017
76e0399
Test for session context destroy on http session invalidation
kumm Jan 28, 2017
e044286
Introduce CDINavigator
kumm Dec 18, 2016
f1165fb
Define new base behaviour of view scoped context
kumm Aug 20, 2017
3312cb5
Reimplement viewscoped context
kumm Aug 20, 2017
e63ae24
Drop dependent view support
kumm Nov 15, 2016
e0e4ff1
Let dependent cdi view break deployment
kumm Apr 20, 2017
7ec94c7
Fire beforeViewChange in old view context
kumm Apr 18, 2017
ce7749b
Define new cleanup behaviour of UI scoped context
kumm Aug 20, 2017
924de93
Reimplement UI scoped context
kumm Aug 20, 2017
96ac0e3
Check CDIUI not extending UI on deployment
kumm Apr 20, 2017
6bdb821
Check CDIUI is @UIScoped on deployment
kumm Apr 21, 2017
67af869
Move deployment tests to InappropriateDeploymentTest
kumm Apr 23, 2017
efd6aaf
Note about VaadinContextualStorage, implement getBean
kumm Aug 20, 2017
f5631f4
Concurrent false in VaadinContextualStorage
kumm Apr 26, 2017
5b771e1
Handle missing vaadin CDI contexts on session expiration
kumm Apr 23, 2017
fccba03
TomEE cluster test maven profile
kumm Jan 29, 2017
1c03b4e
VaadinSessionScoped replication test
kumm Jan 29, 2017
de2983e
Tomcat DeltaManager session replication workaround
kumm Apr 23, 2017
9b7b40f
UIScope clustering test
kumm Feb 12, 2017
018e32c
Refactor UI clustering test, add test for view context
kumm Feb 18, 2017
b4299c4
Wildfly cluster test maven profile
kumm Mar 4, 2017
5c83c7d
Upgrade to vaadin 8.1.0
kumm Aug 27, 2017
5c881e2
Support BeforeLeave View API introduced in vaadin 8.1
kumm Aug 27, 2017
7399951
Fix arquillian.xml xmlns, add schemaLocation
kumm Aug 27, 2017
3fc3d42
Typo fix in test fail message
kumm Aug 27, 2017
25e690d
Some javadoc for VaadinSessionScopedContext
kumm Aug 27, 2017
d1d81c4
Move VaadinSessionScopedContext destroy log where it sure happen
kumm Aug 27, 2017
61b3196
Implement AlterableContext in ContextWrapper
kumm Aug 30, 2017
4408d0d
typo fix
kumm Aug 30, 2017
0ce84e1
Wrap VaadinSessionScopedContext to support AlterableContext
kumm Aug 31, 2017
82d8411
Remove unused CDIView#supportsParameters
kumm Sep 10, 2017
a7e4d33
Fix javadoc typo in CDIView
kumm Sep 10, 2017
d6a94ab
Add missing since tags
Sep 14, 2017
dae093b
Fix typo in README
Sep 14, 2017
f4549da
Update READMEs
Sep 14, 2017
1ad56e2
Use parent POM and update version
Sep 15, 2017
6ed9507
Fix javadoc error in CDINavigator (#216)
hesara Sep 15, 2017
3532ead
Revert "Tomcat DeltaManager session replication workaround" (#218)
tsuoanttila Oct 9, 2017
b1de0d1
Fix broken links (#221)
hesara Oct 11, 2017
e8dc32e
Implement View context strategies (#212)
kumm Dec 1, 2017
c511e11
Improve support for PushState based navigation (#227)
tsuoanttila Dec 11, 2017
5eed388
Add annotations for selecting the View context strategy (#233)
kumm Jan 10, 2018
3ac311b
Fix failure to deploy with JAX-WS, JAX-RS Liberty (#238)
sknitelius Jan 25, 2018
d960ca4
Add missing context path to UI path info (#241)
BwackNinja May 31, 2018
33f33d6
V10 CDI addon core (#252)
kumm Jun 28, 2018
1ddf77d
Deployment validation for normal scoped components (#253)
kumm Jul 20, 2018
e21d538
Publish UI, session events to CDI, and discover some customization be…
kumm Jul 23, 2018
cd6925a
Introduce @RouteScoped context (#256)
kumm Aug 2, 2018
fa10971
Deployment validation for route scoped context (#257)
kumm Aug 9, 2018
abb573a
Update readme for v10 (#261)
Aug 10, 2018
1e2e820
Fix Flow version and dependencies (#260)
Aug 10, 2018
e0da0b5
Add integration test for push behaviour (#259)
kumm Sep 3, 2018
4abb4d8
Initial readme of the addon child module for V10 (#262)
kumm Sep 7, 2018
5f41bc3
Added Directory badges (#264)
binbalenci Sep 19, 2018
00046ef
Add vaadin-parent to allow JAR signing for release (#268)
gilberto-torrezan Oct 11, 2018
78378eb
Exclude test module from Release (#269)
ZheSun88 Oct 11, 2018
10ce1d2
Remove internal error notification itest (#274)
kumm Oct 29, 2018
cf561a3
Upgrade OWB to 1.7.5 (#273)
kumm Oct 29, 2018
90b775f
Version bump (#275)
Oct 29, 2018
25d577c
improve error message for usability (#281)
enver-haase Mar 7, 2019
b43311d
Create a non-contextual instance in createComponent impl (#287)
May 2, 2019
6f82be1
Bump the major version (#290)
May 2, 2019
1bf9dab
Use https for Maven repositories (#292)
Jul 30, 2019
dfad4fc
Update CDI to use v14 npm mode (#294)
caalador Sep 25, 2019
1e3fede
Make all tests run in production (#295)
caalador Sep 26, 2019
be853eb
Returns an empty properties as init properties from a configuration. …
Oct 15, 2019
3115b95
Fix unit tests for 2.1 (#299)
Oct 15, 2019
98b7514
Bump project and Flow version (#298)
Oct 15, 2019
cb99747
Updated Flow to 2.2 (#300)
Nov 12, 2019
b77a3e4
Extract CDI-related functionality from VaadinServletService into CdiV…
Nov 27, 2019
9d644b6
Make CdiVaadinServiceDelegate serializable (#304)
Nov 29, 2019
e1151c3
Add usage statistics (#307)
Dec 18, 2019
99b6f14
Switch the master branch to Flow 3.0
Jan 14, 2020
7b0529b
Remove bower mode
Jan 14, 2020
15cbff9
Use new API instead of deprecated in service test
Jan 15, 2020
ff0cf0e
Disable broken test
Jan 15, 2020
6a99f2e
Add 11.2 branch mention and add run ITs section
Jan 15, 2020
396c3b7
Add apache-tomee:webprofile dependency to vaadin-cdi-itest
mehdi-vaadin Jan 22, 2020
ea9c919
Add Repository definition to Pom (#321)
ZheSun88 Feb 5, 2020
c471fef
update flow version (#322)
haijian-vaadin Feb 28, 2020
2e436e5
Update vaadin-parent to 2.0.2 (#323)
ZheSun88 Apr 3, 2020
326d8ef
Upgrade TomEE to version 7.0.7 (#328)
Apr 23, 2020
8f7d134
Generate effective pom for JBoss shrinkwrap war packaging (#330)
Apr 27, 2020
fba37f0
Enable vaadin-prerelease for snapshot (#332)
ZheSun88 Apr 27, 2020
507662f
Allow AppShell annotations on non-apshell classes to run CDI tests (#…
Jun 4, 2020
54b964d
Use programmatic Push instead of declarative to avoid exception becau…
Jun 4, 2020
570d01a
When creating the Instantiator instance for VaadinService, store the …
Jun 23, 2020
9fd2726
Bump 13.0-SNAPSHOT version #8679 (#351)
mshabarov Jul 7, 2020
ee18eb1
chore: Update Flow version to 5.0-SNAPSHOT (#353)
platosha Aug 24, 2020
a2e1b1f
chore: Add missing polymer dependency (#356)
caalador Nov 5, 2020
055653b
chore: Use Flow 6.0 version and update unit test (#358)
Nov 19, 2020
ee39f39
refactor: fix unit tests after app-config changes
Dec 23, 2020
5ef3772
Bump junit from 4.12 to 4.13.1
dependabot[bot] Oct 12, 2020
d3553c9
chore: fix broken test (#360)
Mar 5, 2021
2c84d57
test: Provider StaticFileHandlerFactory for Lookup mock (#361)
mshabarov Mar 12, 2021
789eb96
chore: remove contributing docs
mshabarov Mar 22, 2021
7d62ae4
chore: build master with flow 8.0 (#367)
May 17, 2021
311e2c5
test: Remove old content of UI-scoped router layouts (#368)
mshabarov May 19, 2021
8bb1172
chore: downgrade version to 13.0-SNAPSHOT
Jun 7, 2021
c4c6d37
feat: reimplement @RouteScoped to keep beans for PreserveOnRefresh (#…
Jun 7, 2021
74730e5
chore: avoid IllegalArgumentException in unit tests (#372)
Jun 28, 2021
b700921
fix: implement getActiveContextualStorages properly for RouteScope co…
Sep 7, 2021
e3a3302
chore: Add dtrack-maven-plugin configuration (#377)
fluorumlabs Sep 27, 2021
fc0d643
test: fix mocking for changes in master (#378)
mshabarov Nov 1, 2021
d54ac61
chore: Use Flow 10 (#381)
Artur- Jan 14, 2022
d59d3f3
test: upgrade TomEE to latest for javax namespace (#384)
Artur- Jan 14, 2022
858a2b3
fix: Upgrade to CDI 2 for Java 11 support (#380)
Artur- Jan 14, 2022
efad652
chore!: bump min required java version to jdk 11 (#379)
manolo Jan 14, 2022
eaadf1f
test: update versions for wildfly and payara (#386)
caalador Jan 20, 2022
dc54339
chore: update Flow version to 23.0-SNAPSHOT (#387)
Feb 14, 2022
df35fd5
Create LICENSE (#389)
manolo Mar 8, 2022
8d40066
fix: throw on not existing scope only if bean creation is requested (…
mcollovati Aug 22, 2022
f2ed6e1
feat: enable bean discovery when bean-discovery-mode="annotated" (#397)
taefi Sep 12, 2022
863089d
feat!: Migrate to Jakarta EE 9 / Servlet 5 (#396)
mshabarov Sep 12, 2022
fa76dd4
chore: Update README with the latest versions (#399)
mshabarov Sep 13, 2022
d79167d
chore:add scripts for cherry pick (#406)
ZheSun88 Sep 13, 2022
06ef5c1
fix: set load-on-startup for automatically registered Vaadin servlet …
mcollovati Sep 14, 2022
de6c0ac
chore: Update vaadin-parent (#413)
mshabarov Oct 19, 2022
44a2598
chore: Update Wildfly version to latest (#412)
mshabarov Oct 20, 2022
ae3fd65
test: add support for OpenLiberty Arquillian tests (#417)
MarcinVaadin Nov 22, 2022
a7127bf
chore: Upgrade to SLF4J 2.0.4 (#419)
mshabarov Nov 28, 2022
7c29686
test: Fixes CdiVaadinServletTest, broken due to missing servlet regis…
tepi Dec 2, 2022
692566c
chore: Upgrade to Servlet 6.0 (#415)
mshabarov Dec 2, 2022
f9ff73e
test: fix missing lookup mock (#424)
caalador Jan 5, 2023
091a61a
fix: CDI 4.0, removed DeltaSpike, switched to Weld Junit extension (#…
MarcinVaadin Jan 12, 2023
2f4a3b5
feat: Retain routescoped parentlayouts on route change (#394)
roeltje25 Jan 16, 2023
027314e
refactor!: Instantiator.init() replaced with InstantiatorFactory (#429)
MarcinVaadin Jan 20, 2023
57440d0
chore: Remove not needed apache snapshot repo (#430)
mshabarov Feb 7, 2023
99446ff
test: workaround for payara issue with sfl4j
mcollovati Feb 6, 2023
8461f9f
test: support running validation on both JakartaEE 9 and 10
mcollovati Feb 6, 2023
39dfa9d
chore: explicitly mark CDI beans
mcollovati Feb 6, 2023
8f4e830
Update cherryPick.js
ZheSun88 Feb 14, 2023
382f731
Update README.md (#435)
mshabarov Jun 12, 2023
7475549
fix: fix serialization issues (#438)
mcollovati Jun 26, 2023
8593b29
chore: removed unused constructor parameter (#441)
mcollovati Jun 28, 2023
0c4e7d8
test: fix mock configuration to handle FeatureFlags.get changes (#444)
mcollovati Sep 25, 2023
bb48c37
test: have push tests as not thread safe (#446)
caalador Oct 5, 2023
9f0a634
test: delay start of background thread (#448)
mcollovati Oct 16, 2023
19e8ef6
chore: Upgrade TomEE to latest 9.1 (#449)
mshabarov Oct 23, 2023
df3ec27
chore: Upgrade to latest Payara version (#452)
mshabarov Oct 23, 2023
4615b93
chore: Upgrade to latest WildFly versions (#451)
mshabarov Oct 23, 2023
2c409c7
chore: Upgrade Open Liberty to latest (#453)
mshabarov Oct 23, 2023
ef32243
chore: change openliberty group id from beta to stable (#454)
mcollovati Oct 24, 2023
888db34
chore: Upgrade wildfly-arquillian-container-managed to latest (#450)
mshabarov Feb 5, 2024
6d1e19d
test: resolve web archive dependencies all together (#455)
mcollovati Mar 20, 2024
60ff371
chore: bump version to 15.1 (#456)
mcollovati Apr 15, 2024
0c23cd1
test: add test for proxied views (#458)
mcollovati Apr 16, 2024
5f9e2e7
test: add translation tests (#457)
mcollovati Apr 23, 2024
2a01f62
fix: provide default MenuAccessControl instance (#460)
mcollovati Oct 15, 2024
57bdbf5
chore: upgrade vaadin-parent to 2.2.1 (#461)
mcollovati Oct 15, 2024
b0720fe
test: fix serialization test (#462)
mcollovati Nov 7, 2024
0295042
test: wait for system messages notification (#464)
mcollovati Nov 12, 2024
869bfab
chore: bump project to 15.2 and Vaadin to 24.8 (#469)
mcollovati May 15, 2025
f12360d
chore: upgrade vaadin-parent to 3.0.0 (#471)
ZheSun88 May 20, 2025
42a38e8
feat: detect specific Executor for VaadinService (#470)
mcollovati May 21, 2025
6b056bc
chore: bump project to 16.0 (#475)
mcollovati Jun 23, 2025
f77b691
chore: Use Jakarta EE BOM (#479)
mshabarov Jun 26, 2025
b40c392
fix: prevent startup failures on non-Jakarta EE compliant environment…
mcollovati Jun 26, 2025
8373cbd
chore: add jcip test dependency (#482)
mcollovati Jul 17, 2025
31118c4
test: fix test errors (#488)
mcollovati Jul 25, 2025
6483f99
chore: move frontend folder to src/main (#489)
mcollovati Sep 15, 2025
9fc936f
chore!: set base Java version to 21 (#490)
mcollovati Oct 1, 2025
5ea90d6
test: upgrade Wildfly to 38 (#492)
mcollovati Nov 5, 2025
4306e29
fix: use window name to detect presence of extended client details (#…
mcollovati Nov 18, 2025
27febfb
test: use unique name for deployment archives (#494)
mcollovati Nov 28, 2025
08b6417
chore: upgrade WildFly to 39 (#496)
mcollovati Jan 19, 2026
6c05149
chore: add github action workflow (#500)
ZheSun88 Apr 10, 2026
0f19e25
feat: Add DetachEvent listener to CdiVaadinServletService (#498)
TatuLund Apr 21, 2026
0d3aeeb
fix: check session lock in `VaadinSessionScopedContext.isActive()` (#…
mcollovati Apr 22, 2026
c145fa6
chore: Add description for 4.0 branch (#514)
thevaadinman May 25, 2026
67a2243
feat: configure spotless maven plugin for code formatting (#513)
Artur- May 27, 2026
96421da
chore: run project build only for PR from forked repo (#510)
ZheSun88 May 28, 2026
1111175
refactor: extract `@VaadinSessionScoped` activation into managed bean…
mcollovati Jun 8, 2026
216f9b1
chore: upgrade project version to 16.1 (#518)
tltv Jun 11, 2026
99de77f
feat: add PageTitleGenerator support to CdiInstantiator (#519)
tltv Jun 11, 2026
f6e86b0
test: update to Wildfly 40 with Jakarta EE 11 (#523)
beth-soptim Jun 29, 2026
13cb33b
fix: bind route scope to window name only for `@PreserveOnRefresh` (#…
mcollovati Aug 4, 2026
fdb7764
fix: register UI event listeners through UIInitListener (#530)
mcollovati Sep 1, 2026
e69fb4f
chore: import vaadin-cdi with git history to flow
totally-not-ai[bot] Sep 7, 2026
872e1f4
chore: add vaadin-cdi as child module
totally-not-ai[bot] Sep 7, 2026
7fc9749
chore: make vaadin-cdi-tests a child of flow-tests
totally-not-ai[bot] Sep 7, 2026
df2eac0
chore: apply Flow code formatting to the CDI sources
totally-not-ai[bot] Sep 7, 2026
275dca8
ci: run the CDI integration tests
totally-not-ai[bot] Sep 7, 2026
dba2df9
docs: document vaadin-cdi as a Flow module
totally-not-ai[bot] Sep 7, 2026
ced204c
ci: make the CDI test job able to fail
totally-not-ai[bot] Sep 7, 2026
9ac9aac
fix: sanitize the effective POM the CDI tests deploy from
totally-not-ai[bot] Sep 7, 2026
db7d178
fix: converge the Arquillian versions in the CDI tests
totally-not-ai[bot] Sep 7, 2026
ec85beb
ci: pin the convergence check and silence the inherited antrun task
totally-not-ai[bot] Sep 7, 2026
e6ea0d7
Merge branch 'main' into chore/import-cdi-to-flow
mshabarov Sep 14, 2026
f986cc4
Apply suggestion from @Artur-
Artur- Sep 14, 2026
a292eee
chore: move vaadin-cdi-tests to the 25.4 version too
totally-not-ai[bot] Sep 14, 2026
00f9b12
chore: restore flow-client/package-lock.json
totally-not-ai[bot] Sep 14, 2026
d85739f
fix: address the reliability findings in the imported CDI code
totally-not-ai[bot] Sep 14, 2026
6eece66
test: cover the lookup side of the missing navigation data guard
totally-not-ai[bot] Sep 14, 2026
6d26168
ci: align the CDI test job with the rest of validation
mshabarov Sep 14, 2026
e9af8bf
ci: reconcile vaadin-cdi @since tags against its own index
mshabarov Sep 14, 2026
fe4a368
chore(vaadin-cdi-tests): stop parse-version instead of scrubbing its …
mshabarov Sep 14, 2026
6b9ca6f
chore(vaadin-cdi-tests): scope the Liberty Arquillian adapter to tests
mshabarov Sep 14, 2026
365e506
docs: record vaadin-cdi-tests in the flow-tests guides
mshabarov Sep 14, 2026
478d0ce
Merge branch 'main' into chore/import-cdi-to-flow
mshabarov Sep 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
15 changes: 15 additions & 0 deletions .github/workflows/update-since-tags.yml
Original file line number Diff line number Diff line change
Expand Up @@ -78,6 +78,21 @@ jobs:
artifacts: |
vaadin-spring

# vaadin-cdi needs its own isolated index for the same reason vaadin-spring
# does, and the reasoning above applies unchanged: under the same
# com.vaadin:vaadin-cdi GAV it kept its own scheme -- 46 releases from
# 1.0.0.alpha1 to 16.1.2 -- before the module was imported into this
# repository and started releasing with Flow's version number. Pooling
# those onto the shared axis would drop 16.x into the gap between Flow 9.2
# and 23.0 and rewrite @since across most of the framework.
- uses: vaadin/github-actions/reconcile-since-tags@2a6fabc668c09424c29ca789789e9bf0720de8ee
with:
group-id: com.vaadin
version: ${{ inputs.dev }}
index-dir: .since-index-cdi
artifacts: |
vaadin-cdi

- name: Open pull request
uses: peter-evans/create-pull-request@c5a7806660adbe173f04e3e038b0ccdcd758773c # v6.1.0
with:
Expand Down
170 changes: 168 additions & 2 deletions .github/workflows/validation.yml
Original file line number Diff line number Diff line change
Expand Up @@ -283,6 +283,172 @@ jobs:
with:
name: tests-output-it-${{ matrix.current }}
path: tests-report-*.tgz
cdi-tests:
name: CDI Tests (${{ matrix.profile }})
# The CDI integration tests deploy to a real application server, which the
# generic it-tests matrix cannot express, so computeMatrix.js excludes the
# module and it runs here instead. Every change runs the tomee profile as
# a smoke test; the other four containers only run when the CDI sources
# themselves change, since that is when a container specific regression
# gets introduced. Needs the TestBench licence, so not for forks.
needs: build
if: ${{ !github.event.pull_request.head.repo.fork }}
timeout-minutes: 45
strategy:
fail-fast: false
matrix:
profile: [tomee, wildfly, payara, liberty, tomcat-weld]
runs-on: ubuntu-24.04
steps:
- uses: actions/checkout@93cb6efe18208431cddfb8368fd83d5badbf9bfd # v5.0.1
with:
ref: ${{env._HEAD_SHA}}
# Full history only where the step below actually diffs. tomee is
# ungated, so cloning the whole repository for it buys nothing.
fetch-depth: ${{ matrix.profile == 'tomee' && 1 || 0 }}
- name: Decide whether to run
# Same gating as gradle-tests below: a push or a manual run has nothing
# to compare against, and a gate that cannot tell what changed has to
# run the job rather than report green.
#
# The root pom counts as a CDI source: it manages weld.version, which
# the tomcat-weld profile resolves weld-servlet-shaded from, so a bump
# there is exactly the kind of change only the gated containers see.
id: decide
run: |
set -euo pipefail
run=true
if [ "${{ matrix.profile }}" != "tomee" ]; then
DIFF_BASE=
case "$GITHUB_EVENT_NAME" in
pull_request)
if git fetch --no-tags origin \
"+refs/heads/$_BASE_REF:refs/remotes/origin/$_BASE_REF"; then
DIFF_BASE=$(git merge-base HEAD "refs/remotes/origin/$_BASE_REF" || true)
fi
;;
merge_group)
DIFF_BASE=$_MERGE_GROUP_BASE_SHA
;;
esac
if [ -z "$DIFF_BASE" ]; then
echo "No base to compare against, running every container."
elif ! CHANGED=$(git diff --name-only "$DIFF_BASE" HEAD); then
echo "Could not diff against $DIFF_BASE, running every container."
else
RELEVANT=$(printf '%s\n' "$CHANGED" | grep -E \
'^(vaadin-cdi/|flow-tests/vaadin-cdi-tests/|pom\.xml$|\.github/workflows/validation\.yml$)' || true)
if [ -z "$RELEVANT" ]; then
echo "No changes to the CDI modules, tomee alone covers this."
run=false
else
echo "Changes to the CDI modules:"
printf '%s\n' "$RELEVANT"
fi
fi
fi
echo "run=$run" >> "$GITHUB_OUTPUT"
- uses: actions/setup-node@48b55a011bda9f5d6aeb4c2d9c7362e8dae4041e # v6.4.0
if: ${{ steps.decide.outputs.run == 'true' }}
with:
node-version: '24.21.0'
- uses: pnpm/action-setup@0ebf47130e4866e96fce0953f49152a61190b271 # v6.0.9
if: ${{ steps.decide.outputs.run == 'true' }}
with:
version: '11.26.0'
- name: Set up JDK
if: ${{ steps.decide.outputs.run == 'true' }}
uses: actions/setup-java@be666c2fcd27ec809703dec50e508c2fdc7f6654 # v5.2.0
with:
java-version: "${{ env.JAVA_VERSION }}"
distribution: 'temurin'
- name: Set flow version to 999.99-SNAPSHOT
if: ${{ steps.decide.outputs.run == 'true' }}
run: |
./scripts/computeMatrix.js set-version --version=999.99-SNAPSHOT
- uses: actions/cache@27d5ce7f107fe9357f9df03efb73ab90386fccae # v5.0.5
if: ${{ steps.decide.outputs.run == 'true' }}
with:
path: ~/.m2/repository
key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }}
restore-keys: ${{ runner.os }}-maven-
- uses: actions/download-artifact@3e5f45b2cfb9172054b4087a40e8e0b5a5461e7c # v8.0.1
if: ${{ steps.decide.outputs.run == 'true' && github.run_attempt == 1 }}
with:
name: saved-workspace
- name: Restore Workspace
if: ${{ steps.decide.outputs.run == 'true' && github.run_attempt == 1 }}
run: |
tar xf workspace.tar
tar cf - .m2 | (cd ~ && tar xf -)
- name: Compile and Install Flow
if: ${{ steps.decide.outputs.run == 'true' && github.run_attempt > 1 }}
run: |
./scripts/computeMatrix.js set-version --version=999.99-SNAPSHOT
cmd="mvn install -B -ntp -DskipTests -pl \!flow-plugins/flow-gradle-plugin"
eval $cmd -T 2C -q || eval $cmd
- name: Set TB License
if: ${{ steps.decide.outputs.run == 'true' }}
env:
TB_LICENSE: ${{ secrets.TB_LICENSE }}
run: |
mkdir -p ~/.vaadin/
echo '{"username":"'`echo $TB_LICENSE | cut -d / -f1`'","proKey":"'`echo $TB_LICENSE | cut -d / -f2`'"}' > ~/.vaadin/proKey
- name: Verify the no-container build skips its tests
# cdi.container.tests.skip only takes effect when no container profile
# is active, which no other job exercises: the module lives in the
# it-test-modules profile, so `mvn install -DskipTests` leaves it out,
# and every leg below passes -P<container>. Assert it here, once, so a
# regression surfaces in CI rather than in someone's `mvn verify` over
# flow-tests.
if: ${{ steps.decide.outputs.run == 'true' && matrix.profile == 'tomee' }}
run: |
set -e
LOG=mvn-cdi-no-profile.out
mvn -B -ntp -e -pl flow-tests/vaadin-cdi-tests verify >"$LOG" 2>&1 || {
cat "$LOG"; exit 1; }
cat "$LOG"
if grep -qE '^\[INFO\] Tests run:' "$LOG"; then
echo "::error::CDI container tests ran without a container profile"
exit 1
fi
grep -q 'Tests are skipped' "$LOG" || {
echo "::error::surefire did not report the tests as skipped"; exit 1; }
- name: Run CDI ITs
if: ${{ steps.decide.outputs.run == 'true' }}
timeout-minutes: 35
run: |
# enforcer:enforce has to be named explicitly: the Flow parent keeps
# the dependencyConvergence rule in the default-cli execution, so no
# lifecycle phase evaluates it. Each container profile brings its own
# Arquillian adapter, so this is where a divergence would appear.
cmd="mvn -V -B -ntp -e -pl flow-tests/vaadin-cdi-tests -P${{ matrix.profile }} -Dcom.vaadin.testbench.Parameters.maxAttempts=2"
set -x -e
LOG=mvn-cdi-tests-${{ matrix.profile }}.out
: > "$LOG"
# Detached the same way the it-tests job detaches its Maven, and for
# the same reason twice over: these tests fork application server
# JVMs that can outlive Maven and pin the step open by holding a pipe
# to tee, and piping would also make the step exit with tee's status
# instead of Maven's, so a failing container would report success.
$cmd enforcer:enforce verify </dev/null >"$LOG" 2>&1 &
MVN_PID=$!
tail -f --pid=$MVN_PID "$LOG" &
wait $MVN_PID
- name: Kill leftover Java processes
if: ${{ always() && steps.decide.outputs.run == 'true' }}
run: |
pkill -TERM java || true
sleep 2
pkill -KILL java || true
- name: Package test-report files
if: ${{ always() && steps.decide.outputs.run == 'true' }}
run: find . -name surefire-reports -o -name failsafe-reports -o -name error-screenshots -o -name "mvn-*.out" | tar -czf tests-report-cdi-${{ matrix.profile }}.tgz -T -
- uses: actions/upload-artifact@043fb46d1a93c77aae656e7c1c64a875d1fc6a0a # v7.0.1
if: ${{ always() && steps.decide.outputs.run == 'true' }}
with:
name: tests-output-cdi-${{ matrix.profile }}
path: tests-report-*.tgz
gradle-tests:
name: Gradle Tests
# Ports the TeamCity 'Gradle Tests' build. Always runs so it can be marked
Expand Down Expand Up @@ -556,7 +722,7 @@ jobs:
# was cancelled, and a skipped required check satisfies branch
# protection — letting auto-merge proceed past a cancelled IT.
if: ${{ always() && !github.event.pull_request.head.repo.fork }}
needs: [unit-tests, it-tests]
needs: [unit-tests, it-tests, cdi-tests]
runs-on: ubuntu-24.04
steps:
- name: Merge Artifacts
Expand All @@ -579,7 +745,7 @@ jobs:
run: |
./scripts/computeMatrix.js test-results >> $GITHUB_STEP_SUMMARY
- name: Set Failure Status
if: ${{ always() && (needs.unit-tests.result != 'success' || needs.it-tests.result != 'success') }}
if: ${{ always() && (needs.unit-tests.result != 'success' || needs.it-tests.result != 'success' || needs.cdi-tests.result != 'success') }}
run: |
echo "🚫 THERE ARE TEST MODULES WITH FAILURES or BEEN CANCELLED" | tee -a $GITHUB_STEP_SUMMARY
exit 1
Expand Down
1 change: 1 addition & 0 deletions CLAUDE.md
Original file line number Diff line number Diff line change
Expand Up @@ -27,6 +27,7 @@ React support).
- `flow-devloop-daemon`: daemon for the `vaadin-dev` dev loop
- `flow-tests/`: integration test suite
- `vaadin-spring`: Spring Framework integration
- `vaadin-cdi`: CDI integration

See `guidelines/repository.md` for the full module map and
`guidelines/architecture.md` for how the pieces fit together.
Expand Down
5 changes: 5 additions & 0 deletions flow-bom/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -126,6 +126,11 @@
<artifactId>vaadin-spring</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>vaadin-cdi</artifactId>
<version>${project.version}</version>
</dependency>
<dependency>
<groupId>com.vaadin</groupId>
<artifactId>flow-webpush</artifactId>
Expand Down
5 changes: 3 additions & 2 deletions flow-tests/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,7 @@ copying the test. Never add the same test in two places.

1. Needs a non-Spring-Boot container? → plain `VaadinServlet` / custom servlet
service: **test-plain-servlet**; Spring MVC without Boot: **test-plain-spring**;
CDI: **test-cdi**.
CDI: **vaadin-cdi-tests**.
2. Needs Spring Security? → **test-spring-security** (its url-mapping /
context-path / method-security / route-path variants live here as profiles).
3. Needs a specific theme setting? → custom application theme: **test-themes**;
Expand Down Expand Up @@ -73,7 +73,7 @@ copying the test. Never add the same test in two places.
| **test-spring-security** | Spring Security (auth, url-mapping, method / route-path checks) |
| **test-livereload** | live reload |
| **test-redeployment** | Spring DevTools restart |
| **test-cdi** (future) | the CDI container |
| **vaadin-cdi-tests** | the CDI container (deploys to a real application server, so it runs only under a container profile) |

Some tests need irreducible special infrastructure and keep their own modules:
`servlet-containers` (non-Jetty containers), `test-multi-war`,
Expand Down Expand Up @@ -178,6 +178,7 @@ Active when `-DskipTests` is **not** set (the default).
| Module | Description |
|--------|-------------|
| **servlet-containers** | Aggregator that runs integration tests on servlet containers other than the default Jetty. Contains a `tomcat10` submodule deploying the root-context WAR onto Apache Tomcat 10 via the Cargo plugin. |
| **vaadin-cdi-tests** | Arquillian suite for the `vaadin-cdi` integration, deploying to TomEE, WildFly, Payara, Open Liberty and Tomcat+Weld: CDI scopes and contexts, the instantiator, push, i18n, templates and deployment validation. Every test needs an application server, so its tests are skipped unless one of the container profiles is active — see [vaadin-cdi-tests/README.md](vaadin-cdi-tests/README.md). |

## Nightly Profile

Expand Down
1 change: 1 addition & 0 deletions flow-tests/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -384,6 +384,7 @@
<module>test-custom-frontend-directory</module>

<module>vaadin-spring-tests</module>
<module>vaadin-cdi-tests</module>
<module>test-vaadin-router</module>
<module>test-react-adapter</module>
<module>test-react-adapter/pom-production.xml</module>
Expand Down
Empty file.
41 changes: 41 additions & 0 deletions flow-tests/vaadin-cdi-tests/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Vaadin CDI tests

Arquillian tests for `vaadin-cdi`. Each test deploys a WAR, assembled by
ShrinkWrap from this module's effective POM, to a real application server, so
one of the container profiles has to be selected — without a profile the tests
are skipped rather than failed:

```sh
mvn verify -pl flow-tests/vaadin-cdi-tests -Ptomee
```

The available profiles are `tomee`, `wildfly`, `payara`, `liberty` and
`tomcat-weld`. Validation runs `tomee` for every change and the rest when the
CDI sources themselves change; see the `cdi-tests` job in
`.github/workflows/validation.yml`.

Run these on **JDK 21**, the version validation uses. On JDK 24 and later
`java.security.Policy.setPolicy` throws `UnsupportedOperationException` (the
Security Manager is gone, JEP 486), and TomEE calls it while installing its
JACC policy provider, so the container never starts and every test fails with
`Could not install JACC Policy Provider` rather than anything about CDI.

The tests drive a real Chrome through TestBench, so a `~/.vaadin/proKey` is
required and browser windows open while they run.

The tests carrying the `SlowTests` category are excluded by default. They
still need a container, so enable them alongside one:

```sh
mvn verify -pl flow-tests/vaadin-cdi-tests -Ptomee,slow-tests
```

### Dependencies for tests

If there is a need to add or remove a dependency from the test module
the library should be also be added/removed from the `base(String warName)`
method in `ArchiveProvider`.

If the tomee execution doesn't return any clear indication on a failure
except 404 for a module then running with the wildfly profile will often
yield better exception information.
Loading
Loading