0 0

有没有人使用Felix + ipojo做开发的?0

有没有人使用Felix + ipojo做开发的?

有的话,可以多交流下。

现在用Felix + ipojo感觉真寂寞啊

问题补充:发现 @Context(Source.INSTANCE) 注解无效。
反复跟踪源码,结果是 BundleContextHandler 在处理实例Context注入的时候,InstanceManager中压根还没有设置InstanceContext。
设置部分在ManagedType.InstanceSupport.addService(...)方法内的:

ComponentInstance instance = m_future.get().createComponentInstance(instanceDeclaration.getConfiguration());
if (instance instanceof InstanceBundleContextAware) {
   ((InstanceBundleContextAware) instance).setInstanceBundleContext(instanceDeclaration
                                        .getBundle().getBundleContext());
}

要命的是 使用在前,设置在后...  后来查询到这事ipojo 1.12版本的BUG。

BUG编号:FELIX-4646  
https://issues.apache.org/jira/browse/FELIX/component/12311164/?selectedTab=com.atlassian.jira.jira-projects-plugin:component-summary-panel

问题补充:本以为这是 BundleContextHandler 实现有误,所以,试着重新定义了一个新的注解 @InstanceBundleContext,提供了一个新的Handler。
但最终发现仅仅通过Handler, 这个问题绕不过。
也许IPOJO需要调整 InstanceBundleContext的注入时机。

只能等ipojo的下一个版本了,不知道什么时候才会出来..现在是2014-10-15

问题补充:在GoGo控制台执行 update ** 命令,结果发现死锁。
要Update的bundle是通过 Install obr:*** 方式加载的。

发现控制台无反应后, 用JConsole检查了一下,发现
LogListenerThread所在的线程和Gogo Shell所在线程发生死锁。

以前也偶尔发现过执行命令后无反应的现象,由于是在调试,所以就重启Felix,没有太在意。
这种死锁还是比较头疼的事情...

难道不能使用org.apache.felix.log-1.0.1日志模块吗?

问题补充:关于以ipojo为主要组件模型的系统启动时性能监测。

目前找到的一个办法是实现QueueListener,并且把实现类作为QueueListener的服务进行注册。

大概原理是 ipojo下的各种依赖关系基本都是通过事件回调形式发生的,
这些事件任务被ipojo丢到了一个事件队列中,依次触发执行;
(当然ipojo自身提供了同步的、异步的队列服务,缺省情况下,是由PreferenceQueueService丢到一个异步队列中执行)

ipojo的队列服务提供了队列监听器,并且任务在执行时,会进行统计任务执行时间(参考JobInfoCallable类);QueueListener由ReplayQueueEventProxy进行触发。

问题补充:由于缺省情况下,ipojo的任务处理线程只开了一个([ipojo]pool-1-thread-1这个线程),
上面的性能统计基本能用,如果有并发任务的话,统计时间就不准了。
2014年10月10日 16:26
目前还没有答案

相关推荐

    Felix华为Felix开发和运行包。

    【标题】:“Felix华为Felix开发和运行包”揭示了这个压缩包是针对华为公司的一款名为Felix的开发和运行环境。Felix是Apache软件基金会下的一个项目,它是一个基于OSGi(Open Service Gateway Initiative)规范的...

    Felix+struts2做的web示例

    标题 "Felix+Struts2做的web示例" 暗示了这是一个使用Apache Felix作为OSGi容器,并结合Struts2框架构建的Web应用程序。Apache Felix是一个开源的OSGi实现,它允许开发者将应用程序分解为模块化组件,使得代码更易于...

    felix+strust+spring-DM的例子

    最近一段时间有不少朋友发邮件给我要这个例子,有时候没有来得及回邮件,今天把代码上传到CSDN上,需要的下载吧,2个资源分,哈哈。 1、解压后,里面有5个工程,名字为abc的工程是个web工程,用来部署struts插件工程...

    Felix 和 Struts2 开发 Web 应用

    在开发Web应用的过程中,Felix和Struts2是两种重要的技术。Felix是Apache软件基金会提供的一个开源实现,它是基于OSGi(Open Service Gateway Initiative)规范的Java框架,主要用于管理和运行模块化的Java应用程序...

    maven-ipojo-plugin-1.11.1.zip

    Apache iPOJO是Apache Felix项目的一个子项目,它提供了一种在Java应用程序中声明和管理组件的方式,特别适用于OSGi(Open Services Gateway Initiative)环境。Maven iPOJO插件则允许开发者在Maven构建流程中处理...

    iPOJO Toolbox-开源

    iPOJO-Toolbox包含几个项目,以简化Apache Felix iPOJO框架上方的组件的概念和使用。 它包含几个处理程序,一些标准的OSGi服务以及一个Eclipse插件,以及许多其他有用的功能。

    Struts2.1.8+Felix1.4+hibernate集成源码

    Struts2.1.8+Felix1.4+hibernate集成源码,内部是自己通过查资料以及编写部分中间件host-register完成Hibernate3.1.3,Struts2.1.8,felix-1.4的集成。该部分的说明会在博文中说明,敬请关注,大家共同进步。

    springDM+felix

    标题中的“springDM+felix”指的是在Java领域中,Spring Dynamic Modules (Spring DM) 和Apache Felix两个开源框架的结合应用。Spring DM是Spring框架的一个扩展,专门用于服务导向架构(SOA)和OSGi(Open Services ...

    OSGi and Apache Felix 3.0.pdf

    Simplify your OSGi development experience by learning about Felix iPOJO. A relentlessly practical beginner's guide that will walk you through making real-life OSGi applications while showing you the ...

    felix软件包

    felix软件包是Apache Felix项目的一部分,它是一个开源的实现,完全符合OSGi(开放服务网关倡议)规范的框架。OSGI是一种模块化系统,主要用于Java应用程序,它提供了动态模块发现、加载和管理的能力,使得开发人员...

    felix 文档

    ### Apache Felix:OSGi规范的实现 #### 一、Apache Felix简介 Apache Felix 是一个遵循 OSGi(Open Service Gateway Initiative)R4 规范的开源实现。OSGi 是一个面向服务的架构,旨在为 Java 应用程序提供模块化...

    felix 可以用jar包

    标题中的"Felix 可以用jar包"表明我们讨论的是Apache Felix,这是一个开源的OSGi框架,它允许开发者管理和运行Java模块化应用。OSGi(Open Service Gateway Initiative)是一种Java平台上的服务导向架构,用于创建...

    felix-framework-5.6.8

    Felix Framework是Apache软件基金会开发的一个开源OSGi(Open Service Gateway Initiative)框架,它为Java应用程序提供了一种模块化开发的方式。OSGi是一种标准的Java模块系统,它允许开发者将复杂的软件系统分解为...

    Felix 2.0.4

    在Felix 2.0.4中,你可以通过命令行界面或使用图形用户界面(如Felix Gogo Shell)来操作这些概念,进行模块的安装、启动和调试。同时,Felix还提供了丰富的API和工具集,方便开发者进行集成和扩展。 总结起来,...

    apache-felix-demo

    Apache Felix 演示(apache-felix-demo)通常是为了展示如何在 OSGi 环境中开发和运行应用程序,帮助开发者理解 Felix 的工作原理和使用方法。 在这个 demo 中,"order" 可能代表一个订单处理系统的实例,展示了...

    Felix_OSGi实作

    在开发使用Felix的OSGi应用时,首先需要准备开发环境,这通常涉及到JDK、Maven和Felix这三个主要部分。JDK是Java Development Kit,是Java应用开发的必备工具。Maven则是项目管理工具,用于项目的构建、报告和文档...

    osgi felix plug in

    Felix Plugin则是在Felix OSGi环境中使用的插件,用于扩展和增强Felix的功能。 这篇名为“osgi felix plug in”的博文虽然链接不可用,但我们可以基于OSGi和Felix的基本概念来探讨相关的知识点。 1. **OSGi模块...

    org.apache.felix.main.distribution-4.2.1.zip

    10. **模块化开发**:使用 Felix 框架,开发者可以将大型复杂应用分解为多个小的、独立的模块,每个模块负责特定的功能,便于维护和升级。 综上所述,"org.apache.felix.main.distribution-4.2.1.zip" 压缩包包含了...

    struts2+Hibernate+felix1.4.0 integrated

    Struts2、Hibernate和Felix是Java开发中的三个重要组件,它们在企业级应用开发中起着关键作用。Struts2是一个MVC(Model-View-Controller)框架,用于构建可维护性和可扩展性高的Web应用程序。Hibernate则是一个对象...

    Eclipse中搭建Felix运行环境

    在IT行业中,OSGI(Open ...熟悉OSGI和Felix的使用对于进行现代企业级Java应用开发是十分有益的。在实际开发中,你可能还需要学习更多关于OSGI服务、生命周期管理和配置管理的知识,以便更好地利用这个强大的框架。

Global site tag (gtag.js) - Google Analytics