`
Jameslyy
  • 浏览: 403966 次
  • 性别: Icon_minigender_1
  • 来自: 北京
社区版块
存档分类
最新评论

BundleContext

阅读更多
org.osgi.framework.BundleContext

A bundle's execution context within the Framework. The context is used to grant access to other methods so that this bundle can interact with the Framework.

BundleContext methods allow a bundle to:

    Subscribe to events published by the Framework.
    Register service objects with the Framework service registry.
    Retrieve ServiceReferences from the Framework service registry.
    Get and release service objects for a referenced service.
    Install new bundles in the Framework.
    Get the list of bundles installed in the Framework.
    Get the Bundle object for a bundle.
    Create File objects for files in a persistent storage area provided for the bundle by the Framework.

A BundleContext object will be created and provided to the bundle associated with this context when it is started using the BundleActivator.start method. The same BundleContext object will be passed to the bundle associated with this context when it is stopped using the BundleActivator.stop method. A BundleContext object is generally for the private use of its associated bundle and is not meant to be shared with other bundles in the OSGi environment.

The Bundle object associated with a BundleContext object is called the context bundle.

The BundleContext object is only valid during the execution of its context bundle; that is, during the period from when the context bundle is in the STARTING, STOPPING, and ACTIVE bundle states. If the BundleContext object is used subsequently, an IllegalStateException must be thrown. The BundleContext object must never be reused after its context bundle is stopped.

The Framework is the only entity that can create BundleContext objects and they are only valid within the Framework that created them.

@version  $Revision: 1.17 $
分享到:
评论

相关推荐

    konpflerfish konpflerfish tutorial

    public void start(BundleContext context) throws Exception { System.out.println("MyFirstBundle started"); } public void stop(BundleContext context) throws Exception { System.out.println(...

    OSGi传说beta1.1.pdf

    public void start(BundleContext bundleContext) throws Exception { this.context = bundleContext; context.registerService(MyService.class.getName(), new MyServiceImpl(), null); } @Override public...

    Getting Started with OSGi_ Part2

    1. `BundleContext`的作用和重要性:`BundleContext`为bundle提供了一种与OSGi框架进行交互的方式,它是获取其他bundle引用、服务和注册服务的入口点。它是实现OSGi应用动态性和模块化的核心概念。 2. 编程方式与...

    osgi实例(服务注册、引用、跟踪)

    通过`BundleContext.getServiceReference()`或`BundleContext.getServiceReferences()`方法,组件可以获取到服务引用。然后,通过`BundleContext.getService(ServiceReference)`方法,组件可以获取到服务的实例进行...

    SpringDM笔记13-OSGi服务注册与引用

    1. **查找服务**:通过`BundleContext.getServiceReferences()`或`ServiceTracker`等方法获取服务引用。 2. **获取服务**:使用`BundleContext.getService()`或`ServiceTracker.getService()`获取服务实例。 3. **...

    osgi-jetty-9.3.10环境配置-注册Servlet工程示例

    public void start(BundleContext context) throws Exception { OSGiWebAppContext webApp = new OSGiWebAppContext(); webApp.setContextPath("/"); webApp.setWar("path/to/your/webapp"); webApp.addServlet...

    osgi生命周期

    - BundleContext接口为bundle提供了在框架中的执行上下文,通过它可以进行与OSGi框架的交互。 - Bundle接口在逻辑上表示了一个bundle,它是OSGi环境中一个物理bundle对应的一个对象。该对象包含了bundle的基本信息...

    ‪第一个OSGi框架工程

    public void start(BundleContext context) throws Exception { registration = context.registerService(HelloWorld.class, new HelloWorldImpl(), null); } @Override public void stop(BundleContext ...

    OSGi常用服务发布和获取方式总结

    1. **ServiceRegistration**: 当一个模块想要提供服务时,它会创建一个实现了所需接口的类,并使用`BundleContext`的`registerService()`方法来注册该服务。`ServiceRegistration`对象返回,可用于控制服务的生命...

    OSGI-R4 规范-中文

    - **BundleContext**: 为每个bundle提供了一个上下文环境,用于访问服务注册表和服务引用等。 - **Export-Package / Import-Package**: 允许bundle导出和导入包,从而实现模块间的依赖关系管理。 ##### 2. 生命周期...

    OSGI的servlet配置和简单实例

    public void start(BundleContext context) { Dictionary, Object> props = new Hashtable(); props.put(ServletConstants.SERVLET_NAME, "MyServlet"); context.registerService(Servlet.class, new MyServlet...

    osgi_programming

    在源代码中,你会看到ServiceRegistration接口的使用,以及使用BundleContext的getServiceReferences()方法。 7. **安全性和权限管理**: OSGi提供了细粒度的权限控制,允许对bundle的操作进行限制。源代码可能...

    OSGI.NET开放工厂使用示例.zip

    当bundle启动时,你可以在`Activate`方法中使用`BundleContext`的`RegisterService`方法注册服务实现。 4. **服务消费**:其他bundle可以通过查询ServiceRegistry获取并使用服务。这通常在bundle的`Deactivate`方法...

    OSGi入门篇:生命周期层

    BundleContext提供了与OSGi框架交互的执行时上下文环境,它用于访问框架提供的各种服务。而Bundle接口则代表了OSGi框架中的一个逻辑bundle。 6. 动态性与灵活性:OSGi框架的一个核心优势是其模块的动态性。开发者...

    OSGi崁入Servlet的配置步驟

    首先获取`ServiceReference<Servlet>`,然后调用`bundleContext.registerService(Servlet.class.getName(), servletInstance, null)`进行注册。这样,OSGi容器就能识别你的Servlet了。 6. **配置HTTP服务** OSGi...

    OSGI 注册式服务

    4. **发现和使用服务**:在服务消费者中,使用`BundleContext`的`getServiceReferences()`或`getService()`方法查找并获取服务。获取到服务后,可以通过接口调用其方法。 **源码分析** 压缩包中的"OSGI 注册式服务...

    OSGi入门篇:服务层

    - 查找服务:其他bundle可以通过BundleContext接口的getService方法,根据服务接口查找并获取服务实例。 - 绑定服务:一旦找到服务,bundle通常会保持对服务实例的引用,并在需要时调用服务接口中定义的方法。 3. ...

    Equinox OSGi应用嵌入Jersey框架搭建REST服务

    public void start(BundleContext context) throws Exception { WebContainer webContainer = (WebContainer) context.getService(context.getServiceReference(WebContainer.class.getName())); ServletHolder ...

    OSGi service

    注册服务是OSGi服务的关键步骤,通过BundleContext提供的`registerService`方法完成。可以注册单个或多个服务接口,同时提供服务实例和属性字典。属性字典通常使用Hashtable或Properties,其中包含了用于过滤的键值...

Global site tag (gtag.js) - Google Analytics