ResourceReloadListener#reload
์(๋) ์์ฒด์ ์ผ๋ก ๋ค์ ๋ก๋๋ฅผ ์ํํ์ง ์์์ผ ํฉ๋๋ค. ๋์ , ๊ทธ ๋ชฉํ๋ CompletableFuture
๋ฅผ ๋ฐํํ๋ ๊ฒ์
๋๋ค. ์ด๋ ํ๊ฐ๋ ๋ ๋ค์ํ Executor
์ ์ค์ ๋ค์ ๋ก๋ ์์
์ ์ ์ถํ๋๋ก ๋์ด ์์ต๋๋ค.
reload
์ ์ง์ ์ฝ๋๋ฅผ ๋ฃ๊ณ ์๋ฌด ์์
๋ ํ์ง ์๋ ๋๋ฏธ CompletableFuture
๋ฅผ ๋ฐํํ์ฌ ์์คํ
์ ์์ด๋ ค๊ณ ํ๋ฉด Synchronizer#whenPrepared
์ ์ํด ๋ฐํ๋ ๋ฏธ๋๋ ์ ๋ ์ป์ ์ ์๊ธฐ ๋๋ฌธ์ ๋ค์ ๋ก๋ํ ๋ ๊ฒ์์ด ๋ฉ์ถฅ๋๋ค. ๋ผ๊ณ ๋ถ๋ฆฌ๋.
createReloadTask
์ ๊ฐ์ ์ด๋ฆ์ ์ง์ ํ๋ ๊ฒ์ ์ด ๊ฒฝ๋ก๋ฅผ ๋ฐฉํดํ๊ณ ์ด ๋ฐฉ๋ฒ์์ ์ง์ ๋ค์ ๋ก๋ํ์ง ์์์ผ ํจ์ ๋ช
ํํ ํ๋ ๋ฐฉ๋ฒ์ธ ๊ฒ ๊ฐ์ต๋๋ค.
imo, ResourceReloadListener
๋ ์ค์ ๋ก ๋ค์ ๋ก๋๋ฅผ ์ํํ๋ ํญ๋ชฉ์ด๋ฏ๋ก ResourceReloader
๋ก ์ด๋ฆ์ ๋ฐ๊ฟ์ผ ํฉ๋๋ค( ResourceReloadHandler
์ ๋น๊ต). reload
์ด๋ฆ์ ๊ด์ฐฎ์ต๋๋ค. ๋๋ ๋ชจ๋ CompletableFuture
๊ด๋ จ ์ด๋ฆ์ ๋ํด ์ผ๊ด๋ ๋ช
๋ช
์ฒด๊ณ๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค.
์ดํด๋ณด๊ณ ๋๋ฉด ์ด๋ฏธ ์ฌ๋ก๋๋ฅผ ๋ชจ๋ํฐ๋งํ๋ ๋ฆฌ์์ค ์ฌ๋ก๋๊ฐ ์์ต๋๋ค.
์ด์ ์ด ์ด๋ฆ์ ๋ฌด์์ผ๋ก ์ง์ ํด์ผ ํ๋์ง ๋๋ ์ด๋ฆ์ ๋ฐ๊ฟ์ผ ํ๋์ง ์ฌ๋ถ์ ๋ํด ์ฝ๊ฐ ํผ๋์ค๋ฝ์ต๋๋ค.
ํ , ์๋ง๋ ResourceReloader
-> SimpleResourceReload
, ResourceReloadListener
-> ResourceReloader
. ๋ํ ResourceReloadMonitor
์ ์ด๋ฆ์ ResourceReload
๋ก ์ง์ ํ๊ณ ๊ทธ์ ๋ฐ๋ผ ๊ตฌํ ์ด๋ฆ์ ์ง์ ํฉ๋๋ค. ResourceReload
๋ ํ ๋ฒ์ ์ฌ์ฅ์ ์ ๋ํ๋ด๋ฉฐ ์งํ์ ๋ฒ๋ ค์ง๋ฏ๋ก ์ด ์ด๋ฆ์ ์ค์ ๋ก ์ข๊ฒ ๋ค๋ฆฝ๋๋ค.
๊ฐ์ฅ ์ ์ฉํ ๋๊ธ
imo,
ResourceReloadListener
๋ ์ค์ ๋ก ๋ค์ ๋ก๋๋ฅผ ์ํํ๋ ํญ๋ชฉ์ด๋ฏ๋กResourceReloader
๋ก ์ด๋ฆ์ ๋ฐ๊ฟ์ผ ํฉ๋๋ค(ResourceReloadHandler
์ ๋น๊ต).reload
์ด๋ฆ์ ๊ด์ฐฎ์ต๋๋ค. ๋๋ ๋ชจ๋CompletableFuture
๊ด๋ จ ์ด๋ฆ์ ๋ํด ์ผ๊ด๋ ๋ช ๋ช ์ฒด๊ณ๋ฅผ ๊ณ ๋ คํ ์ ์์ต๋๋ค.