Closed salmonb closed 6 months ago
Excellent question, and one that comes up more than I'd like. Here's the "short"/focused version, check out the nitty gritty details in the README (or ask, and I'll elaborate here on any specific points) for the long version...
...The Java we all know and love has backward compatible bytecode, and so can distribute jar files with bytecode in them, and expect that future versions of Java will still be able to use them. This is not true for j2cl - there have been at least a few rounds of backwards-incompatible calling convention changes, and there is no reason to assume there won't be more. As a result, we can't encourage teams to upload jar files containing transpiled JS sources to maven repositories - or if we did, we would somehow need them to update those jar files as each ABI change happened - seems like a non-starter to me.
So instead, we have to recompile those sources from scratch, based on the project's own sources. This means constructing the initial compile-time classpath that was used when that particular project was built - and that means pulling in scope=provided sources, since those were available at compile time.
Why not ignore those and permit the downstream application to manage dependencies, and just make one giant classpath, compiling all at once? This is after all what GWT does - and the Google team who devised that process iterated for many years at improving it, before giving up and moving to J2CL. But look a little closer at that move to J2CL, and you'll see that specifically building small projects separately (and isolated!) across a large dependency graph is what J2CL is good at. On the flip side, J2CL is not a build system like GWT was, and assumes you bring your own build system, and the choices today are maven or bazel. Maven is pretty awful at a lot of things, including being certain about what can and cannot be cached, which is why so many of us maven users get very comfortable with calling mvn clean install
for every build - just to be sure.
But that is brutal on build times for j2cl projects, so this plugin effectively has become its own build tool, inside of maven. Loosely modeled around the same principles as bazel and gradle, this plugin tries very hard to build each dependency in its own clean environment, and that means ensuring that it only has its own classpath, rather mushing all the sources and dependencies together into one giant classpath.
This necessarily means reading the pom of each project, and building it as if it were from scratch - provided deps get pulled in to the classpath, even if they won't be there at run time (in this case, this means they won't get passed to closure-compiler to produce the "runtime" js, so they won't be present in the browser).
On the plus side, we don't need/want/use a .gwt.xml file any more, but rely on the project itself having an accurate list of dependencies. The upshot of the deal is that if you don't change your dependency list, but do change sources, we only recompile your sources and all of your dependencies are already built (as long as you don't clean
... or as long as you move your build cache out of target/
). You can even change some of your dependencies without forcing a rebuild of any of the others, so you only pay for what you change - and if those dependency changes keep some transitive deps, those are also kept without being recompiled.
It sounds like you might have something like recursive dependencies, cycles in your dependency graph, that can never be fully resolved? I understand that while GWT can handle this, it isn't something that this plugin will be capable of. There are forks or other implementations that do just put all of the sources into a single classpath, and that might suit you better, but at the cost of performance for making small changes quickly.
I hope this helps - I can try to take a closer look at exactly what is going wrong next week sometime.
Thanks for you quick reply.
I'm pretty sure I don't have a cycle in my dependency graph (otherwise the Maven reactor would detect it and stop the build straightaway, before calling your plugin). So I don't think the explanation of the plugin error is a dependency cycle.
Just to be brief without entering into much details, here is a summary of what I want to achieve:
provided
(meaning that if an executable module uses this source module, it is its responsibility to also provide the OpenJFX modules, they won't be automatically pulled from this source module).Do you see what I want to achieve, and do you think it's possible with your plugin? Or will your plugin always pull the OpenJFX modules, thinking they are part of the source that J2CL needs to compile?
Thanks for you quick reply.
I'm pretty sure I don't have a cycle in my dependency graph (otherwise the Maven reactor would detect it and stop the build straightaway, before calling your plugin). So I don't think the explanation of the plugin error is a dependency cycle.
Just to be brief without entering into much details, here is a summary of what I want to achieve:
- having a cross-platform (i.e platform-independent) main Java source module of the application that uses the official JavaFX API and that is therefore compiled with Javac at this point by Maven together with the official OpenJFX modules, but these modules are declared
provided
(meaning that if an executable module uses this source module, it is its responsibility to also provide the OpenJFX modules, they won't be automatically pulled from this source module).- having an executable j2cl module that takes this application source code (through a Maven dependency to the main module) but instead of providing the official OpenJFX modules, it will provide another implementation of JavaFX (exact same API but GWT/J2CL compatible). This implementation consists of WebFX modules declared in the pom.xml of this j2cl module, and this is this implementation (and not OpenJFX) that needs to be compiled by J2CL together with the application source code.
Do you see what I want to achieve, and do you think it's possible with your plugin? Or will your plugin always pull the OpenJFX modules, thinking they are part of the source that J2CL needs to compile?
Some time ago, we completed porting a large GWT project to J2CL. We had to solve numerous issues in porting, as not all GWT components can work in J2CL. Here are some of the notes:
If you need help, I will be glad to help you.
Thanks @treblereel for pointing this out, but I think the WebFX framework is ready for J2CL, as I already replaced all the JSNI code with elemental2 JsInterop, and I don't use any GWT widgets or third-party UI frameworks (WebFX is the UI framework). I also developed my own JSON/YAML parsers and marshallers and it's pure Java code that should work with J2CL too.
I actually just finished the JSNI => elemental2 migration, that's why I'm now trying the next step, the actual J2CL compilation! I'm investigating this plugin (rather than Bazel) because WebFX is Maven-based.
If we find a solution to this first issue and get the right modules to pass to J2CL, then of course I may encounter other problems I didn't think about with the WebFX code. But if I'm stuck, I will remember I can ask your help π Thank you!
I noticed a <dependencyReplacements>
parameter in your plugin.
Can I use it to replace all OpenJFX modules with WebFX modules?
I can provide for each OpenJFX module GAV the corresponding WebFX module GAV.
But I don't know how to enter this mapping in <dependencyReplacements>
as it's not documented.
If I can do that, this may solve the issue.
You certainly could use that (in any project, not just webfx), but you must take care to ensure all projects use it, and always check what the latest plugin default is, and the latest webfx is as well. The purpose of this isn't really for offering emulation, but it does work that way. Instead, the goal is to take an ostensibly j2cl-compatible-out-of-the-box jar that ... actually isn't compatible at all, and replace it with on that is. Specifically, Google ships jsinterop-base jars on a semi-regular basis, based on the changing needs of J2CL itself, and always takes pains to ensure those are GWT-compatible, but only ships the GWT-compatible versions (instead of making a version that is compatible with both compilers, etc). So this is an internal detail of mapping a project that should be compatible both with GWT and J2CL, and making sure it actually is so.
In other words, each release of webfx will need to check supported versions (may well be "just one version") of j2cl-maven-plugin to see what the default values are for this configuration option, and merge with its own required replacements. Then, any downstream projects when changing webfx version will in turn need to check the published version of webfx's dependencyReplacements. If you're content with this, I won't argue, but it is intended to be an internal implementation detail and not really meant to be publicly exposed since it will be so brittle.
I'm trying to find the branch of webfx that has the -j2cl
-suffixed projects where you've done your testing so I can take a look and make suggestions - can you point me at it? I can't see it in the upstream project, its branches, your fork's branches, or any of the links you've given above...
Look at the j2cl branch of this repo, which is the simplest webfx demo I have. I'm using it for my first investigation with j2cl.
Your plugin is called by this pom.xml, but the actual configuration of the plugin is defined in the webfx parent pom here, which should help to keep all webfx projects updated.
I'm happy to try dependencyReplacements until we find maybe another better solution. Can you please give me the syntax?
Take a look at https://github.com/Vertispan/j2clmavenplugin/blob/320e5ba05f2916cb14839a829f73151776d1755b/j2cl-maven-plugin/src/main/java/com/vertispan/j2cl/mojo/AbstractBuildMojo.java#L81-L83 and https://github.com/Vertispan/j2clmavenplugin/blob/320e5ba05f2916cb14839a829f73151776d1755b/j2cl-maven-plugin/src/main/java/com/vertispan/j2cl/mojo/AbstractBuildMojo.java#L91-L97
And here's an integration test showing its use: https://github.com/Vertispan/j2clmavenplugin/blob/320e5ba05f2916cb14839a829f73151776d1755b/j2cl-maven-plugin/src/it/dependency-replacements/app/pom.xml#L29-L34
Standard mojo "that bean has properties that look like the xml values in configuration" rules apply. The original
field isn't optional, specify the groupId+artifactId that will be identified, version is optional (if not specified, replace all versions). If specified, replacement
indicaes the group+artifact+version to use whenever the original is encountered. Transitive dependencies are not added automatically, so some care must be taken here (this was hard to cleanly reconcile with maven's own dependency management rules).
The recursive dependency is https://search.maven.org/artifact/org.openjfx/javafx-base/19/jar - notice how it apparently depends on itself?
dev.webfx:webfx-demo-colorfulcircles-application-j2cl:jar:0.1.0-SNAPSHOT
depends on
dev.webfx:webfx-demo-colorfulcircles-application:jar:0.1.0-SNAPSHOT:compile
, which depends on
org.openjfx:javafx-base:jar:19:provided
, which depends on (due to the javafx.platform property being set somewhere)
org.openjfx:javafx-base:jar:linux:19:compile
, which depends on
org.openjfx:javafx-base:jar:linux:19:compile
and so on forever.
We could add a specific workaround for this situation, but I'm not sure how this is even legal for maven to handle?
In theory, if we had already finished building the structure for javafx-base, this error wouldn't have happened since we would just look up its pre-build structure, but until we resolve its actual dependencies, we can't work out how to compile it, and we can't work out how to compile it until we resolve its actual dependencies...
The best workaround is probably to just automatically stop loops like this where A->A. That won't work for cases of A->B->A and so on, since A actually might need B on its classpath and vice versa, but it is a pretty safe bet that A always already has A on its classpath.
Any idea what they are trying to achieve with such a structure?
No idea π€· I can eventually ask Johan Vos about it.
Anyway if we manage to configure your plugin to never pull org.openjfx:*:*
artifacts (which is precisely what I'm trying to do), we won't have this infinite loop issue anymore.
I added a <dependencyReplacements>
section in your plugin configuration as follow:
But I'm still getting the same error... Did I write something wrong?
I'm afraid I was unclear, or you misunderstood - each application must set this when they define their j2cl-maven-plugin invocations. This is why I specified that when webfx picks a working j2cl version, the project should define the values to specify for all downstream applications to use, so that they correctly have the matching j2cl-maven-plugin version, the default replacement values (jsinterop-base being the most important here), and webfx's replacement values. Maven plugin values are not used by dependent projects.
Sorry, I missed that point and forgot the default replacement values indeed...
So I added them as follow:
It's definitely a step forward as I'm now getting replacement logs from your plugin π₯³
However, it still ends with a StackOverflowError:
[INFO] Removing dependency org.openjfx:javafx-base:jar:19:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:19:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:19:provided, replacing with dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:19:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:19:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:19:provided, replacing with dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:19:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:19:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:19:provided, replacing with dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT
...
---------------------------------------------------
java.lang.StackOverflowError
at org.codehaus.plexus.util.xml.pull.MXParser.parseStartTag(MXParser.java:2261)
at org.codehaus.plexus.util.xml.pull.MXParser.nextImpl(MXParser.java:1413)
at org.codehaus.plexus.util.xml.pull.MXParser.next(MXParser.java:1375)
at org.codehaus.plexus.util.xml.Xpp3DomBuilder.build(Xpp3DomBuilder.java:241)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parsePluginExecution(MavenXpp3ReaderEx.java:3444)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parsePlugin(MavenXpp3ReaderEx.java:3190)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parsePluginManagement(MavenXpp3ReaderEx.java:3497)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parseBuild(MavenXpp3ReaderEx.java:1081)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.parseModel(MavenXpp3ReaderEx.java:2638)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.read(MavenXpp3ReaderEx.java:626)
at org.apache.maven.model.io.xpp3.MavenXpp3ReaderEx.read(MavenXpp3ReaderEx.java:658)
at org.apache.maven.model.io.DefaultModelReader.read(DefaultModelReader.java:91)
at org.apache.maven.model.io.DefaultModelReader.read(DefaultModelReader.java:74)
at org.apache.maven.model.building.DefaultModelProcessor.read(DefaultModelProcessor.java:99)
at org.apache.maven.model.building.DefaultModelBuilder.readModel(DefaultModelBuilder.java:552)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:257)
at org.apache.maven.model.building.DefaultModelBuilder.build(DefaultModelBuilder.java:243)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:176)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:333)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:295)
at org.apache.maven.project.DefaultProjectBuilder.initParent(DefaultProjectBuilder.java:911)
at org.apache.maven.project.DefaultProjectBuilder.initProject(DefaultProjectBuilder.java:674)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:188)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:333)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:295)
at org.apache.maven.project.DefaultProjectBuilder.initParent(DefaultProjectBuilder.java:911)
at org.apache.maven.project.DefaultProjectBuilder.initProject(DefaultProjectBuilder.java:674)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:188)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:333)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:295)
at org.apache.maven.project.DefaultProjectBuilder.initParent(DefaultProjectBuilder.java:911)
at org.apache.maven.project.DefaultProjectBuilder.initProject(DefaultProjectBuilder.java:674)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:188)
at org.apache.maven.project.DefaultProjectBuilder.build(DefaultProjectBuilder.java:333)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.resolveNonReactorProjectForArtifact(AbstractBuildMojo.java:366)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.buildProjectHelper(AbstractBuildMojo.java:318)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.buildProjectHelper(AbstractBuildMojo.java:320)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.buildProjectHelper(AbstractBuildMojo.java:320)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.buildProjectHelper(AbstractBuildMojo.java:320)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.buildProjectHelper(AbstractBuildMojo.java:320)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.buildProjectHelper(AbstractBuildMojo.java:320)
...
Is it still caused by that internal self dependency in OpenJFX?
Why is your plugin still digging into the OpenJFX internal dependencies after replacement?
Also a couple of interesting infos maybe:
mvn dependency:tree
under the -j2cl
module, I'm getting:
[INFO] Scanning for projects... [INFO] [INFO] -------< dev.webfx:webfx-demo-colorfulcircles-application-j2cl >-------- [INFO] Building webfx-demo-colorfulcircles-application-j2cl 0.1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ webfx-demo-colorfulcircles-application-j2cl --- [INFO] dev.webfx:webfx-demo-colorfulcircles-application-j2cl:jar:0.1.0-SNAPSHOT [INFO] +- dev.webfx:webfx-demo-colorfulcircles-application:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT:compile [INFO] - dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-kit-javafxgraphics-peers:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-kit-launcher:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-boot:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-meta:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-resource:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-kit-util:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-console:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-scheduler:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-shutdown:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-uischeduler:jar:0.1.0-SNAPSHOT:compile [INFO] - dev.webfx:webfx-platform-util:jar:0.1.0-SNAPSHOT:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 1.325 s [INFO] Finished at: 2024-02-06T12:46:26Z [INFO] ------------------------------------------------------------------------
As you can see, the openjfx modules (declared as `provided` in `dev.webfx:webfx-demo-colorfulcircles-application`) are ignored in this dependency graph, there are only webfx dependencies, which is what I was hoping from your plugin too (and there would be even no need of
`<dependencyReplacements>` in that case). But if you tell me that you have good reasons to not ignore the `provided` modules in your plugin, that's fine, I was just reporting the standard Maven behaviour.
- when I run `mvn dependency:tree` under the `-openjfx` module, I'm getting:
[INFO] Scanning for projects... [INFO] [INFO] ------< dev.webfx:webfx-demo-colorfulcircles-application-openjfx >------ [INFO] Building webfx-demo-colorfulcircles-application-openjfx 0.1.0-SNAPSHOT [INFO] from pom.xml [INFO] --------------------------------[ jar ]--------------------------------- [INFO] [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ webfx-demo-colorfulcircles-application-openjfx --- [INFO] dev.webfx:webfx-demo-colorfulcircles-application-openjfx:jar:0.1.0-SNAPSHOT [INFO] +- dev.webfx:webfx-demo-colorfulcircles-application:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-kit-openjfx:jar:0.1.0-SNAPSHOT:compile [INFO] | +- org.openjfx:javafx-base:jar:19:compile [INFO] | | - org.openjfx:javafx-base:jar:mac:19:compile [INFO] | +- org.openjfx:javafx-controls:jar:19:compile [INFO] | | - org.openjfx:javafx-controls:jar:mac:19:compile [INFO] | +- org.openjfx:javafx-graphics:jar:19:compile [INFO] | | - org.openjfx:javafx-graphics:jar:mac:19:compile [INFO] | +- dev.webfx:webfx-kit-javafxgraphics-peers:jar:0.1.0-SNAPSHOT:compile [INFO] | +- dev.webfx:webfx-kit-javafxgraphics-peers-base:jar:0.1.0-SNAPSHOT:compile [INFO] | | - dev.webfx:webfx-kit-util:jar:0.1.0-SNAPSHOT:compile [INFO] | +- dev.webfx:webfx-kit-launcher:jar:0.1.0-SNAPSHOT:compile [INFO] | +- dev.webfx:webfx-platform-os:jar:0.1.0-SNAPSHOT:compile [INFO] | +- dev.webfx:webfx-platform-scheduler:jar:0.1.0-SNAPSHOT:compile [INFO] | +- dev.webfx:webfx-platform-uischeduler:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-util:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-boot-java:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-boot:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-meta:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-console-java:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-console:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-os-java:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-resource-java:jar:0.1.0-SNAPSHOT:compile [INFO] | - dev.webfx:webfx-platform-resource:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-platform-scheduler-java:jar:0.1.0-SNAPSHOT:compile [INFO] - dev.webfx:webfx-platform-shutdown-java:jar:0.1.0-SNAPSHOT:compile [INFO] - dev.webfx:webfx-platform-shutdown:jar:0.1.0-SNAPSHOT:compile [INFO] ------------------------------------------------------------------------ [INFO] BUILD SUCCESS [INFO] ------------------------------------------------------------------------ [INFO] Total time: 0.881 s [INFO] Finished at: 2024-02-06T12:47:58Z [INFO] ------------------------------------------------------------------------
As you can see, there is actually no cyclic dependencies in the openjfx modules. OpenJFX is a cross-platform library, and their modules have dependencies to the specific underlying platform (a mac in my case). So `org.openjfx:javafx-base` depends on `org.openjfx:javafx-base:mac` and not on itself as you said (note the final `:mac` classifier). Could it be that your plugin is not considering the classifier and therefore think that these 2 modules are identical (creating a cyclic dependency)?
Hope this can help.
I cloned your plugin and made a few changes (I will open a PR later) to resolve the previous StackOverflowError. Here is what I'm getting now:
[INFO] Scanning for projects...
[INFO]
[INFO] -------< dev.webfx:webfx-demo-colorfulcircles-application-j2cl >--------
[INFO] Building webfx-demo-colorfulcircles-application-j2cl 0.1.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- enforcer:3.3.0:enforce (enforce-maven) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Copying 1 resource from src/main/resources to target/classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- j2cl:0.23-SNAPSHOT:build (build-js) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Removing dependency org.openjfx:javafx-base:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:21.0.2:provided, no replacement
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:21.0.2:provided, no replacement
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:mac:21.0.2:provided, no replacement
[INFO] Removing dependency org.openjfx:javafx-base:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:21.0.2:provided, no replacement
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxgraphics-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:mac:21.0.2:provided, no replacement
[INFO] Removing dependency org.openjfx:javafx-base:jar:21.0.2:provided, replacing with dev.webfx:webfx-kit-javafxbase-emul:jar:0.1.0-SNAPSHOT
[INFO] Removing dependency org.openjfx:javafx-base:jar:mac:21.0.2:provided, no replacement
[INFO] Removing dependency org.openjfx:javafx-graphics:jar:mac:21.0.2:provided, no replacement
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/unpack in 8ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/unpack in 185ms
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/unpack in 16ms
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/unpack
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/unpack
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/unpack in 662ms
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/unpack in 20ms
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/unpack in 70ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/unpack
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/bytecode
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/bytecode
[INFO] Finished dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/bytecode in 7ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/bytecode in 8ms
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/bytecode in 6ms
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/bytecode in 52ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/bytecode in 146ms
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/bytecode in 8ms
[INFO] Finished dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/bytecode in 9ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_sources
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/bytecode in 26ms
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/bytecode in 6ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/bytecode in 9ms
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/bytecode in 43ms
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/bytecode in 294ms
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers in 165ms
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode in 1275ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources in 524ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers in 860ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/stripped_bytecode_headers in 18ms
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/stripped_bytecode_headers in 24ms
[INFO] Finished dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/stripped_bytecode_headers in 10ms
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/transpiled_js
[INFO] Finished dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/stripped_bytecode_headers in 10ms
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/stripped_bytecode_headers in 8ms
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/transpiled_js
[INFO] Finished dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/stripped_bytecode_headers in 9ms
[INFO] Finished dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/stripped_bytecode_headers in 10ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/stripped_bytecode_headers in 8ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/transpiled_js
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/stripped_bytecode_headers in 9ms
[INFO] Finished dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/stripped_bytecode_headers in 9ms
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/stripped_bytecode_headers in 8ms
[INFO] Finished dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/stripped_bytecode_headers in 7ms
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/transpiled_js
[INFO] Finished dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/stripped_bytecode_headers in 8ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/stripped_bytecode_headers in 8ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/stripped_bytecode_headers in 9ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/optimized_js
[INFO] dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/optimized_js: 0 error(s), 0 warning(s), 97.8% typed
[INFO] Finished dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/optimized_js in 13399ms
[INFO] Starting final task dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/optimized_js
[INFO] Finished final task dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/optimized_js in 13ms
[INFO]
[INFO] --- resources:3.3.1:testResources (default-testResources) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] skip non existing resourceDirectory /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/src/test/resources
[INFO]
[INFO] --- compiler:3.11.0:testCompile (default-testCompile) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- surefire:3.1.2:test (default-test) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] No tests to run.
[INFO]
[INFO] --- jar:3.3.0:jar (default-jar) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Building jar: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/webfx-demo-colorfulcircles-application-j2cl-0.1.0-SNAPSHOT.jar
[INFO]
[INFO] --- source:3.3.0:jar-no-fork (attach-sources) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Building jar: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/webfx-demo-colorfulcircles-application-j2cl-0.1.0-SNAPSHOT-sources.jar
[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.189 s
[INFO] Finished at: 2024-02-10T18:19:31Z
[INFO] ------------------------------------------------------------------------
So it looks like it compiles successfully now with my local version of your plugin! π
However, I don't see the transpiled and optimised JS in the target
folder despite all the logs above.
I'm only getting a webfx-demo-colorfulcircles-application-j2cl.js
file with the following content:
(function(){globalThis.g=function(){};}).call(this);
That's a pretty amazing optimised JS! π€£
I guess I missed something in the plugin configuration... Any idea what it could be? π§
Sorry for the delay, been a busy week.
So org.openjfx:javafx-base depends on org.openjfx:javafx-base:mac and not on itself as you said (note the final :mac classifier)
Keep in mind how classifiers work - they have a different artifact, but the same pom. This means that when you load org.openfs:javafx-base
, you then load org.openjfx:javafx-base:mac
, which then ... loads org.openjfx:javafx-base:mac
. If this wasn't true, classifiers would have their own pom file, and thus be an entirely different artifact, instead of just a different "kind" of the same artifact". Unless I'm unaware, it isn't "okay" for maven to have cycles in dependencies (even trivial ones like depending on yourself) - but there are a lot of things that aren't "okay" that work anyway. As above, the best way to work around this is to just ignore any dependencies that points to itself.
The fact that dependency:tree
doesn't show it... only tells you that you didn't ask the right question. From mvn dependency:tree -Dverbose
:
[INFO]
[INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ webfx-demo-colorfulcircles-application-gluon ---
[INFO] dev.webfx:webfx-demo-colorfulcircles-application-gluon:jar:0.1.0-SNAPSHOT
[INFO] +- dev.webfx:webfx-demo-colorfulcircles-application:jar:0.1.0-SNAPSHOT:compile
[INFO] +- dev.webfx:webfx-kit-openjfx:jar:0.1.0-SNAPSHOT:compile
[INFO] | +- org.openjfx:javafx-base:jar:21.0.2:compile
[INFO] | | \- org.openjfx:javafx-base:jar:linux:21.0.2:compile
[INFO] | | +- (org.openjfx:javafx-base:jar:linux:21.0.2:compile - omitted for cycle)
[INFO] | | \- (org.openjfx:javafx-base:jar:linux:21.0.2:compile - omitted for duplicate)
[INFO] | +- org.openjfx:javafx-controls:jar:21.0.2:compile
[INFO] | | +- org.openjfx:javafx-controls:jar:linux:21.0.2:compile
[INFO] | | | +- (org.openjfx:javafx-controls:jar:linux:21.0.2:compile - omitted for cycle)
[INFO] | | | +- (org.openjfx:javafx-controls:jar:linux:21.0.2:compile - omitted for duplicate)
[INFO] | | | \- (org.openjfx:javafx-graphics:jar:21.0.2:compile - omitted for duplicate)
[INFO] | | \- (org.openjfx:javafx-graphics:jar:21.0.2:compile - omitted for duplicate)
...
Lots of cycles, according to maven :).
<dependencyReplacements>
Dependency replacements indeed doesn't work, and in reading the notes I left for future-me in the code, this seems to make sense: my earlier statement that transitive dependencies are dropped and need to be replaced has the right idea, but isn't quite right. Instead, only the dependency in question is removed, and its contents (but not its dependencies) are replaced by a different artifact. Those original dependencies have already been managed by maven, and I know of no way to ask it to cleanly recompute those, so we keep them intact, and only replace the contents of the artifact. The only time we drop the transitive dependencies is when we drop the artifact itself (i.e. there is no replacement).
(function(){globalThis.g=function(){};}).call(this);
That's frustrating, you should have gotten even less than that! globalThis.g
should have been pruned as well, I have notes somewhere around here to save us those extra 26ish bytes...
...but seriously, you probably forgot to create an entrypoint that j2cl+closure can work with. Try running one of the sample archetypes or looking at one of the integration test apps. In short, you need a bit of JS glue to start the Java code, there is no automatic public static void main()
from Java or onModuleLoad()
from GWT here, since J2CL code is also meant to be usable from a plain JS app (also compiled with closure). See also https://github.com/treblereel/gwt3-processors/ for an annotation you can stick on your entrypoint to autogenerate a simple version of this for you.
Sorry for the delay, been a busy week.
No pb.
Maven classifiers and cycles
So org.openjfx:javafx-base depends on org.openjfx:javafx-base:mac and not on itself as you said (note the final :mac classifier)
Keep in mind how classifiers work - they have a different artifact, but the same pom. This means that when you load
org.openfs:javafx-base
, you then loadorg.openjfx:javafx-base:mac
, which then ... loadsorg.openjfx:javafx-base:mac
. If this wasn't true, classifiers would have their own pom file, and thus be an entirely different artifact, instead of just a different "kind" of the same artifact". Unless I'm unaware, it isn't "okay" for maven to have cycles in dependencies (even trivial ones like depending on yourself) - but there are a lot of things that aren't "okay" that work anyway. As above, the best way to work around this is to just ignore any dependencies that points to itself.The fact that
dependency:tree
doesn't show it... only tells you that you didn't ask the right question. Frommvn dependency:tree -Dverbose
:[INFO] [INFO] --- maven-dependency-plugin:2.8:tree (default-cli) @ webfx-demo-colorfulcircles-application-gluon --- [INFO] dev.webfx:webfx-demo-colorfulcircles-application-gluon:jar:0.1.0-SNAPSHOT [INFO] +- dev.webfx:webfx-demo-colorfulcircles-application:jar:0.1.0-SNAPSHOT:compile [INFO] +- dev.webfx:webfx-kit-openjfx:jar:0.1.0-SNAPSHOT:compile [INFO] | +- org.openjfx:javafx-base:jar:21.0.2:compile [INFO] | | \- org.openjfx:javafx-base:jar:linux:21.0.2:compile [INFO] | | +- (org.openjfx:javafx-base:jar:linux:21.0.2:compile - omitted for cycle) [INFO] | | \- (org.openjfx:javafx-base:jar:linux:21.0.2:compile - omitted for duplicate) [INFO] | +- org.openjfx:javafx-controls:jar:21.0.2:compile [INFO] | | +- org.openjfx:javafx-controls:jar:linux:21.0.2:compile [INFO] | | | +- (org.openjfx:javafx-controls:jar:linux:21.0.2:compile - omitted for cycle) [INFO] | | | +- (org.openjfx:javafx-controls:jar:linux:21.0.2:compile - omitted for duplicate) [INFO] | | | \- (org.openjfx:javafx-graphics:jar:21.0.2:compile - omitted for duplicate) [INFO] | | \- (org.openjfx:javafx-graphics:jar:21.0.2:compile - omitted for duplicate) ...
Lots of cycles, according to maven :).
I see, you're right.
<dependencyReplacements>
Dependency replacements indeed doesn't work, and in reading the notes I left for future-me in the code, this seems to make sense: my earlier statement that transitive dependencies are dropped and need to be replaced has the right idea, but isn't quite right. Instead, only the dependency in question is removed, and its contents (but not its dependencies) are replaced by a different artifact. Those original dependencies have already been managed by maven, and I know of no way to ask it to cleanly recompute those, so we keep them intact, and only replace the contents of the artifact. The only time we drop the transitive dependencies is when we drop the artifact itself (i.e. there is no replacement).
Actually I found another simpler solution by hardcoding an additional rule in your plugin that any dependency with groupId "org.openjfx" is just ignored. With that, I don't need to configure any dependency replacement, and it works.
Would you accept this solution in your plugin? (I think it's very very unlikely that this rule would have any impact on any other user of your plugin than WebFX).
Compiling to nearly nothing
(function(){globalThis.g=function(){};}).call(this);
That's frustrating, you should have gotten even less than that!
globalThis.g
should have been pruned as well, I have notes somewhere around here to save us those extra 26ish bytes......but seriously, you probably forgot to create an entrypoint that j2cl+closure can work with. Try running one of the sample archetypes or looking at one of the integration test apps. In short, you need a bit of JS glue to start the Java code, there is no automatic
public static void main()
from Java oronModuleLoad()
from GWT here, since J2CL code is also meant to be usable from a plain JS app (also compiled with closure). See also https://github.com/treblereel/gwt3-processors/ for an annotation you can stick on your entrypoint to autogenerate a simple version of this for you.
That makes sense, I didn't know how to declare the entry point, now I'm using the @GWT3EntryPoint
annotation π
So I'm making progress, but now it complains about some missing Java code, which I actually provide as super source. But I'm not sure where to put that super source. The J2CL doc talks about a super-j2cl
folder, but where should I put it so it is considered by your plugin?
@salmonb take a look at https://github.com/treblereel/gwt-nio https://github.com/treblereel/jakarta4g/tree/main/stdlib
Thanks @treblereel, but how J2CL finds your super source still remains a mystery for me, as there is no declaration of them anywhere (as opposed to GWT) π€·
I write my super sources a bit differently than you, as I put them in the packages emul.java.io etc... first, otherwise (if I use java.io etc... directly like you do) both my Java IDE and Java compiler reports errors (as these packages are known to be JDK packages). Then I use the shade maven plugin to relocate those packages to java.io etc... I'm getting the final super source in an artifact with shaded-sources
classifier that I add to my dependencies. This technics works with GWT, I don't know why it's not working with J2CL (unless I need to declare them using a J2CL way I still haven't found?).
My final super source artifact is dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources
and the J2CL maven plugin seems to find it and process it correctly:
...
[INFO] Starting dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/unpack
[INFO] Finished dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/unpack in 9ms
...
[INFO] Starting dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/bytecode
[INFO] Finished dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/bytecode in 16ms
...
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/stripped_sources
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/stripped_sources in 40ms
[INFO] Finished dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/stripped_sources in 30ms
...
Here is the full log:
[INFO] Scanning for projects...
[INFO]
[INFO] -------< dev.webfx:webfx-demo-colorfulcircles-application-j2cl >--------
[INFO] Building webfx-demo-colorfulcircles-application-j2cl 0.1.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- enforcer:3.3.0:enforce (enforce-maven) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Copying 1 resource from src/main/resources to target/classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- j2cl:0.23-SNAPSHOT:build (build-js) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.gwt:gwt-user:jar:2.9.0:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:jsinterop-annotations:jar:2.0.0:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:sources:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.servlet:javax.servlet-api:jar:3.1.0:provided, no replacement
[INFO] Removing dependency org.w3c.css:sac:jar:1.3:provided, no replacement
[INFO] Removing dependency com.google.gwt:gwt-dev:jar:2.9.0:provided, no replacement
[INFO] Removing dependency com.google.code.findbugs:jsr305:jar:1.3.9:provided, no replacement
[INFO] Removing dependency com.google.code.gson:gson:jar:2.6.2:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-util:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-tree:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-analysis:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-commons:jar:7.1:provided, no replacement
[INFO] Removing dependency colt:colt:jar:1.2.0:provided, no replacement
[INFO] Removing dependency ant:ant:jar:1.6.5:provided, no replacement
[INFO] Removing dependency commons-collections:commons-collections:jar:3.2.2:provided, no replacement
[INFO] Removing dependency commons-io:commons-io:jar:2.4:provided, no replacement
[INFO] Removing dependency com.ibm.icu:icu4j:jar:63.1:provided, no replacement
[INFO] Removing dependency tapestry:tapestry:jar:4.0.2:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit:jar:2.19:provided, no replacement
[INFO] Removing dependency xalan:xalan:jar:2.7.2:provided, no replacement
[INFO] Removing dependency xalan:serializer:jar:2.7.2:provided, no replacement
[INFO] Removing dependency org.apache.commons:commons-lang3:jar:3.4:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpclient:jar:4.5.1:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpcore:jar:4.4.3:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpmime:jar:4.5.1:provided, no replacement
[INFO] Removing dependency commons-codec:commons-codec:jar:1.10:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit-core-js:jar:2.17:provided, no replacement
[INFO] Removing dependency xerces:xercesImpl:jar:2.11.0:provided, no replacement
[INFO] Removing dependency xml-apis:xml-apis:jar:1.4.01:provided, no replacement
[INFO] Removing dependency net.sourceforge.nekohtml:nekohtml:jar:1.9.22:provided, no replacement
[INFO] Removing dependency net.sourceforge.cssparser:cssparser:jar:0.9.18:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-client:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-common:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-api:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-webapp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-xml:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlet:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-security:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlets:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-continuation:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-http:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-util:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-io:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-annotations:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-plus:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-jndi:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency javax.annotation:javax.annotation-api:jar:1.2:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:apache-jsp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-server:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.toolchain:jetty-schemas:jar:3.1.M0:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-jsp:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-el:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency com.google.gwt:gwt-user:jar:2.8.2:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:jsinterop-annotations:jar:1.0.2:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:jsinterop-annotations:jar:sources:1.0.2:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:sources:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.servlet:javax.servlet-api:jar:3.1.0:provided, no replacement
[INFO] Removing dependency org.w3c.css:sac:jar:1.3:provided, no replacement
[INFO] Removing dependency com.google.gwt:gwt-dev:jar:2.8.2:provided, no replacement
[INFO] Removing dependency com.google.code.findbugs:jsr305:jar:1.3.9:provided, no replacement
[INFO] Removing dependency com.google.code.gson:gson:jar:2.6.2:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm:jar:5.0.3:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-util:jar:5.0.3:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-tree:jar:5.0.3:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-commons:jar:5.0.3:provided, no replacement
[INFO] Removing dependency colt:colt:jar:1.2.0:provided, no replacement
[INFO] Removing dependency ant:ant:jar:1.6.5:provided, no replacement
[INFO] Removing dependency commons-collections:commons-collections:jar:3.2.2:provided, no replacement
[INFO] Removing dependency commons-io:commons-io:jar:2.4:provided, no replacement
[INFO] Removing dependency com.ibm.icu:icu4j:jar:50.1.1:provided, no replacement
[INFO] Removing dependency tapestry:tapestry:jar:4.0.2:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit:jar:2.19:provided, no replacement
[INFO] Removing dependency xalan:xalan:jar:2.7.2:provided, no replacement
[INFO] Removing dependency xalan:serializer:jar:2.7.2:provided, no replacement
[INFO] Removing dependency org.apache.commons:commons-lang3:jar:3.4:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpclient:jar:4.5.1:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpcore:jar:4.4.3:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpmime:jar:4.5.1:provided, no replacement
[INFO] Removing dependency commons-codec:commons-codec:jar:1.10:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit-core-js:jar:2.17:provided, no replacement
[INFO] Removing dependency xerces:xercesImpl:jar:2.11.0:provided, no replacement
[INFO] Removing dependency xml-apis:xml-apis:jar:1.4.01:provided, no replacement
[INFO] Removing dependency net.sourceforge.nekohtml:nekohtml:jar:1.9.22:provided, no replacement
[INFO] Removing dependency net.sourceforge.cssparser:cssparser:jar:0.9.18:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-client:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-common:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-api:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-webapp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-xml:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlet:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-security:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlets:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-continuation:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-http:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-util:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-io:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-annotations:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-plus:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-jndi:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency javax.annotation:javax.annotation-api:jar:1.2:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:apache-jsp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-server:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.toolchain:jetty-schemas:jar:3.1.M0:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-jsp:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-el:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.gwt:gwt-user:jar:2.9.0:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:jsinterop-annotations:jar:2.0.0:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:sources:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.servlet:javax.servlet-api:jar:3.1.0:provided, no replacement
[INFO] Removing dependency org.w3c.css:sac:jar:1.3:provided, no replacement
[INFO] Removing dependency com.google.gwt:gwt-dev:jar:2.9.0:provided, no replacement
[INFO] Removing dependency com.google.code.findbugs:jsr305:jar:1.3.9:provided, no replacement
[INFO] Removing dependency com.google.code.gson:gson:jar:2.6.2:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-util:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-tree:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-analysis:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-commons:jar:7.1:provided, no replacement
[INFO] Removing dependency colt:colt:jar:1.2.0:provided, no replacement
[INFO] Removing dependency ant:ant:jar:1.6.5:provided, no replacement
[INFO] Removing dependency commons-collections:commons-collections:jar:3.2.2:provided, no replacement
[INFO] Removing dependency commons-io:commons-io:jar:2.4:provided, no replacement
[INFO] Removing dependency com.ibm.icu:icu4j:jar:63.1:provided, no replacement
[INFO] Removing dependency tapestry:tapestry:jar:4.0.2:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit:jar:2.19:provided, no replacement
[INFO] Removing dependency xalan:xalan:jar:2.7.2:provided, no replacement
[INFO] Removing dependency xalan:serializer:jar:2.7.2:provided, no replacement
[INFO] Removing dependency org.apache.commons:commons-lang3:jar:3.4:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpclient:jar:4.5.1:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpcore:jar:4.4.3:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpmime:jar:4.5.1:provided, no replacement
[INFO] Removing dependency commons-codec:commons-codec:jar:1.10:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit-core-js:jar:2.17:provided, no replacement
[INFO] Removing dependency xerces:xercesImpl:jar:2.11.0:provided, no replacement
[INFO] Removing dependency xml-apis:xml-apis:jar:1.4.01:provided, no replacement
[INFO] Removing dependency net.sourceforge.nekohtml:nekohtml:jar:1.9.22:provided, no replacement
[INFO] Removing dependency net.sourceforge.cssparser:cssparser:jar:0.9.18:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-client:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-common:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-api:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-webapp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-xml:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlet:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-security:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlets:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-continuation:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-http:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-util:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-io:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-annotations:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-plus:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-jndi:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency javax.annotation:javax.annotation-api:jar:1.2:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:apache-jsp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-server:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.toolchain:jetty-schemas:jar:3.1.M0:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-jsp:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-el:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency com.google.gwt:gwt-user:jar:2.9.0:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:jsinterop-annotations:jar:2.0.0:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:sources:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.servlet:javax.servlet-api:jar:3.1.0:provided, no replacement
[INFO] Removing dependency org.w3c.css:sac:jar:1.3:provided, no replacement
[INFO] Removing dependency com.google.gwt:gwt-dev:jar:2.9.0:provided, no replacement
[INFO] Removing dependency com.google.code.findbugs:jsr305:jar:1.3.9:provided, no replacement
[INFO] Removing dependency com.google.code.gson:gson:jar:2.6.2:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-util:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-tree:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-analysis:jar:7.1:provided, no replacement
[INFO] Removing dependency org.ow2.asm:asm-commons:jar:7.1:provided, no replacement
[INFO] Removing dependency colt:colt:jar:1.2.0:provided, no replacement
[INFO] Removing dependency ant:ant:jar:1.6.5:provided, no replacement
[INFO] Removing dependency commons-collections:commons-collections:jar:3.2.2:provided, no replacement
[INFO] Removing dependency commons-io:commons-io:jar:2.4:provided, no replacement
[INFO] Removing dependency com.ibm.icu:icu4j:jar:63.1:provided, no replacement
[INFO] Removing dependency tapestry:tapestry:jar:4.0.2:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit:jar:2.19:provided, no replacement
[INFO] Removing dependency xalan:xalan:jar:2.7.2:provided, no replacement
[INFO] Removing dependency xalan:serializer:jar:2.7.2:provided, no replacement
[INFO] Removing dependency org.apache.commons:commons-lang3:jar:3.4:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpclient:jar:4.5.1:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpcore:jar:4.4.3:provided, no replacement
[INFO] Removing dependency org.apache.httpcomponents:httpmime:jar:4.5.1:provided, no replacement
[INFO] Removing dependency commons-codec:commons-codec:jar:1.10:provided, no replacement
[INFO] Removing dependency net.sourceforge.htmlunit:htmlunit-core-js:jar:2.17:provided, no replacement
[INFO] Removing dependency xerces:xercesImpl:jar:2.11.0:provided, no replacement
[INFO] Removing dependency xml-apis:xml-apis:jar:1.4.01:provided, no replacement
[INFO] Removing dependency net.sourceforge.nekohtml:nekohtml:jar:1.9.22:provided, no replacement
[INFO] Removing dependency net.sourceforge.cssparser:cssparser:jar:0.9.18:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-client:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-common:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.websocket:websocket-api:jar:9.2.13.v20150730:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-webapp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-xml:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlet:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-security:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-servlets:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-continuation:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-http:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-util:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-io:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-annotations:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-plus:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-jndi:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency javax.annotation:javax.annotation-api:jar:1.2:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:apache-jsp:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty:jetty-server:jar:9.2.14.v20151106:provided, no replacement
[INFO] Removing dependency org.eclipse.jetty.toolchain:jetty-schemas:jar:3.1.M0:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-jsp:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency org.mortbay.jasper:apache-el:jar:8.0.9.M3:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0-RC1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0-RC1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0-RC1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0-RC1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.gwt:gwt-user:jar:2.9.0:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.validation:validation-api:jar:sources:1.0.0.GA:provided, no replacement
[INFO] Removing dependency javax.servlet:javax.servlet-api:jar:3.1.0:provided, no replacement
[INFO] Removing dependency org.w3c.css:sac:jar:1.3:provided, no replacement
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Starting org.treblereel.gwt.nio:gwt-nio:1.1/unpack
[INFO] Finished org.treblereel.gwt.nio:gwt-nio:1.1/unpack in 33ms
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/unpack
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/unpack in 95ms
[INFO] Starting dev.webfx:webfx-platform-console-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/unpack
[INFO] Starting javax.validation:validation-api:1.0.0.GA:sources/unpack
[INFO] Finished javax.validation:validation-api:1.0.0.GA:sources/unpack in 20ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/unpack in 29ms
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/unpack in 6ms
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/unpack
[INFO] Starting com.google.elemental2:elemental2-webstorage:1.1.0/unpack
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT/unpack in 25ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/unpack
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/unpack in 6ms
[INFO] Starting dev.webfx:webfx-kit-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-gwt:0.1.0-SNAPSHOT/unpack in 6ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA/unpack
[INFO] Finished javax.validation:validation-api:1.0.0.GA/unpack in 25ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/unpack
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/unpack in 602ms
[INFO] Starting org.dominokit:domino-slf4j-logger:1.0.2-gwt2.8.2/unpack
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT:sources/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT:sources/unpack in 15ms
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/unpack in 54ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/unpack
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/unpack in 332ms
[INFO] Starting dev.webfx:webfx-platform-boot-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/unpack
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/unpack in 7ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/unpack in 110ms
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/unpack
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/unpack
[INFO] Starting org.w3c.css:sac:1.3/unpack
[INFO] Finished org.w3c.css:sac:1.3/unpack in 7ms
[INFO] Starting dev.webfx:webfx-platform-shutdown-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Starting org.gwtproject.core:gwt-core:1.0.0-RC1/unpack
[INFO] Finished org.gwtproject.core:gwt-core:1.0.0-RC1/unpack in 15ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Starting org.gwtproject.regexp:gwt-regexp:1.0.0-RC1/unpack
[INFO] Finished org.gwtproject.regexp:gwt-regexp:1.0.0-RC1/unpack in 7ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag.gwt:1.1.1/unpack
[INFO] Starting com.google.elemental2:elemental2-svg:1.2.1/unpack
[INFO] Finished com.google.elemental2:elemental2-svg:1.2.1/unpack in 86ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/unpack
[INFO] Starting dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/unpack
[INFO] Finished dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/unpack in 9ms
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/unpack
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/unpack
[INFO] Starting org.jresearch.gwt.locale:org.jresearch.gwt.locale:1.0.5/unpack
[INFO] Finished org.jresearch.gwt.locale:org.jresearch.gwt.locale:1.0.5/unpack in 6ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.data:2.0.13/unpack
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time.apt.data:2.0.13/unpack in 8ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/unpack
[INFO] Starting org.gwtproject:gwt-user:2.11.0/unpack
[INFO] Finished org.gwtproject:gwt-user:2.11.0/unpack in 2798ms
[INFO] Starting org.immutables:value-annotations:2.8.8/unpack
[INFO] Finished org.immutables:value-annotations:2.8.8/unpack in 7ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-base:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-base:0.1.0-SNAPSHOT/unpack in 10ms
[INFO] Starting dev.webfx:webfx-platform-uischeduler-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/unpack
[INFO] Starting org.slf4j:slf4j-api:1.7.30/unpack
[INFO] Finished org.slf4j:slf4j-api:1.7.30/unpack in 11ms
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/unpack
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time:2.0.10/unpack
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time:2.0.10/unpack in 74ms
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/unpack
[INFO] Finished dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/unpack in 17ms
[INFO] Starting org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/unpack
[INFO] Starting dev.webfx:webfx-platform-resource-gwt:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/unpack
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/unpack
[INFO] Starting javax.servlet:javax.servlet-api:3.1.0/unpack
[INFO] Finished javax.servlet:javax.servlet-api:3.1.0/unpack in 26ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/unpack
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/unpack in 382ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/unpack
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/unpack
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/unpack
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/unpack in 60ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/unpack
[INFO] Starting com.google.elemental2:elemental2-dom:1.0.0-RC1/unpack
[INFO] Finished com.google.elemental2:elemental2-dom:1.0.0-RC1/unpack in 307ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:1.0.2/unpack
[INFO] Starting com.google.elemental2:elemental2-promise:1.0.0-RC1/unpack
[INFO] Starting com.google.elemental2:elemental2-core:1.0.0-RC1/unpack
[INFO] Finished com.google.elemental2:elemental2-core:1.0.0-RC1/unpack in 51ms
[INFO] Starting com.google.code.findbugs:jsr305:3.0.2/unpack
[INFO] Finished com.google.code.findbugs:jsr305:3.0.2/unpack in 11ms
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/unpack
[INFO] Finished org.treblereel.j2cl.processors:processors:0.6.4/unpack in 2473ms
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/bytecode
[INFO] Starting org.jresearch.gwt.locale:org.jresearch.gwt.locale:1.0.5/bytecode
[INFO] Starting dev.webfx:webfx-platform-boot-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Finished org.jresearch.gwt.locale:org.jresearch.gwt.locale:1.0.5/bytecode in 10ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode
[INFO] Finished dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/bytecode in 142ms
[INFO] Starting org.w3c.css:sac:1.3/bytecode
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Finished org.w3c.css:sac:1.3/bytecode in 17ms
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT/bytecode in 50ms
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/bytecode in 6ms
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/bytecode in 45ms
[INFO] Starting org.treblereel.gwt.nio:gwt-nio:1.1/bytecode
[INFO] Finished org.treblereel.gwt.nio:gwt-nio:1.1/bytecode in 72ms
[INFO] Starting com.google.elemental2:elemental2-core:1.0.0-RC1/bytecode
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/bytecode in 9ms
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/bytecode
[INFO] Finished com.google.elemental2:elemental2-core:1.0.0-RC1/bytecode in 94ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/bytecode
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/bytecode in 11ms
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/bytecode in 146ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT:sources/bytecode
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT:sources/bytecode in 46ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.0.0-RC1/bytecode
[INFO] Finished com.google.elemental2:elemental2-promise:1.0.0-RC1/bytecode in 12ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/bytecode
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/bytecode
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/bytecode in 36ms
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/bytecode in 35ms
[INFO] Starting org.immutables:value-annotations:2.8.8/bytecode
[INFO] Finished org.immutables:value-annotations:2.8.8/bytecode in 16ms
[INFO] Starting dev.webfx:webfx-platform-boot-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting org.jresearch.gwt.locale:org.jresearch.gwt.locale:1.0.5/stripped_sources
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/bytecode in 556ms
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/bytecode
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode in 2059ms
[INFO] Finished org.jresearch.gwt.locale:org.jresearch.gwt.locale:1.0.5/stripped_sources in 323ms
[INFO] Starting org.gwtproject.core:gwt-core:1.0.0-RC1/bytecode
[INFO] Starting com.google.jsinterop:jsinterop-annotations:1.0.2/bytecode
[INFO] Finished com.google.jsinterop:jsinterop-annotations:1.0.2/bytecode in 27ms
[INFO] Finished org.gwtproject.core:gwt-core:1.0.0-RC1/bytecode in 93ms
[INFO] Starting dev.webfx:webfx-kit-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-gwt:0.1.0-SNAPSHOT/bytecode in 12ms
[INFO] Starting dev.webfx:webfx-platform-uischeduler-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/bytecode in 8ms
[INFO] Starting javax.servlet:javax.servlet-api:3.1.0/bytecode
[INFO] Finished javax.servlet:javax.servlet-api:3.1.0/bytecode in 91ms
[INFO] Starting dev.webfx:webfx-platform-shutdown-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-shutdown-gwt:0.1.0-SNAPSHOT/bytecode in 7ms
[INFO] Starting com.google.elemental2:elemental2-svg:1.2.1/bytecode
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/bytecode
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/bytecode in 18ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/bytecode
[INFO] Finished com.google.elemental2:elemental2-svg:1.2.1/bytecode in 441ms
[INFO] Starting dev.webfx:webfx-platform-console-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-console-gwt:0.1.0-SNAPSHOT/bytecode in 6ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/bytecode
[INFO] Finished com.google.elemental2:elemental2-promise:1.1.0/bytecode in 9ms
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/bytecode in 7ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA:sources/bytecode
[INFO] Finished javax.validation:validation-api:1.0.0.GA:sources/bytecode in 67ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.0.0-RC1/bytecode
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/bytecode in 1602ms
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/bytecode in 1399ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag.gwt:1.1.1/bytecode
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.data:2.0.13/bytecode
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time.apt.data:2.0.13/bytecode in 14ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA/bytecode
[INFO] Finished javax.validation:validation-api:1.0.0.GA/bytecode in 42ms
[INFO] Starting com.google.code.findbugs:jsr305:3.0.2/bytecode
[INFO] Finished com.google.code.findbugs:jsr305:3.0.2/bytecode in 38ms
[INFO] Finished com.google.elemental2:elemental2-dom:1.0.0-RC1/bytecode in 1201ms
[INFO] Starting org.dominokit:domino-slf4j-logger:1.0.2-gwt2.8.2/bytecode
[INFO] Finished org.dominokit:domino-slf4j-logger:1.0.2-gwt2.8.2/bytecode in 28ms
[INFO] Starting org.gwtproject:gwt-user:2.11.0/bytecode
[INFO] Starting org.slf4j:slf4j-api:1.7.30/bytecode
[INFO] Finished org.slf4j:slf4j-api:1.7.30/bytecode in 52ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/bytecode
[INFO] Finished com.vertispan.j2cl:bootstrap:v20230718-1:jszip/bytecode in 6ms
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-registry-gwt:0.1.0-SNAPSHOT/bytecode in 31ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/bytecode
[INFO] Finished com.google.elemental2:elemental2-promise:1.2.1/bytecode in 9ms
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/bytecode
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/bytecode in 164ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/bytecode
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.0/bytecode in 13ms
[INFO] Starting org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/bytecode
[INFO] Starting dev.webfx:webfx-platform-resource-gwt:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-resource-gwt:0.1.0-SNAPSHOT/bytecode in 8ms
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/bytecode in 14ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/bytecode
[INFO] Starting org.gwtproject.regexp:gwt-regexp:1.0.0-RC1/bytecode
[INFO] Finished org.gwtproject.regexp:gwt-regexp:1.0.0-RC1/bytecode in 19ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/bytecode
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/bytecode in 22ms
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/bytecode in 30ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/bytecode
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.2/bytecode in 8ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/bytecode
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/bytecode in 8ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time:2.0.10/bytecode
[INFO] Starting dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/bytecode
[INFO] Finished dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/bytecode in 16ms
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time:2.0.10/bytecode in 279ms
[INFO] Starting com.google.elemental2:elemental2-webstorage:1.1.0/bytecode
[INFO] Finished com.google.elemental2:elemental2-webstorage:1.1.0/bytecode in 8ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-base:0.1.0-SNAPSHOT/bytecode
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-base:0.1.0-SNAPSHOT/bytecode in 17ms
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/bytecode
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/bytecode in 17ms
[INFO] Starting org.w3c.css:sac:1.3/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-meta:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting org.treblereel.gwt.nio:gwt-nio:1.1/stripped_sources
[INFO] Finished org.treblereel.gwt.nio:gwt-nio:1.1/stripped_sources in 54ms
[INFO] Starting dev.webfx:webfx-platform-shutdown:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-core:1.0.0-RC1/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-core:1.0.0-RC1/stripped_sources in 19ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/stripped_sources in 28ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.0.0-RC1/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT:sources/stripped_sources
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/stripped_sources
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-peers-gwt:0.1.0-SNAPSHOT:sources/stripped_sources in 21ms
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/stripped_sources in 12ms
[INFO] Starting dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished dev.webfx:webfx-platform-boot:0.1.0-SNAPSHOT/stripped_sources in 71ms
[INFO] Starting org.immutables:value-annotations:2.8.8/stripped_sources
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-emul:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.google.jsinterop:jsinterop-annotations:1.0.2/stripped_sources
[INFO] Starting org.gwtproject.core:gwt-core:1.0.0-RC1/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-uischeduler-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-util:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting javax.servlet:javax.servlet-api:3.1.0/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-shutdown-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources
[INFO] Finished org.gwtproject.core:gwt-core:1.0.0-RC1/stripped_sources in 1280ms
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources in 222ms
[INFO] Starting dev.webfx:webfx-platform-uischeduler:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-svg:1.2.1/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-console-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-svg:1.2.1/stripped_sources in 72ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-promise:1.1.0/stripped_sources in 9ms
[INFO] Starting dev.webfx:webfx-kit-launcher:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting javax.validation:validation-api:1.0.0.GA:sources/stripped_sources
[INFO] Finished javax.validation:validation-api:1.0.0.GA:sources/stripped_sources in 15ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/stripped_sources in 202ms
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/stripped_sources in 379ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag.gwt:1.1.1/stripped_sources
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.data:2.0.13/stripped_sources
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time.apt.data:2.0.13/stripped_sources in 9ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA/stripped_sources
[INFO] Starting com.google.code.findbugs:jsr305:3.0.2/stripped_sources
[INFO] Starting org.dominokit:domino-slf4j-logger:1.0.2-gwt2.8.2/stripped_sources
[INFO] Starting org.slf4j:slf4j-api:1.7.30/stripped_sources
[INFO] Finished org.treblereel.j2cl.processors:processors:0.6.4/bytecode in 11571ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.0.0-RC1/stripped_sources
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-dom:1.0.0-RC1/stripped_sources in 146ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/stripped_sources
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/stripped_sources in 21ms
[INFO] Starting org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-resource-gwt:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting org.gwtproject.regexp:gwt-regexp:1.0.0-RC1/stripped_sources
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/stripped_sources
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/stripped_sources in 15ms
[INFO] Finished org.gwtproject.regexp:gwt-regexp:1.0.0-RC1/stripped_sources in 174ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/stripped_sources
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/stripped_sources in 40ms
[INFO] Finished dev.webfx:webfx-platform-javabase-emul-gwt:0.1.0-SNAPSHOT:shaded-sources/stripped_sources in 30ms
[INFO] Starting com.google.elemental2:elemental2-webstorage:1.1.0/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-webstorage:1.1.0/stripped_sources in 13ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time:2.0.10/stripped_sources
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time:2.0.10/stripped_sources in 122ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-peers-base:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting dev.webfx:webfx-platform-scheduler:0.1.0-SNAPSHOT/stripped_sources
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers in 320ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers in 2528ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/transpiled_js
[INFO] Starting javax.validation:validation-api:1.0.0.GA/transpiled_js
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/stripped_bytecode_headers
[INFO] Finished org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/stripped_bytecode_headers in 127ms
[INFO] Starting org.w3c.css:sac:1.3/stripped_bytecode_headers
[INFO] Finished org.w3c.css:sac:1.3/stripped_bytecode_headers in 12ms
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/stripped_bytecode_headers in 8ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_bytecode_headers
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_bytecode_headers in 9ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/transpiled_js
[INFO] Starting org.immutables:value-annotations:2.8.8/transpiled_js
[INFO] Starting com.google.code.findbugs:jsr305:3.0.2/stripped_bytecode_headers
[INFO] Finished com.google.code.findbugs:jsr305:3.0.2/stripped_bytecode_headers in 8ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting org.immutables:value-annotations:2.8.8/stripped_bytecode_headers
[INFO] Finished org.immutables:value-annotations:2.8.8/stripped_bytecode_headers in 8ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:1.0.2/stripped_bytecode_headers
[INFO] Finished com.google.jsinterop:jsinterop-annotations:1.0.2/stripped_bytecode_headers in 60ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA:sources/transpiled_js
[INFO] Starting org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/stripped_bytecode_headers
[INFO] Finished org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/stripped_bytecode_headers in 99ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA/stripped_bytecode_headers
[INFO] Finished javax.validation:validation-api:1.0.0.GA/stripped_bytecode_headers in 114ms
[INFO] Finished org.gwtproject:gwt-user:2.11.0/bytecode in 16197ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/stripped_bytecode_headers
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.0/stripped_bytecode_headers in 6ms
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/transpiled_js in 3683ms
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:20: The import java.io.BufferedReader cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:23: The import java.io.InputStreamReader cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:24: The import java.net cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:25: The import java.security.AccessController cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:26: The import java.security.PrivilegedAction cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:31: The import java.util.WeakHashMap cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:217: The method isAssignableFrom(Class<capture#1-of ? extends ValidationProvider>) is undefined for the type Class<U>
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:218: The method cast(ValidationProvider) is undefined for the type Class<U>
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:297: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:298: WeakHashMap cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:298: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:303: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:303: The method fromContext() from the type Validation.GetClassLoader refers to the missing type ClassLoader
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:305: The method fromClass(Class<?>) from the type Validation.GetClassLoader refers to the missing type ClassLoader
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:309: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:310: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:317: URL cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:319: URL cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:322: BufferedReader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:322: InputStreamReader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:327: The method loadClass(String, Class<?>) from the type Validation.DefaultValidationProviderResolver refers to the missing type ClassNotFoundException
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:333: The method newInstance() is undefined for the type Class<capture#7-of ?>
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:347: ClassNotFoundException cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:351: IllegalAccessException cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:354: InstantiationException cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:358: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:359: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:366: ClassNotFoundException cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:369: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:369: The method fromContext() from the type Validation.GetClassLoader refers to the missing type ClassLoader
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:374: ClassNotFoundException cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:380: The method fromClass(Class<?>) from the type Validation.GetClassLoader refers to the missing type ClassLoader
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:384: PrivilegedAction cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:384: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:387: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:389: The method getSecurityManager() is undefined for the type System
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:390: AccessController cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:393: The method run() from the type Validation.GetClassLoader refers to the missing type ClassLoader
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:397: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:402: The method getSecurityManager() is undefined for the type System
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:403: AccessController cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:406: The method run() from the type Validation.GetClassLoader refers to the missing type ClassLoader
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:414: ClassLoader cannot be resolved to a type
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:416: The method getClassLoader() is undefined for the type Class<capture#15-of ?>
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Validation.java:419: Thread cannot be resolved
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:77: java.util.regex cannot be resolved to a variable
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:83: java.util.regex cannot be resolved to a variable
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:89: java.util.regex cannot be resolved to a variable
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:95: java.util.regex cannot be resolved to a variable
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:101: java.util.regex cannot be resolved to a variable
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:107: java.util.regex cannot be resolved to a variable
[ERROR] javax.validation:validation-api:1.0.0.GA:sources/transpiled_js: Error:Pattern.java:113: java.util.regex cannot be resolved to a variable
[ERROR] Exception executing task javax.validation:validation-api:1.0.0.GA:sources/transpiled_js
java.lang.IllegalStateException: Error while running J2CL
at com.vertispan.j2cl.build.provided.J2clTask.lambda$resolve$8 (J2clTask.java:85)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 45.379 s
[INFO] Finished at: 2024-02-12T10:39:23Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.vertispan.j2cl:j2cl-maven-plugin:0.23-SNAPSHOT:build (build-js) on project webfx-demo-colorfulcircles-application-j2cl: Build failed, check log for failures -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
[INFO] Finished dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/stripped_bytecode_headers in 7ms
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
[INFO] Starting org.slf4j:slf4j-api:1.7.30/stripped_bytecode_headers
[INFO] Starting javax.servlet:javax.servlet-api:3.1.0/stripped_bytecode_headers
[INFO] Finished javax.servlet:javax.servlet-api:3.1.0/stripped_bytecode_headers in 8ms
[INFO] Finished org.slf4j:slf4j-api:1.7.30/stripped_bytecode_headers in 8ms
[INFO] Starting org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/transpiled_js
[INFO] Starting dev.webfx:webfx-kit-javafxbase-emul:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting org.slf4j:slf4j-api:1.7.30/transpiled_js
[INFO] Starting javax.servlet:javax.servlet-api:3.1.0/transpiled_js
[INFO] Starting org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-util:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/stripped_bytecode_headers
[INFO] Finished dev.webfx:webfx-demo-colorfulcircles-application:0.1.0-SNAPSHOT/stripped_bytecode_headers in 20ms
[INFO] Starting javax.validation:validation-api:1.0.0.GA:sources/stripped_bytecode_headers
[ERROR] Exception executing task org.jresearch.gwt.time:org.jresearch.gwt.time.apt.annotation:2.0.13/transpiled_js
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/flow/FieldInitsFakingFlowContext
at org.eclipse.jdt.internal.compiler.parser.Parser.newReferenceExpression (Parser.java:9036)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeReferenceExpressionTypeForm (Parser.java:9044)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule (Parser.java:7702)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:12781)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:13134)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.parseStatements (MethodDeclaration.java:225)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseMethods (TypeDeclaration.java:1138)
at org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBodies (Parser.java:11814)
at org.eclipse.jdt.internal.compiler.Compiler.process (Compiler.java:888)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:1044)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:662)
at org.eclipse.jdt.core.dom.ASTParser.createASTs (ASTParser.java:1001)
at com.google.j2cl.transpiler.frontend.jdt.JdtParser.parseFiles (JdtParser.java:101)
at com.google.j2cl.transpiler.frontend.Frontend$1.compile (Frontend.java:39)
at com.google.j2cl.transpiler.frontend.Frontend.getLibrary (Frontend.java:102)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:76)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.flow.FieldInitsFakingFlowContext
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
at org.eclipse.jdt.internal.compiler.parser.Parser.newReferenceExpression (Parser.java:9036)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeReferenceExpressionTypeForm (Parser.java:9044)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule (Parser.java:7702)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:12781)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:13134)
at org.eclipse.jdt.internal.compiler.ast.MethodDeclaration.parseStatements (MethodDeclaration.java:225)
at org.eclipse.jdt.internal.compiler.ast.TypeDeclaration.parseMethods (TypeDeclaration.java:1138)
at org.eclipse.jdt.internal.compiler.parser.Parser.getMethodBodies (Parser.java:11814)
at org.eclipse.jdt.internal.compiler.Compiler.process (Compiler.java:888)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:1044)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:662)
at org.eclipse.jdt.core.dom.ASTParser.createASTs (ASTParser.java:1001)
at com.google.j2cl.transpiler.frontend.jdt.JdtParser.parseFiles (JdtParser.java:101)
at com.google.j2cl.transpiler.frontend.Frontend$1.compile (Frontend.java:39)
at com.google.j2cl.transpiler.frontend.Frontend.getLibrary (Frontend.java:102)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:76)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
[INFO] Starting org.w3c.css:sac:1.3/transpiled_js
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/stripped_bytecode_headers
[INFO] Finished org.jresearch.gwt.tool.emu.apt:org.jresearch.gwt.tool.emu.apt.annotation:1.0.3/transpiled_js in 129ms
[INFO] Starting dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/stripped_bytecode_headers
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
[INFO] Finished dev.webfx:webfx-kit-javafxgraphics-registry:0.1.0-SNAPSHOT/stripped_bytecode_headers in 6ms
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/stripped_sources
[INFO] Finished org.treblereel.j2cl.processors:processors:0.6.4/stripped_sources in 6ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/transpiled_js
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/stripped_bytecode_headers in 24ms
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/stripped_bytecode_headers
[INFO] Finished org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/stripped_bytecode_headers in 13ms
[ERROR] Exception executing task org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/transpiled_js
java.lang.NoClassDefFoundError: org/eclipse/jdt/internal/compiler/flow/FieldInitsFakingFlowContext
at org.eclipse.jdt.internal.compiler.parser.Parser.newReferenceExpression (Parser.java:9036)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeReferenceExpressionTypeForm (Parser.java:9044)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule (Parser.java:7702)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:12781)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:13033)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:12990)
at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse (Parser.java:11384)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.beginToCompile (CompilationUnitResolver.java:225)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:1029)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:662)
at org.eclipse.jdt.core.dom.ASTParser.createASTs (ASTParser.java:1001)
at com.google.j2cl.transpiler.frontend.jdt.JdtParser.parseFiles (JdtParser.java:101)
at com.google.j2cl.transpiler.frontend.Frontend$1.compile (Frontend.java:39)
at com.google.j2cl.transpiler.frontend.Frontend.getLibrary (Frontend.java:102)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:76)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.ClassNotFoundException: org.eclipse.jdt.internal.compiler.flow.FieldInitsFakingFlowContext
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
at org.eclipse.jdt.internal.compiler.parser.Parser.newReferenceExpression (Parser.java:9036)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeReferenceExpressionTypeForm (Parser.java:9044)
at org.eclipse.jdt.internal.compiler.parser.Parser.consumeRule (Parser.java:7702)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:12781)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:13033)
at org.eclipse.jdt.internal.compiler.parser.Parser.parse (Parser.java:12990)
at org.eclipse.jdt.internal.compiler.parser.Parser.dietParse (Parser.java:11384)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.beginToCompile (CompilationUnitResolver.java:225)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:1029)
at org.eclipse.jdt.core.dom.CompilationUnitResolver.resolve (CompilationUnitResolver.java:662)
at org.eclipse.jdt.core.dom.ASTParser.createASTs (ASTParser.java:1001)
at com.google.j2cl.transpiler.frontend.jdt.JdtParser.parseFiles (JdtParser.java:101)
at com.google.j2cl.transpiler.frontend.Frontend$1.compile (Frontend.java:39)
at com.google.j2cl.transpiler.frontend.Frontend.getLibrary (Frontend.java:102)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:76)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/stripped_bytecode_headers
[INFO] Starting org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1/transpiled_js
[ERROR] Exception executing task javax.validation:validation-api:1.0.0.GA:sources/stripped_bytecode_headers
java.lang.NoClassDefFoundError: com/google/turbine/binder/lookup/WildImportIndex$1
at com.google.turbine.binder.lookup.WildImportIndex.create (WildImportIndex.java:52)
at com.google.turbine.binder.Binder.bindPackages (Binder.java:265)
at com.google.turbine.binder.Binder.bind (Binder.java:160)
at com.google.turbine.binder.Binder.bind (Binder.java:110)
at com.google.turbine.binder.Binder.bind (Binder.java:94)
at com.google.turbine.main.Main.bind (Main.java:270)
at com.google.turbine.main.Main.compile (Main.java:158)
at com.vertispan.j2cl.build.provided.TurbineTask.lambda$resolve$5 (TurbineTask.java:81)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.ClassNotFoundException: com.google.turbine.binder.lookup.WildImportIndex$1
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
at com.google.turbine.binder.lookup.WildImportIndex.create (WildImportIndex.java:52)
at com.google.turbine.binder.Binder.bindPackages (Binder.java:265)
at com.google.turbine.binder.Binder.bind (Binder.java:160)
at com.google.turbine.binder.Binder.bind (Binder.java:110)
at com.google.turbine.binder.Binder.bind (Binder.java:94)
at com.google.turbine.main.Main.bind (Main.java:270)
at com.google.turbine.main.Main.compile (Main.java:158)
at com.vertispan.j2cl.build.provided.TurbineTask.lambda$resolve$5 (TurbineTask.java:81)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
[INFO] Starting dev.webfx:webfx-platform-console:0.1.0-SNAPSHOT/transpiled_js
[INFO] Starting dev.webfx:webfx-platform-resource:0.1.0-SNAPSHOT/transpiled_js
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
[ERROR] Exception executing task org.jresearch.locale.languageTag:org.jresearch.locale.languageTag:1.1.1:sources/stripped_bytecode_headers
java.lang.NoClassDefFoundError: com/google/turbine/diag/TurbineDiagnostic
at com.google.turbine.diag.TurbineLog$TurbineLogWithSource.diagnostic (TurbineLog.java:89)
at com.google.turbine.diag.TurbineLog$TurbineLogWithSource.error (TurbineLog.java:93)
at com.google.turbine.binder.lookup.ImportIndex.namedImport (ImportIndex.java:103)
at com.google.turbine.binder.lookup.ImportIndex.access$000 (ImportIndex.java:45)
at com.google.turbine.binder.lookup.ImportIndex$1.get (ImportIndex.java:74)
at com.google.turbine.binder.lookup.ImportIndex$1.get (ImportIndex.java:71)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get (Suppliers.java:183)
at com.google.turbine.binder.lookup.ImportIndex.lookup (ImportIndex.java:173)
at com.google.turbine.binder.lookup.ImportScope$1.lookup (ImportScope.java:49)
at com.google.turbine.binder.lookup.ImportScope$3.lookup (ImportScope.java:78)
at com.google.turbine.binder.lookup.CompoundScope.lookup (CompoundScope.java:36)
at com.google.turbine.binder.lookup.CompoundScope.lookup (CompoundScope.java:41)
at com.google.turbine.binder.TypeBinder.bindAnnotations (TypeBinder.java:863)
at com.google.turbine.binder.TypeBinder.bind (TypeBinder.java:182)
at com.google.turbine.binder.TypeBinder.bind (TypeBinder.java:149)
at com.google.turbine.binder.Binder.bindTypes (Binder.java:319)
at com.google.turbine.binder.Binder.bind (Binder.java:168)
at com.google.turbine.binder.Binder.bind (Binder.java:110)
at com.google.turbine.binder.Binder.bind (Binder.java:94)
at com.google.turbine.main.Main.bind (Main.java:270)
at com.google.turbine.main.Main.compile (Main.java:158)
at com.vertispan.j2cl.build.provided.TurbineTask.lambda$resolve$5 (TurbineTask.java:81)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.ClassNotFoundException: com.google.turbine.diag.TurbineDiagnostic
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
at com.google.turbine.diag.TurbineLog$TurbineLogWithSource.diagnostic (TurbineLog.java:89)
at com.google.turbine.diag.TurbineLog$TurbineLogWithSource.error (TurbineLog.java:93)
at com.google.turbine.binder.lookup.ImportIndex.namedImport (ImportIndex.java:103)
at com.google.turbine.binder.lookup.ImportIndex.access$000 (ImportIndex.java:45)
at com.google.turbine.binder.lookup.ImportIndex$1.get (ImportIndex.java:74)
at com.google.turbine.binder.lookup.ImportIndex$1.get (ImportIndex.java:71)
at com.google.common.base.Suppliers$NonSerializableMemoizingSupplier.get (Suppliers.java:183)
at com.google.turbine.binder.lookup.ImportIndex.lookup (ImportIndex.java:173)
at com.google.turbine.binder.lookup.ImportScope$1.lookup (ImportScope.java:49)
at com.google.turbine.binder.lookup.ImportScope$3.lookup (ImportScope.java:78)
at com.google.turbine.binder.lookup.CompoundScope.lookup (CompoundScope.java:36)
at com.google.turbine.binder.lookup.CompoundScope.lookup (CompoundScope.java:41)
at com.google.turbine.binder.TypeBinder.bindAnnotations (TypeBinder.java:863)
at com.google.turbine.binder.TypeBinder.bind (TypeBinder.java:182)
at com.google.turbine.binder.TypeBinder.bind (TypeBinder.java:149)
at com.google.turbine.binder.Binder.bindTypes (Binder.java:319)
at com.google.turbine.binder.Binder.bind (Binder.java:168)
at com.google.turbine.binder.Binder.bind (Binder.java:110)
at com.google.turbine.binder.Binder.bind (Binder.java:94)
at com.google.turbine.main.Main.bind (Main.java:270)
at com.google.turbine.main.Main.compile (Main.java:158)
at com.vertispan.j2cl.build.provided.TurbineTask.lambda$resolve$5 (TurbineTask.java:81)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
[ERROR] Exception executing task org.gwtproject:gwt-user:2.11.0/bytecode
java.io.UncheckedIOException: java.nio.file.NoSuchFileException: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/gwt3BuildCache/0.23-SNAPSHOT/org.gwtproject-gwt-user-2.11.0/dc68b2ac25d366c251655bd859aeffbc-bytecode/results/com/google/gwt/user/datepicker/client/DatePicker.class
at com.vertispan.j2cl.build.DiskCache.hashContents (DiskCache.java:334)
at com.vertispan.j2cl.build.DiskCache.makeOutput (DiskCache.java:222)
at com.vertispan.j2cl.build.DiskCache.markFinished (DiskCache.java:600)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markSuccess (DiskCache.java:68)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:281)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.nio.file.NoSuchFileException: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/gwt3BuildCache/0.23-SNAPSHOT/org.gwtproject-gwt-user-2.11.0/dc68b2ac25d366c251655bd859aeffbc-bytecode/results/com/google/gwt/user/datepicker/client/DatePicker.class
at sun.nio.fs.UnixException.translateToIOException (UnixException.java:92)
at sun.nio.fs.UnixException.rethrowAsIOException (UnixException.java:106)
at sun.nio.fs.UnixException.rethrowAsIOException (UnixException.java:111)
at sun.nio.fs.UnixFileAttributeViews$Basic.readAttributes (UnixFileAttributeViews.java:55)
at sun.nio.fs.UnixFileSystemProvider.readAttributes (UnixFileSystemProvider.java:148)
at java.nio.file.Files.readAttributes (Files.java:1849)
at java.nio.file.FileTreeWalker.getAttributes (FileTreeWalker.java:220)
at java.nio.file.FileTreeWalker.visit (FileTreeWalker.java:277)
at java.nio.file.FileTreeWalker.next (FileTreeWalker.java:374)
at java.nio.file.Files.walkFileTree (Files.java:2844)
at java.nio.file.Files.walkFileTree (Files.java:2881)
at com.vertispan.j2cl.build.DiskCache.hashContents (DiskCache.java:309)
at com.vertispan.j2cl.build.DiskCache.makeOutput (DiskCache.java:222)
at com.vertispan.j2cl.build.DiskCache.markFinished (DiskCache.java:600)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markSuccess (DiskCache.java:68)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:281)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
java.nio.file.DirectoryNotEmptyException: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/gwt3BuildCache/0.23-SNAPSHOT/org.gwtproject-gwt-user-2.11.0/dc68b2ac25d366c251655bd859aeffbc-bytecode
at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:246)
at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:359)
at com.vertispan.j2cl.build.DiskCache.close(DiskCache.java:346)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.lambda$addShutdownHook$7(AbstractBuildMojo.java:429)
at java.base/java.lang.Thread.run(Thread.java:1589)
What also surprises me is that among the super source classes that J2CL complains not to find, there are many that I don't use at all (such as java.io.BufferedReader
, java.io.InputStreamReader
or java.security.AccessController
), they are not provided by my super source because not used in my code. So how is it that I'm getting these errors?
Actually the only classes it reports that are in my super source are URL
(in java.net
) and java.util.regex
classes (Matcher
and Pattern
).
Finally - but I don't know if it's related - the Maven build crashes, apparently due to not finding org/eclipse/jdt/internal/compiler/flow/FieldInitsFakingFlowContext
... π€·
Do you see anything wrong in what I'm doing?
Ok, I think my demo is a too complex app to start with J2CL.
So I'm now trying to start with the simplest piece of code (basically a hello world), and gradually add more code and modules to it.
I haven't managed to make the @GWT3EntryPoint
work so far, so I used your bootstrap technic that I found here with a native JS code to start the application, which also seems more lightweight (no dependency to the J2CL preprocessor library). Actually I had to annotate my entry point with @JsMethod
and give it a name, otherwise the JS code couldn't find it on runtime.
And I finally managed to have my first J2CL app running! π (to be honest, I never struggled so much to run a hello world with another technology π₯΅).
The next issue I will need to resolve is the use of java.util.ServiceLoader
. Because WebFX highly relies on the Java Service API to provide cross-platform features. Since this API is not supported by GWT/J2CL, the WebFX CLI automatically generates a super source of it in the final executable module (the generated code being different for each executable). GWT is happy with that as it finds it in the global application code, but because J2CL compiles each module separately, it complains about not finding java.util.ServiceLoader
in the modules using it. But I can't provide the implementation of the Java Service at this stage... Any idea how I can resolve this issue?
And I already know the next issue, which is the use of java.time
. For GWT I was using this library, but it's not J2CL compatible. Do you know any J2CL compatible library?
Thank you!
@salmonb
That's very strange. There must be no issues with @GWT3EntryPoint. You can take any @GWT3EntryPoint test and convert it to the app.
I don't know how you implemented ServiceLoader, but I had pretty much the same issues during my work on dependency injection framework for j2cl. To perform the lookup of beans using apr outside of the reactor, I use io.github.classgraph.
As far as I know, there is no stable j2cl-compatible implementations of java.time, but I could be wrong.
@treblereel
When I try to compile this code:
package dev.webfx.demo.helloworld;
import elemental2.dom.DomGlobal;
import org.treblereel.j2cl.processors.annotations.GWT3EntryPoint;
public class HelloWorld {
@GWT3EntryPoint
public void entryPoint() {
DomGlobal.console.log("Hello world!");
}
}
I'm getting this error:
[INFO] Scanning for projects...
[INFO]
[INFO] -------< dev.webfx:webfx-demo-colorfulcircles-application-j2cl >--------
[INFO] Building webfx-demo-colorfulcircles-application-j2cl 0.1.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.2.0:clean (default-clean) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Deleting /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target
[INFO]
[INFO] --- enforcer:3.3.0:enforce (enforce-maven) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Copying 2 resources from src/main/resources to target/classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 1 source file with javac [debug release 11] to target/classes
[WARNING] Supported source version 'RELEASE_8' from annotation processor 'org.treblereel.j2cl.processors.GWT3Processor' less than -source '11'
[INFO]
[INFO] --- j2cl:0.23-SNAPSHOT:build (build-js) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/unpack
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/unpack in 13ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/unpack
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/unpack
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/unpack in 414ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/unpack
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/unpack
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/unpack in 60ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/unpack
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/unpack in 509ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/unpack
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/unpack
[INFO] Finished org.treblereel.j2cl.processors:processors:0.6.4/unpack in 2532ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/bytecode
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/bytecode in 12ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/bytecode
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/bytecode
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.2/bytecode in 9ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/bytecode
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/bytecode in 152ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/bytecode
[INFO] Finished com.google.elemental2:elemental2-promise:1.2.1/bytecode in 8ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/bytecode
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/bytecode
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/stripped_sources in 164ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_sources
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/stripped_sources in 46ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-promise:1.2.1/stripped_sources in 16ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers in 139ms
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/bytecode in 1090ms
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode in 1471ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/stripped_sources in 155ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/bytecode
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources
[INFO] Finished dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/bytecode in 562ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources in 751ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers in 1164ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/transpiled_js
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_bytecode_headers
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/stripped_bytecode_headers
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_bytecode_headers in 23ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/transpiled_js
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/stripped_bytecode_headers in 58ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/stripped_bytecode_headers
[INFO] Finished com.google.elemental2:elemental2-promise:1.2.1/stripped_bytecode_headers in 25ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.2.1/transpiled_js
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/stripped_bytecode_headers
[INFO] Finished com.google.elemental2:elemental2-core:1.2.1/stripped_bytecode_headers in 265ms
[INFO] Starting com.google.elemental2:elemental2-core:1.2.1/transpiled_js
[INFO] Finished com.google.elemental2:elemental2-promise:1.2.1/transpiled_js in 964ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/transpiled_js
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/transpiled_js in 1104ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.2.1/stripped_bytecode_headers
[INFO] Finished com.google.elemental2:elemental2-dom:1.2.1/stripped_bytecode_headers in 1076ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js
[ERROR] dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js: Error:HelloWorld.java:4: The import org cannot be resolved
[ERROR] dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js: Error:HelloWorld.java:8: GWT3EntryPoint cannot be resolved to a type
[ERROR] Exception executing task dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js
java.lang.IllegalStateException: Error while running J2CL
at com.vertispan.j2cl.build.provided.J2clTask.lambda$resolve$8 (J2clTask.java:85)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 22.779 s
[INFO] Finished at: 2024-02-12T17:19:03Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.vertispan.j2cl:j2cl-maven-plugin:0.23-SNAPSHOT:build (build-js) on project webfx-demo-colorfulcircles-application-j2cl: Build failed, check log for failures -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
[ERROR] Exception executing task com.google.elemental2:elemental2-core:1.2.1/transpiled_js
com.google.j2cl.common.visitor.ProcessorError: Context:
/Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/gwt3BuildCache/0.23-SNAPSHOT/com.google.elemental2-elemental2-core-1.2.1/372a708cb89ddc52b085a53c2185ce46-stripped_sources/results/elemental2/core/ITemplateArray.java
at com.google.j2cl.transpiler.passes.NormalizationPass.execute (NormalizationPass.java:41)
at com.google.j2cl.transpiler.J2clTranspiler.runPasses (J2clTranspiler.java:110)
at com.google.j2cl.transpiler.J2clTranspiler.desugarLibrary (J2clTranspiler.java:86)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:78)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.NoClassDefFoundError: com/google/j2cl/transpiler/ast/ToStringRenderer
at com.google.j2cl.transpiler.ast.Node.toString (Node.java:44)
at java.lang.StringConcatHelper.stringOf (StringConcatHelper.java:397)
at com.google.j2cl.common.visitor.ProcessorError.<init> (ProcessorError.java:22)
at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:27)
at com.google.j2cl.transpiler.ast.CompilationUnit.acceptInternal (CompilationUnit.java:136)
at com.google.j2cl.transpiler.ast.Node.accept (Node.java:30)
at com.google.j2cl.transpiler.passes.MakeVariablesFinal.applyTo (MakeVariablesFinal.java:39)
at com.google.j2cl.transpiler.passes.NormalizationPass.execute (NormalizationPass.java:39)
at com.google.j2cl.transpiler.J2clTranspiler.runPasses (J2clTranspiler.java:110)
at com.google.j2cl.transpiler.J2clTranspiler.desugarLibrary (J2clTranspiler.java:86)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:78)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.ClassNotFoundException: com.google.j2cl.transpiler.ast.ToStringRenderer
at com.google.j2cl.transpiler.ast.Node.toString (Node.java:44)
at java.lang.StringConcatHelper.stringOf (StringConcatHelper.java:397)
at com.google.j2cl.common.visitor.ProcessorError.<init> (ProcessorError.java:22)
at com.google.j2cl.transpiler.ast.Visitor_CompilationUnit.visit (Visitor_CompilationUnit.java:27)
at com.google.j2cl.transpiler.ast.CompilationUnit.acceptInternal (CompilationUnit.java:136)
at com.google.j2cl.transpiler.ast.Node.accept (Node.java:30)
at com.google.j2cl.transpiler.passes.MakeVariablesFinal.applyTo (MakeVariablesFinal.java:39)
at com.google.j2cl.transpiler.passes.NormalizationPass.execute (NormalizationPass.java:39)
at com.google.j2cl.transpiler.J2clTranspiler.runPasses (J2clTranspiler.java:110)
at com.google.j2cl.transpiler.J2clTranspiler.desugarLibrary (J2clTranspiler.java:86)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:78)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
java.nio.file.DirectoryNotEmptyException: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/gwt3BuildCache/0.23-SNAPSHOT/org.treblereel.j2cl.processors-processors-0.6.4/d686b859e80e2af05510bb8e300f8230-bytecode/results/freemarker
at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:246)
at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:359)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:355)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:355)
at com.vertispan.j2cl.build.DiskCache.close(DiskCache.java:346)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.lambda$addShutdownHook$7(AbstractBuildMojo.java:429)
at java.base/java.lang.Thread.run(Thread.java:1589)
The module is still in my demo module dev.webfx:webfx-demo-colorfulcircles-application-j2cl
but I actually removed everything: what remains is only the code above, and these 2 dependencies:
<dependency>
<groupId>com.google.elemental2</groupId>
<artifactId>elemental2-dom</artifactId>
<version>1.2.1</version>
</dependency>
<dependency>
<groupId>org.treblereel.j2cl.processors</groupId>
<artifactId>processors</artifactId>
<version>0.6.4</version>
</dependency>
Should I add another dependency to resolve the java.lang.NoClassDefFoundError: com/google/j2cl/transpiler/ast/ToStringRenderer
?
@salmonb, thank you for your test. It looks like it's because of elemental2 1.2.1. It's a new version, I still use 1.1.0.
The reason must be somewhere else, as I'm getting the same result with 1.1.0:
[INFO] Scanning for projects...
[INFO]
[INFO] -------< dev.webfx:webfx-demo-colorfulcircles-application-j2cl >--------
[INFO] Building webfx-demo-colorfulcircles-application-j2cl 0.1.0-SNAPSHOT
[INFO] from pom.xml
[INFO] --------------------------------[ jar ]---------------------------------
[INFO]
[INFO] --- clean:3.2.0:clean (default-clean) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Deleting /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target
[INFO]
[INFO] --- enforcer:3.3.0:enforce (enforce-maven) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Rule 0: org.apache.maven.enforcer.rules.version.RequireMavenVersion passed
[INFO]
[INFO] --- resources:3.3.1:resources (default-resources) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Copying 1 resource from src/main/resources to target/classes
[INFO]
[INFO] --- compiler:3.11.0:compile (default-compile) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Changes detected - recompiling the module! :source
[INFO] Compiling 1 source file with javac [debug release 11] to target/classes
[WARNING] Supported source version 'RELEASE_8' from annotation processor 'org.treblereel.j2cl.processors.GWT3Processor' less than -source '11'
[INFO]
[INFO] --- j2cl:0.23-SNAPSHOT:build (build-js) @ webfx-demo-colorfulcircles-application-j2cl ---
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.0:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Removing dependency com.google.jsinterop:base:jar:1.0.1:compile, replacing with com.vertispan.jsinterop:base:jar:1.0.1-1
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/unpack
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/unpack in 74ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/unpack
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/unpack in 9ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/unpack
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/unpack
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/unpack
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/unpack in 401ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/unpack
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/unpack in 484ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/unpack
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/unpack
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/unpack
[INFO] Finished org.treblereel.j2cl.processors:processors:0.6.4/unpack in 2470ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/bytecode
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/bytecode in 11ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/bytecode
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/bytecode
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.0/bytecode in 10ms
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.2/bytecode in 9ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/bytecode
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/bytecode
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/bytecode
[INFO] Finished com.google.elemental2:elemental2-promise:1.1.0/bytecode in 9ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/bytecode
[INFO] Starting org.treblereel.j2cl.processors:processors:0.6.4/bytecode
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/bytecode in 135ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/stripped_sources
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/stripped_sources in 219ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_sources
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/stripped_sources
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_sources
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/stripped_sources in 25ms
[INFO] Starting com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:bootstrap:v20230718-1:jszip/stripped_bytecode_headers in 159ms
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/bytecode in 1076ms
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/bytecode in 1521ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/stripped_sources
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/stripped_sources in 144ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/bytecode
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources
[INFO] Finished dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/bytecode in 465ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/stripped_sources
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_sources in 556ms
[INFO] Starting com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers
[INFO] Finished com.vertispan.j2cl:jre:v20230718-1:jszip/stripped_bytecode_headers in 1085ms
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.0/stripped_bytecode_headers
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/transpiled_js
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.0/stripped_bytecode_headers in 10ms
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/transpiled_js
[INFO] Starting com.vertispan.jsinterop:base:1.0.1-1/stripped_bytecode_headers
[INFO] Starting com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_bytecode_headers
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/stripped_bytecode_headers in 38ms
[INFO] Finished com.google.jsinterop:jsinterop-annotations:2.0.2/stripped_bytecode_headers in 30ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/stripped_bytecode_headers
[INFO] Finished com.google.elemental2:elemental2-promise:1.1.0/stripped_bytecode_headers in 89ms
[INFO] Starting com.google.elemental2:elemental2-promise:1.1.0/transpiled_js
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/stripped_bytecode_headers
[INFO] Finished com.google.elemental2:elemental2-core:1.1.0/stripped_bytecode_headers in 217ms
[INFO] Starting com.google.elemental2:elemental2-core:1.1.0/transpiled_js
[INFO] Finished com.google.elemental2:elemental2-promise:1.1.0/transpiled_js in 920ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/transpiled_js
[INFO] Finished com.vertispan.jsinterop:base:1.0.1-1/transpiled_js in 1165ms
[INFO] Starting com.google.elemental2:elemental2-dom:1.1.0/stripped_bytecode_headers
[INFO] Finished com.google.elemental2:elemental2-dom:1.1.0/stripped_bytecode_headers in 1120ms
[INFO] Starting dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js
[ERROR] dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js: Error:HelloWorld.java:4: The import org cannot be resolved
[ERROR] dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js: Error:HelloWorld.java:8: GWT3EntryPoint cannot be resolved to a type
[ERROR] Exception executing task dev.webfx:webfx-demo-colorfulcircles-application-j2cl:0.1.0-SNAPSHOT/transpiled_js
java.lang.IllegalStateException: Error while running J2CL
at com.vertispan.j2cl.build.provided.J2clTask.lambda$resolve$8 (J2clTask.java:85)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask (TaskScheduler.java:269)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9 (TaskScheduler.java:322)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run (ScheduledThreadPoolExecutor.java:304)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
[INFO] ------------------------------------------------------------------------
[INFO] BUILD FAILURE
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 21.090 s
[INFO] Finished at: 2024-02-12T18:09:21Z
[INFO] ------------------------------------------------------------------------
[ERROR] Failed to execute goal com.vertispan.j2cl:j2cl-maven-plugin:0.23-SNAPSHOT:build (build-js) on project webfx-demo-colorfulcircles-application-j2cl: Build failed, check log for failures -> [Help 1]
[ERROR]
[ERROR] To see the full stack trace of the errors, re-run Maven with the -e switch.
[ERROR] Re-run Maven using the -X switch to enable full debug logging.
[ERROR]
[ERROR] For more information about the errors and possible solutions, please read the following articles:
[ERROR] [Help 1] http://cwiki.apache.org/confluence/display/MAVEN/MojoFailureException
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
Exception in thread "DiskCacheThread" java.lang.Error: java.nio.file.ClosedWatchServiceException
at com.vertispan.j2cl.build.DiskCache.checkForWork(DiskCache.java:175)
at java.base/java.lang.Thread.run(Thread.java:1589)
Caused by: java.nio.file.ClosedWatchServiceException
at io.methvin.watchservice.AbstractWatchService.check(AbstractWatchService.java:94)
at io.methvin.watchservice.AbstractWatchService.take(AbstractWatchService.java:86)
at io.methvin.watchservice.MacOSXListeningWatchService.take(MacOSXListeningWatchService.java:38)
at com.vertispan.j2cl.build.DiskCache.checkForWork(DiskCache.java:131)
... 1 more
[ERROR] Exception executing task com.google.elemental2:elemental2-core:1.1.0/transpiled_js
java.lang.NoClassDefFoundError: com/google/j2cl/transpiler/passes/JsInteropRestrictionsChecker$9
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkMemberOfSubclassOfNativeClass (JsInteropRestrictionsChecker.java:1092)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkMember (JsInteropRestrictionsChecker.java:1032)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkType (JsInteropRestrictionsChecker.java:175)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept (ForEachOps.java:183)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1625)
at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
at java.util.stream.ReferencePipeline$7$1.accept (ReferencePipeline.java:276)
at java.util.Spliterators$ArraySpliterator.forEachRemaining (Spliterators.java:1006)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkLibrary (JsInteropRestrictionsChecker.java:122)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.check (JsInteropRestrictionsChecker.java:101)
at com.google.j2cl.transpiler.backend.Backend$1.checkRestrictions (Backend.java:207)
at com.google.j2cl.transpiler.J2clTranspiler.checkLibrary (J2clTranspiler.java:91)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:79)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
Caused by: java.lang.ClassNotFoundException: com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker$9
at org.codehaus.plexus.classworlds.strategy.SelfFirstStrategy.loadClass (SelfFirstStrategy.java:50)
at org.codehaus.plexus.classworlds.realm.ClassRealm.unsynchronizedLoadClass (ClassRealm.java:271)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:247)
at org.codehaus.plexus.classworlds.realm.ClassRealm.loadClass (ClassRealm.java:239)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkMemberOfSubclassOfNativeClass (JsInteropRestrictionsChecker.java:1092)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkMember (JsInteropRestrictionsChecker.java:1032)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkType (JsInteropRestrictionsChecker.java:175)
at java.util.stream.ForEachOps$ForEachOp$OfRef.accept (ForEachOps.java:183)
at java.util.ArrayList$ArrayListSpliterator.forEachRemaining (ArrayList.java:1625)
at java.util.stream.ReferencePipeline$Head.forEach (ReferencePipeline.java:762)
at java.util.stream.ReferencePipeline$7$1.accept (ReferencePipeline.java:276)
at java.util.Spliterators$ArraySpliterator.forEachRemaining (Spliterators.java:1006)
at java.util.stream.AbstractPipeline.copyInto (AbstractPipeline.java:509)
at java.util.stream.AbstractPipeline.wrapAndCopyInto (AbstractPipeline.java:499)
at java.util.stream.ForEachOps$ForEachOp.evaluateSequential (ForEachOps.java:150)
at java.util.stream.ForEachOps$ForEachOp$OfRef.evaluateSequential (ForEachOps.java:173)
at java.util.stream.AbstractPipeline.evaluate (AbstractPipeline.java:234)
at java.util.stream.ReferencePipeline.forEach (ReferencePipeline.java:596)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.checkLibrary (JsInteropRestrictionsChecker.java:122)
at com.google.j2cl.transpiler.passes.JsInteropRestrictionsChecker.check (JsInteropRestrictionsChecker.java:101)
at com.google.j2cl.transpiler.backend.Backend$1.checkRestrictions (Backend.java:207)
at com.google.j2cl.transpiler.J2clTranspiler.checkLibrary (J2clTranspiler.java:91)
at com.google.j2cl.transpiler.J2clTranspiler.transpileImpl (J2clTranspiler.java:79)
at com.google.j2cl.transpiler.J2clTranspiler.lambda$transpile$0 (J2clTranspiler.java:42)
at java.util.concurrent.Executors$RunnableAdapter.call (Executors.java:577)
at java.util.concurrent.FutureTask.run (FutureTask.java:317)
at java.util.concurrent.ThreadPoolExecutor.runWorker (ThreadPoolExecutor.java:1144)
at java.util.concurrent.ThreadPoolExecutor$Worker.run (ThreadPoolExecutor.java:642)
at java.lang.Thread.run (Thread.java:1589)
java.lang.RuntimeException
at com.vertispan.j2cl.build.DiskCache.markFailed(DiskCache.java:611)
at com.vertispan.j2cl.build.DiskCache$CacheResult.markFailure(DiskCache.java:72)
at com.vertispan.j2cl.build.TaskScheduler$2.executeTask(TaskScheduler.java:291)
at com.vertispan.j2cl.build.TaskScheduler$2.lambda$onReady$9(TaskScheduler.java:322)
at java.base/java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:577)
at java.base/java.util.concurrent.FutureTask.run(FutureTask.java:317)
at java.base/java.util.concurrent.ScheduledThreadPoolExecutor$ScheduledFutureTask.run(ScheduledThreadPoolExecutor.java:304)
at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1144)
at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:642)
at java.base/java.lang.Thread.run(Thread.java:1589)
java.nio.file.DirectoryNotEmptyException: /Users/bruno/IdeaProjects/webfx-demo-colorfulcircles/webfx-demo-colorfulcircles-application-j2cl/target/gwt3BuildCache/0.23-SNAPSHOT/org.treblereel.j2cl.processors-processors-0.6.4/d686b859e80e2af05510bb8e300f8230-bytecode/results/freemarker/core
at java.base/sun.nio.fs.UnixFileSystemProvider.implDelete(UnixFileSystemProvider.java:246)
at java.base/sun.nio.fs.AbstractFileSystemProvider.deleteIfExists(AbstractFileSystemProvider.java:110)
at java.base/java.nio.file.Files.deleteIfExists(Files.java:1191)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:359)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:355)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:355)
at com.vertispan.j2cl.build.DiskCache.deleteRecursively(DiskCache.java:355)
at com.vertispan.j2cl.build.DiskCache.close(DiskCache.java:346)
at com.vertispan.j2cl.mojo.AbstractBuildMojo.lambda$addShutdownHook$7(AbstractBuildMojo.java:429)
at java.base/java.lang.Thread.run(Thread.java:1589)
@salmonb May I ack you to check https://github.com/treblereel/gwt3-processors/blob/main/tests/entrypoint/jstype/pom.xml?
By the way, we have a J2CL channel at Matrix, it can be easier to for you
@treblereel I made a reproducer here.
It's a typical WebFX project structure, but for now the -j2cl
module is actually a standalone module (no dependencies with other modules), and it has the code I mentioned above. If you have time to look at it.
I have to leave for today, but we can continue on the matrix chat tomorrow π
@salmonb
change:
<dependency>
<groupId>org.treblereel.j2cl.processors</groupId>
<artifactId>processors</artifactId>
<version>0.6.4</version>
</dependency>
<dependency>
<groupId>org.treblereel.j2cl.processors</groupId>
<artifactId>annotations</artifactId>
<version>0.6.4</version>
</dependency>
<dependency>
<groupId>org.treblereel.j2cl.processors</groupId>
<artifactId>processors</artifactId>
<version>0.6.4</version>
<scope>provided</scope>
</dependency>
We don't want to compile apt processor with J2CL, so it should have provided
scope
I didn't know I had to do that. That was that little detail that did me in... Thanks
I updated the reproducer repo, and it works now with @GWT3EntryPoint.
I will continue using that repo to progressively add complexity and report you the issues I'm facing. And discuss that on the matrix chat as you suggested.
Closing this, as it is either stale or resolved through other means.
hi, I'm the maintainer of WebFX, a JavaFX transpiler powered by GWT, and I'm starting to investigate the possibility to move to J2CL using your plugin (thanks for making it π).
A WebFX project is typically structured as follow (this is our simplest demo and I will use it as my first use-case for J2CL). So, this is a Maven multi-modules project, and this structure and all build files are automatically generated and maintained by our CLI from the source code (because WebFX has many modules and it would be too much work to manage them manually). The pom.xml of the main module (that contains the JavaFX application source code) depends on the OpenJFX modules (the open-source implementation of JavaFX), but the
scope
of these dependencies isprovided
because this main module is cross-platform and therefore not yet executable (however it successfully compiles with Maven).The other modules are the executable ones, the executable environment being indicated by their suffix:
-openjfx
= executables for the desktops using JRE + OpenJFX modules-gluon
= executables for the mobiles (Android & iOS native apps built by the Gluon plugin based on GraalVM)-gwt
= executable for the web (built by GWT)The pom.xml of the
-openjfx
module finally provides the OpenJFX modules (indirectly as transitive dependencies ofwebfx-kit-openjfx
), but because these modules are not GWT compatible, what WebFX does for the-gwt
module is to replace them with GWT compatible ones, such aswebfx-kit-javafxbase-emul
andwebfx-kit-javafxgraphics-emul
as you can see in the pom.xml. With these dependencies finally provided, GWT is happy and successfully compiles the-gwt
module.So I'm trying now to add this new module:
-j2cl
= executable for the web (built by J2CL)and basically do the same as for the
-gwt
module, but I call J2CL through your plugin instead. However, your plugin seems to try building the OpenJFX modules (despite theprovided
scope
) because I'm getting many of these warnings:until it finally ends with:
Our CLI was generating the module.gwt.xml file and was listing all transitive dependencies in pom.xml for the
-gwt
module, but it looks like it's not needed anymore with J2CL.So is it your plugin that now automatically pulls the transitive dependencies from Maven and pass them to J2CL? Shouldn't the dependencies with
provided
scope
be ignored in this process?