2011-11-23 61 views
0

我們有一個封閉的源代碼gwt應用程序/框架,我們將其分發到不同的部分,然後將其安裝到他們自己的服務器上。使用gwt的插件解決方案

現在我們希望允許第三方開發人員將插件編寫到我們的應用程序中,然後我們的合作伙伴可以安裝它們。

這樣做的最好方法是什麼,甚至可能不分發我們的java代碼?

我們的應用程序確實有一個名爲SpecialMagicPageInterface的接口。然後第三方開發人員可以開發一個實現此接口的頁面,然後我們的軟件應該能夠在運行時創建這種類型的對象,並調用它的方法。

這是可能的,如果第三方只有我們的界面,而不是整個應用程序,如果是的話該怎麼辦?

回答

0

設計應用框架,以這樣的方式

  1. 寫接口,如MagicInterface1,MagicInterface2等,並在同一個JAR與源和類文件的JAR起來。您可以分發此JAR,因爲它僅包含接口。
  2. 在另一個項目/ JAR中編寫應用程序,不要分發此JAR,請從此JAR構建編譯的縮小的模糊JavaScript。 - 顯然這個JAR將取決於包含所有接口的以前的JAR。
  3. 現在將生成的javascript與帶有接口的第一個JAR一起封裝到一個zip中,並提供給插件開發人員。
  4. 他們可以編譯他們的GWT項目 - 他們的插件代碼將取決於您的界面JAR,他們的插件項目也將最​​終成爲一個JavaScript文件。
  5. 在最終的應用程序中,請確保先引用您的框架腳本文件,然後依次引用所有插件腳本文件。

結果:

  • 插件開發者只能看到你的框架的精縮JS,但他們可以創建插件。
  • 框架項目和各個插件項目每個都有一個JS文件。
  • 所有的JS文件在最終應用程序中引用,以正確的順序
  • 代碼的框架是用這樣一種方式,它發現並實例文檔加載後存在的所有插件。
+0

對不起延遲的延遲,但我因爲其他緊急問題而被拉走。但是你確定這個解決方案會起作用嗎?根據http://groups.google.com/group/google-web-toolkit/msg/4a3f912cb89a7256我想要的東西無法完成。但是我會在2周內再次看看gwt,然後我會試着實現你所描述的。 – MTilsted