2009-09-01 62 views
2

我正在創建一個基於OSGi模型的應用程序。其中一個元素將是網絡訪問(最初http和obr)Java OSGi集中式網絡配置

我正在尋找一種集中化網絡配置(代理,加密等)的方法,或許可以將一個應用程序的其餘部分呼入。

有沒有人做過/有想法?

由於

+0

您只想集中網絡相關配置,或者您想創建一個可用於所有網絡訪問操作的服務(即集中網絡訪問代碼)? – 2009-09-01 09:15:28

+0

理想情況下,集中訪問代碼也是如此,因此,任何類型的網絡訪問都可以使用相同的接口。 – 2009-09-01 09:56:33

回答

4

在這種情況下,一個可能性是將創建OSGi服務或一組服務(可能封裝在一個單獨的束),這將提供所有需要的網絡訪問方法。服務本身可以通過Configuration Admin Service進行配置,該服務是OSGi Service Compendium的一部分。

服務提供的某些方法實際上可以是用於創建預配置的網絡訪問對象(如java.net.URLConnectionjava.net.Socket)的工廠方法。例如:

public interface NetworkService { 
    public Socket createSocket(); 
} 

class NetworkServiceImpl implements NetworkService { 
    static final Proxy DEFAULT_PROXY = new Proxy(...); 

    public Socket createSocket() { 
     Socket s = new Socket(DEFAULT_PROXY); 
     s.setReceiveBufferSize(4096); 
     return s; 
    } 
}