今天从Github上下载了Felix的源码,对Felix的启动部分进行了一个大概的阅读,记下部分阅读笔记,以待日后继续...
阅读主要工程:
org.apach.felix.main
org.apach.felix.framework
1. org.apache.felix.main.Main主流程:
a. 加载系统属性
b. 设定JVM的ShutdownHook相关线程,在JVM停止的时候调用Framework的stop方法
c. 获取FrameworkFactory的一个实例,然后通过它创建一个FrameWork的实例Felix.
d. 调用Framework的init方法,初始化Framework实例。
e. 通过AutoProcessor自动安装bundle目录下的jar包。
-org.apach.felix.bundlerepository
-org.apach.felix.gogo.command
-org.apach.felix.gogo.runtime
-org.apach.felix.gogo.shell
这几个bundle实现了Felix的命令行处理,以后继续详细的阅读。
f. 调用Framework的start方法。
2. org.apache.felix.framework.Felix.init处理流程:
a. 获取当前bundle的锁
b. 设置系统Bundle的BundleActivator和BundleContext.
setActivator(new SystemBundleActivator());
setBundleContext(new BundleContextImpl(m_logger, this, this));
c. 创建一个BundleCache实例,重新加载felix-cache中存在的bundle。
d. 启动系统Bundle的Activator
Felix.m_secureAction.startActivator(getActivator(), _getBundleContext());
e. 释放当前bundle的锁。
未完待续...
分享到:
相关推荐
标题"Felix笔记1-构建BookshelfProject"指向的是一个关于使用Apache Felix框架构建Bookshelf项目的教程。Apache Felix是一个流行的开源实现,遵循Java企业版(Java EE)中的服务组件运行时(OSGi)规范,用于创建...
本文将基于“Felix---Java开发笔记20100628”这一主题,深入探讨Java及其相关的开发工具和技术栈,包括MyEclipse、Struts、Hibernate、Spring以及JavaScript和Ajax。 首先,Java是一种面向对象的、跨平台的编程语言...
例如,如果只需要获取客户ID为1和2的信息,可以通过以下方式实现: ```sql SELECT * FROM customers WHERE customer_id IN (1, 2); ``` ### 16.3 使用表连接而不是多个查询 当需要从两个或多个表中获取数据时,...
1. **Canova 双屏笔记本**:Canova 设计的双屏笔记本将传统的笔记本形态打破,两块超敏感触摸屏不仅提供了更多的显示空间,还能模拟纸质阅读的体验,为用户带来更加沉浸式的使用环境。 2. **索尼 Vaio Zoom**:这款...
1. Canova 双屏笔记本设计:Canova 的创新在于其双屏设计,两个超敏感触摸屏不仅增强了多任务处理能力,还能让用户以类似阅读纸质媒体的方式浏览内容,提供更加沉浸式的体验。 2. 索尼 Vaio Zoom 笔记本设计:这款...
【.NET框架详解】 .NET框架是微软开发的一个用于构建和运行应用程序的全面开发平台,它包含了一组组件和服务,使得...通过阅读“自己的笔记.doc”和“苏坤笔记.doc”,你将有机会获得更全面、更深入的.NET编程知识。
5. **案例分析**:笔记可能通过实际例子展示了如何在OSGi容器(如Equinox、Felix等)中部署和管理Spring应用,以及如何解决潜在的问题,比如依赖管理和版本冲突。 6. **优势与挑战**:笔记可能讨论了Spring与OSGi...
**1. 创建SpringDM Bundle** 创建SpringDM Bundle通常涉及以下步骤: - 引入必要的OSGi和SpringDM库。 - 创建一个名为MANIFEST.MF的元数据文件,声明Bundle的元信息,如Bundle-SymbolicName、Bundle-Version等,并...
在这个加强笔记中,我们将深入探讨.NET的基础知识,特别是与C#编程语言相关的概念。 首先,类是面向对象编程的核心,它是一个模板或者蓝图,描述了对象的行为和状态。在C#中,定义一个类的基本语法是: ```csharp ...
凡人的OSGi 这是我在 NA 2011,EU 2012和EU 2014上的“ OSGi的凡人”演示文稿的代码。 这是使用OSGi Declarative Services从头开始构建的最小的独立RESTful服务器,旨在证明OSGi不仅适用于超人大师。...
5. **使用工具**:笔记中的“工具”标签可能指的是用于OSGi和SpringDM测试的一些工具,例如 Felix 或 Equinox 这样的OSGi容器,以及Pax Exam这样的集成测试框架。这些工具可以帮助开发者在真实的OSGi环境中运行和...
OSGi(Open Services Gateway Initiative)学习笔记(一) 在IT领域,OSGi是一种模块化系统和Java服务平台,它提供了一种动态管理软件组件的能力。本文将深入探讨OSGi的基本概念、架构以及如何使用它来构建可扩展和...
在本篇“osgi学习笔记(二)”中,我们将深入探讨OSGi(Open Services Gateway Initiative)框架的核心概念、工作原理以及如何在实际项目中应用它。OSGi是一种Java模块化系统,它允许开发人员创建可独立更新和依赖...
在本篇OSGi学习笔记中,我们将深入探讨OSGi(Open Service Gateway Initiative)这一模块化系统,特别是关于服务方面的知识。OSGi是一个Java平台上的动态模块化系统,它允许开发者创建可热部署、互相依赖的模块,...
同时,熟悉相关的工具如Equinox、Felix等OSGi容器的使用,可以帮助我们在实际开发中更高效地管理服务。 总之,SpringDM结合OSGi服务注册和引用,提供了强大的模块化系统构建能力。通过源码学习和使用相应的工具,...
流程挖掘模块-PDEng程序数据科学-JADS 责任小组:埃因霍温科技大学负责讲师:Felix Mannhardt博士( ) 最后更新:2021年4月21日该存储库中的笔记本是Data Science上JADS PDEng程序的Process Mining模块的一部分。...
1. **终端的基础知识**:解释什么是终端模拟器,其工作原理,以及为何在现代计算环境中仍然重要。 2. **常见终端模拟器**:介绍几种流行的终端模拟器,如上述提及的Gnome Terminal、Terminal.app和Windows Terminal...
#JS Camp 笔记/链接1. Devtools 远程调试 - 远程调试网关: : ** 口径StrongLoop Node Inspector - 节点的 webkit 检查器Square PonyDebugger - 调试 iOS 应用程序浏览器远程调试 - *2. 执行编码标准 - 从 git 元...
维蒂格笔记 Noroff前端开发-项目考试2 由Juhi Saigal 这是为客户制作的博客网站。 该博客涵盖了书籍,经济学和生产力的评论,技巧和观点。 如何开始 下载文件后 运行(服务器) npm run start 这将启动服务器 运行...