Java OSGi 集中式网络配置

标签 java networking osgi

我希望创建一个基于 OSGi 模型的应用程序。其中一个要素是网络访问(最初是 http 和 obr)

我正在寻找一种将网络配置(代理、加密等)集中到应用程序的其余部分可以调用的单个 bundle 中的方法。

有人做过这个/有想法吗?

谢谢

最佳答案

在那种情况下,一种可能性是创建一个 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;
    } 
}

关于Java OSGi 集中式网络配置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1361285/

相关文章:

java - 当字符串被 (a-z) 包围时,从字符串中删除破折号,但不要从中间删除破折号

java - 实例化 FloatBuffer[] 时出现异常

java - java OOP中的矩阵操作

networking - 关于TCP/IP端口绑定(bind)的问题

Java套接字缓冲区问题

java - 无法将资源从主机应用程序导出到 OSGi

java - 将 Java 小程序转换为 <object>

networking - 复制,验证,然后从网络位置删除文件/子项

osgi - 如何在运行时通过 Import-Package 获取我的包所依赖的所有 OSGi 包?

java - 如何获取实现给定接口(interface)的所有服务,而不仅仅是 Activity 的服务?