[ 
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)

Reply via email to