我正在構建一個框架(類OSGi),其他方可以編寫一個包。但是我希望我的框架能夠管理其他方將要執行的連接請求的QoS。如何在我的框架中捕獲連接請求?
簡單的解決方案是讓他們使用(或強制他們使用 - 雖然我不知道如何)框架的特定ConnectionRequest包。這種方法的問題在於,他們無法使用他們自己的任何首選庫,這些庫依靠標準Java庫進行連接(請求)。
所以我想知道是否有一種方法在Java中捕獲所有請求的連接,所以我可以添加一些關於我的QoS處理的代碼,然後將其發送到底層?
我正在構建一個框架(類OSGi),其他方可以編寫一個包。但是我希望我的框架能夠管理其他方將要執行的連接請求的QoS。如何在我的框架中捕獲連接請求?
簡單的解決方案是讓他們使用(或強制他們使用 - 雖然我不知道如何)框架的特定ConnectionRequest包。這種方法的問題在於,他們無法使用他們自己的任何首選庫,這些庫依靠標準Java庫進行連接(請求)。
所以我想知道是否有一種方法在Java中捕獲所有請求的連接,所以我可以添加一些關於我的QoS處理的代碼,然後將其發送到底層?
我希望我能正確理解你的問題。你可以做的是使用Java 2安全性並限制對java.net。*(或任何其他庫)的訪問,然後提供一個包裝服務,提供功能並將你的QoS方案實現到其他服務。但是,這些其他服務必須使用您的服務接口,並且不能直接使用java.net。*。
你理解這個問題,但這是我希望避免的。由於它削弱了開發人員爲我的框架編程的自由度...... – Falx 2010-02-11 13:55:25
您可以使用ProxySelector類'攔截'所有連接請求,但我不知道api是否與您的使用相關。
http://java.sun.com/j2se/1.5.0/docs/api/java/net/ProxySelector.html
你能詳細一點關於背景下,要求和你心目中的那種服務質量QoS?如果您認爲OSGi規範中缺少某些內容,則可以始終寫一個OSGi RFP來聲明這些要求。 – akr 2010-02-11 12:53:02
這種QoS不應該與它有任何關係。我簡化了我的情況,因爲我想知道的真實情況是,如果可能的話,只需捕獲對java.net。*庫的每個調用或將調用重新路由到我自己的組件即可。對用戶(開發者)都是透明的 – Falx 2010-02-11 13:01:16