2017-07-26 33 views
0

我創建了一個Liferay 7模塊,它運行良好。我寫了一個Liferay模塊。如何使其可由管理員配置?

問題:在Java源代碼中,我硬編碼了一些管理員需要修改的內容。

問題:什麼是Liferay設置的外部化方式?我不介意服務器是否必須重新啓動,當然,修改現場運行的服務器上的設置(通過Gogo Shell?)的能力可能會很酷,前提是這些設置可以在服務器重新啓動後保留下來。

更具體地說,我有,我希望能夠配置,看起來像"3g9828hf928rf98" API密鑰和我想配置允許的結構,看起來像"BASIC-WEB-CONTENT","EVENTS","INVENTORY"的列表中的其他模塊的模塊。

回答

2

Liferay正在使用標準的OSGi配置。在這裏記錄它是一項相當艱鉅的任務,但它的佈局很好in the documentation

簡而言之:

@Meta.OCD(id = "com.foo.bar.MyAppConfiguration") 
public interface MyAppConfiguration { 

    @Meta.AD(
     deflt = "blue", 
     required = false 
    ) 
    public String favoriteColor(); 

    @Meta.AD(
     deflt = "red|green|blue", 
     required = false 
    ) 
    public String[] validLanguages(); 

    @Meta.AD(required = false) 
    public int itemsPerPage(); 

} 

OCD代表ObjectClassDefinition。它通過id/pid將此配置類/對象綁定到可配置對象。

AD用於AttributeDefinition併爲配置界面提供一些提示,該界面在此元類型的幫助下自動生成。

而當您不喜歡自動生成的用戶界面的外觀時,您「僅」必須爲您在屏幕上看到的標籤(標準Liferay翻譯)添加本地化鍵。

有關OSGi配置的更多詳細信息,例如​​,儘管我發現的例子總是比配置後更復雜一點。

相關問題