2011-08-26 73 views
0

我知道PAX正在做很多事情,創建容器並複製所有這些罐子並不便宜,但是有沒有提高性能的一般技巧。我有幾分之一秒的時間在容器外部執行測試,而這些測試需要更長的時間。我使用PAX主要是爲了驗證我的清單是否準確,並且捆綁包可以部署而不會丟失任何依賴關係。我已經嘗試過Knopflerfish,Equinox和Felix,一般來說,它們對於準系統無容器運行相對較慢。使PAX(OSGI測試)框架更快的技巧

回答

1

正如你所意識到的那樣,底層容器並沒有太大區別。

如果您想要在運行中創建最小捆綁包,則可以嘗試使用Pax Tinybundles:如果這適用於您的情況,那麼您可以僅使用實際需要測試的內容來構建一組最小化捆綁包。例如,你可以打包你的Manifest。我並沒有爲此目的而自我評估,但它值得一試。

一點題外話,請考慮大同考試2.3引入了支持(見here)爲@Before和@After,從而來拯救你更靈活的負載安裝/拆卸。

1

使用Native Container比Pax Runner容器快,節省了啓動外部進程的開銷。

使用EagerSingleStagedReactorFactory節省了爲每個測試重新啓動框架的開銷。

爲避免複製JAR,首選mvn:URLs或mavenBundle()到普通URL,然後捆綁包將從您的本地Maven倉庫取得,一旦它們被下載。

Pax Exam 2.3.0中的一項新功能是reference:protocol,它允許您在不復制的情況下提供捆綁套件 - 即使是分解套件(即解壓縮的目錄結構)也可以使用。