[
https://issues.apache.org/jira/browse/GROOVY-11434?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=18131938#comment-18131938
]
ASF GitHub Bot commented on GROOVY-11434:
-----------------------------------------
paulk-asert commented on PR #2989:
URL: https://github.com/apache/groovy/pull/2989#issuecomment-6402421018
Thanks Daniel, all six points addressed in 33fd7789a1:
1. **Distribution.** `optionalModule()` only keeps groovy-fx out of
`groovy-all`. Like the other optional modules (ginq, contracts, toml, csv), the
jar still goes into the binary distribution's `lib/` and is managed by the BOM.
Shipping the jar brings in no JavaFX: the generated POM depends only on
`groovy` plus the BOM import, and the Gradle module metadata has no
`org.openjfx` entry in any variant.
2. **Classifiers.** Following on from 1: OpenJFX is `compileOnlyApi`, which
isn't published, so consumers don't inherit a classifier-less stub or any
OpenJFX coordinates. The guide's "A build tool" entry now says so. The
consumer's build has to declare `javafx-base`, `javafx-graphics` and
`javafx-controls` for its own platform, or the IDE won't resolve the JavaFX
types.
3. **Toolkit lifecycle.** There's a new Troubleshooting section under
Threading. It lists the two `IllegalStateException` messages `GroovyFX` can
throw: the toolkit has already been shut down and cannot be restarted in this
JVM (usually implicit exit after the last window closed), and the toolkit did
not start within the timeout (no display; use Monocle or JavaFX 26+ headless,
or raise `groovyfx.toolkit.timeout`).
4. **`@Bindable` + `@FXBindable`.** Good catch. The combination was
order-dependent: one order failed with a misleading "setter is declared
explicitly" error, and the other compiled with `@Bindable` wrapping the
generated setter. It's now a compile error in every combination (both
annotation orders on a property, and either annotation at class level with the
other on a property). The message points to `javafx.beans.property.adapter`.
For anyone who really needs both, the guide has an example
(`fxbindable_adapter`) that exposes a `@Bindable` property as a JavaFX property
with `JavaBeanStringPropertyBuilder`, plus a test showing changes flow both
ways.
5. **Node list.** The guide now includes a generated node reference, built
the same way as the SwingBuilder widget docs. It also takes on board the
formatting feedback in apache/groovy-website#46: one table per registration
group, in builder order, each class linked to its OpenJFX 21 javadoc page
(module path derived from the jar), plus the `fx`/`fxLater` utility methods.
Regenerate it with `./gradlew :groovy-fx:generateSceneGraphBuilderNodeDocs`. To
share the generator plumbing I pulled the Swing task's mechanics into a small
`BuilderDocTask` in build-logic; the Swing output is byte-identical.
6. **`--add-opens`.** None needed, and the testing section now says so
explicitly. The module runs on JDK 17 through 25 without
`--add-opens`/`--add-exports`. CI covers ubuntu 17/21/25 plus windows/mac 17.
The tests that start the toolkit run on 21+ only, because Monocle 21 is a Java
21 class file.
> Include GroovyFx in Apache Groovy
> ---------------------------------
>
> Key: GROOVY-11434
> URL: https://issues.apache.org/jira/browse/GROOVY-11434
> Project: Groovy
> Issue Type: New Feature
> Components: Swing
> Affects Versions: 4.0.22
> Reporter: Pruteanu Dragos
> Assignee: Paul King
> Priority: Major
> Fix For: 7.x
>
>
> Please include the project
> [GroovyFX|[http://groovyfx.org|http://groovyfx.org/]] into the Apache Groovy
> repository. The public repository is
> [here|https://github.com/groovyfx-project/groovyfx]. The project is very
> nice, something similar to groovy-swing. There has been no updates to that
> project, and there are compatibility issues with latest OpenJDKs.
> JavaFX is the highest standard regarding User Interfaces. The project is very
> nice and there are users interested in it.
--
This message was sent by Atlassian Jira
(v10.3.26#10030026)