2020年6月3日 星期三

GWT 2.9.0 發布

亮點

  • 可以用 jsinterop-base 1.0.0、elemental2 1.0.0、jsinterop-annotations 2.0.0(除了 @JsAsync 跟 @JsEnum)做 compile,這會讓 GWT2 將可以用 J2CL 以及這些工具來 compile。
  • 增加 Java language level 9, 10, 11 的支援度。
  • 正式停止在 Java 7 上執行 GWT compiler 與 server side tooling 的支援。在這個版本當中,GWT 還是可以在 Java 7 上 compile,但是不會保證能否運作。未來的版本會以 Java 8+ compile bytecode。這個版本用來測試與提供不同平台上搭配 Java 8, 11, 14 一起運作的方式。

棄用

  • Elemental 已經正式棄用了,這個版本裡頭還有,但是未來的版本當中可能就不會出現。我們建議用 Elemental2 來取代,它可以同時用 GWT2 以及 J2CL compile。
  • 移除 NoSuchMethodException 的模擬。

修正

  • 修正 float[] 與 double[] 的 Arrays.binarySearch()。
  • error / exception 增加支援多行訊息。
  • DiskCache 增加關閉的 hook 來清除暫存檔們。
  • 將 Gecko 版號快取起來,以減少在 FireFox 的 CPU 使用率
  • 不再假設「this 一定不是 null」
  • Updates globals for Firefox version 60.0.2, Chrome 66.0.3359.45。
  • 修正 String.regionMatches()。
  • 原生的 JsMethods 允許跟實做程式碼以相同名稱共存。
  • 必要時,確保 lambda 的 box、unbox、insert 有消除 cast。
  • Double.compare() 與 Float.compare() 正確地處理負 0。

雜項

  • CLDR 更新到 v.34。
  • Arrays 現在有 implement Cloneable。
  • Link backing errors together with a cause attribute, start tracking suppressed errors in addition to the cause in underlying error object.
  • AtomicReference 加到 gwt/emul。
  • Propagate script nonces via ScriptInjector
  • 增加 ExecutorService 與 ScheduledExecutorService 的部份功能模擬。
  • 模擬 java.util.concurrent.Flow。
  • 模擬 javax.annotation{,.processing}.Generated。
  • 當 goog.global 沒有定義時,讓他變成 $wnd。
  • 增加 when-linker-added element definition。
  • 增加 Reader 以及 StringReader 模擬。
  • 移除 GWT 版本檢查。
  • synthetic method 不會顯示「unusable-by-js」警示。
  • Update unmodifiableList to throw on Java8 methods.
  • 預設關掉 DataflowOptimizer,用到時會發出警告。

更多細節參見 commit log

2016年5月9日 星期一

GXT Component 的 onLoad 與 onShow 時機點

最近想要在 UI component 出現 / 消失的時候自動做一些事情,於是打算從 GXT Component 下手。不過怎麼寫怎麼有問題,只好寫 n 個 SSCCE 來確認一下,實驗結果紀錄於此。

基本認識

我關心這四個 method:

  • onLoad()
  • onUnload()
  • onShow()
  • onHide()

onLoad() 跟 onUnload() 是從 GWT 的 Widget 就定義的 method。理論上跟 onAttach()、onDetach() 等意,就是這個 component 加入到 DOM(或是從 DOM 中移除)時會觸發的 method。不過 API 都強烈建議用 onLoad() 跟 onUnload() 了,就乖乖照辦。

onShow()、onHide() 是 GXT Component 開始定義的 method,最常遇到的 caller 大概是 GXT Component 的 setVisible()(override UIObject)。

2016年4月14日 星期四

service 版的 Tomcat 無法列印

web server 的環境:

  • Windows Server 2008 Enterprise SP2
    • 64bit
    • 32bit
  • JDK 1.7.0_55 (32bit)
  • Tomcat 6.0.26
  • 印表機:TSC TTP 345,以網路印表機的方式連接。

有一個功能是使用者按下按鈕後,web server 會用 JNA 載入印表機的 DLL,然後以程式控制列印內容。印表機不是實際連接到 web server,而是用網路印表機的方式連到 LAN 上頭某台使用者的 PC。

2016年2月27日 星期六

不同量級的數值在同一個圖表上呈現

標題好難下,完整的標題應該是:

在 GXT Chart 中,如何把兩個不同量級的數值在同一個圖表中都用長條圖當中呈現。

拿這張圖表來舉例說明:

2015年11月15日 星期日

HTTP/2

原文網址:http://www.integralist.co.uk/posts/http2.html


引言

這是一篇很簡短的文章,展示如何利用新的 HTTP/2 通訊協定。如果你不熟悉它,那麼讓我花一點點時間來討論其中的一些亮點:

  • 單一、持續的連線
  • Multiplexing
  • 壓縮 header
  • 優先等級
  • 加密
  • Server Push

如果這些功能對你而言都不知所云,讓我作進一步的解釋……