eclipse-platform / eclipse-platform/eclipse.platform

Create a RefreshProvider base on the NIO API and enable autorefresh for all operating systems except MacOS

オープン
#299 コメント 17 件 リアクション 0 件 担当者 0 名 GitHub で見る
future ideas
主要言語
Java
スター
165
フォーク
174
平均マージ
2日 8時間
マージ済み PR(30日)
22

説明

Currently Eclipse do not refresh resources by default, and even if enabled, [only Win32 has support for native events](https://github.com/eclipse-platform/eclipse.platform/blob/master/resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/refresh/win32/Win32Monitor.java).

Java contains an own [platform independent API to watch local files systems](https://docs.oracle.com/javase/7/docs/api/java/nio/file/WatchService.html). We should reuse this whenever possible as it is likely better maintained, optimized and improved than everything we can offer ourself.

Given that [all operating systems except MacOS seem to support native events](https://github.com/eclipse-m2e/m2e-core/issues/1013#issuecomment-1302764470), we should even enable this by default (except for MacOS), one can even think about simply checking if `PollingWatchService` is used (e.g. by create a dummy one and check the classname).

コントリビューションガイド

コントリビューションガイドを開く

調査の方向性

まず resources/bundles/org.eclipse.core.resources/src/org/eclipse/core/internal/resources/refresh/win32/Win32Monitor.java と周辺の refresh provider を確認し、次に Java の WatchService API を読んでください。現在 refresh がどのように有効化されているかを追跡し、プラットフォーム非依存の provider をどこに組み込めるかを判断してください。完了条件は、NIO ベースの refresh がサポート対象のオペレーティングシステムで利用可能になり、デフォルトで有効化されていることです。ただし MacOS は除外します。

索引モデルが issue の本文から書いたものです。

評価

技術スタック
java
領域
operating-systems
issue の種類
機能追加
難易度
4/5
見積もり時間
3〜5日
活発さ
停滞
明瞭さ
おおむね明確
初心者へのやさしさ
32/100

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。