Read more in the latest javadoc documentation.
The goal of HTML/Java API is to unify this communication. By providing simple and highly portable building blocks one can create sophisticated APIs (like UI bindings, charts, maps, canvas, or SnapSVG) that can be embedded into Swing or JavaFX applications, executed headlessly on a server or executed anywhere HTML/Java API was ported.
Various ports of this rendering pipeline were built including support for pure webkit desktop rendring, Android WebView and iOS WebView developed by DukeScript project.
Porting of HTML/Java rendering pipeline is as easy as implementing Fn.Presenter interface and successfully passing the test compatibility kit. Since version
1.7 the project provides pre-made protocol based ProtoPresenter skeleton to simplify integrations with new platforms.
The HTML/Java API is IDE and build tool neutral. It can be used with Ant, Maven or Gradle. It is easy to edit it with Eclipse, IntelliJ or NetBeans. Here is a short introductory video to get started with NetBeans 11.2 and its Gradle support:
The most comprehensive getting started guide is available from the DukeScript project website.
You can contribute to development of this library by forking its GitHub repository. Change, modify, test:
$ mvn clean install
and create a pull request, which may then be merged into the official Apache repository.
The origins of the code in this repository are older than its Apache existence. As such significant part of the history (before the code was donated to Apache) is kept in an independent repository. To fully understand the code you may want to merge the modern and ancient versions together:
$ git clone https://github.com/apache/netbeans-html4j.git html+java+both $ cd html+java+both $ git log boot/src/main/java/net/java/html/boot/BrowserBuilder.java
This gives you just few log entries including the initial checkin and change of the file headers to Apache. But then the magic comes:
$ git remote add emilian https://github.com/emilianbold/netbeans-html4j.git $ git fetch emilian $ git replace 408363d d029b8e
When you search the log, or use the blame tool, the full history is available:
$ git log boot/src/main/java/net/java/html/boot/BrowserBuilder.java $ git blame boot/src/main/java/net/java/html/boot/BrowserBuilder.java
Many thanks to Emilian Bold who converted the ancient history to his Git repository and made the magic possible!