adobe / adobe/aem-core-forms-components
Regression: core.forms.components.version > 1.1.66 causes Forms API/classpath failures
- Dominant language
- JavaScript
- Stars
- 36
- Forks
- 62
- Avg merge
- 1d 6h
- Merged PRs (30d)
- 8
Description
### Expected Behaviour
Upgrading AEM Forms Core Components should not break consumer build/tests.
The project should build successfully without adding local compatibility stubs/shims for missing Adobe Forms classes.
### Actual Behaviour
When `core.forms.components.version` is upgraded above `1.1.66`, build/test failures occur in `core`, including:
- compile-time API mismatch (missing override for `getOptionScreenReaderLabels()`),
- runtime/test classloading failure (`NoClassDefFoundError: com/adobe/fd/fp/api/exception/FormsPortalException`),
- binary compatibility error observed in tests (`IncompatibleClassChangeError` on USC `Query` type shape mismatch).
### Reproduce Scenario (including but not limited to)
Regression appears when moving from known good Forms components version to newer versions.
#### Steps to Reproduce
1. In `pom.xml`, set:
- `core.forms.components.version` to a version `> 1.1.66`
2. Run:
```zsh
mvn clean install
#### Platform and Version
IntelliJ IDEA 2026.1.3
#### AEM Version (mention the exact version in case of cloud SDK)
io.wcm.maven:io.wcm.maven.aem-dependencies:6.6.3.0000
#### AEM Forms Version
Last known working: core.forms.components.version=1.1.66
Failing versions: > 1.1.66
#### Sample Code that illustrates the problem
Affected consumer classes:
components/checkboxgroup/CheckBoxGroupImpl.java
components/radiobutton/RadioButtonImpl.java
Method required by newer API contract:
@Override
public String[] getOptionScreenReaderLabels() {
return .getOptionScreenReaderLabels();
}
#### Logs taken while reproducing problem
[ERROR] ...CheckBoxGroupImpl is not abstract and does not override abstract method getOptionScreenReaderLabels() in com.adobe.cq.forms.core.components.models.form.OptionsConstraint
[ERROR] ...RadioButtonImpl is not abstract and does not override abstract method getOptionScreenReaderLabels() in com.adobe.cq.forms.core.components.models.form.OptionsConstraint
NoClassDefFoundError: com/adobe/fd/fp/api/exception/FormsPortalException
java.lang.IncompatibleClassChangeError: class com.adobe.cq.forms.core.components.internal.models.v1.formsportal.DraftsAndSubmissionsImpl$QueryImpl can not implement com.adobe.forms.foundation.usc.model.Query, because it is not an interface
Contributor guide
Research direction
Start with pom.xml and reproduce the failure using core.forms.components.version above 1.1.66 with mvn clean install. Then inspect components/checkboxgroup/CheckBoxGroupImpl.java and components/radiobutton/RadioButtonImpl.java alongside the reported Forms API and classloading errors. Done means the project builds and tests without compatibility stubs or shims across the affected versions.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- java
- Domain
- backend-api-design, build-system
- Issue type
- Bug
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Activity status
- Active
- Clarity
- Clearly specified
- Newbie friendliness
- 58/100