我计划在带有SwingGUI应用程序的典型客户机服务器中使用osgi。通过fileinstall可以轻松地将捆绑包部署到服务器,但现在我正在GUI上寻找类似的东西
GUI是用webstart启动的,但我想在不要求用户关闭并重新启动的情况下更新捆绑包
我计划有一个服务器端捆绑包,它监视包含捆绑包的目录,通过http公开捆绑包,并在发生更改时通知客户端。客户端捆绑包将侦听通知,并使用BundleContext和bundle上的方法进行捆绑包安装/更新
注意:我已经在服务器和客户端之间有一个类似RMI
标签: Osgi
jboss7.xapache-felix
我有四个包,每个包只包含一个清单。这些包裹是
app导入com.example.foo.fragment和com.example.bar
foo导出com.example.foo;用法:=com.example.foo.cfg
foo.fragment是附加到foo的片段,导出com.example.foo.fragment和com.example.foo.fragment.cfg;用法:=com.example.foo.fragment
bar它导出com.example.bar并导入com
我目前正在做一个小项目,试图帮助别人弄清楚如何连接一个组件
理想情况下,我们希望做两件事:
有一个呈现模板的jsp
将所有业务登录到SlingAllMethodServlet中
servlet定义要点:
package definition...
import statements...
@SuppressWarnings("serial")
@SlingServlet(
resourceTypes="path/to/my/component",
methods="GET",
标签: Osgi
dependency-managementapache-karafkarafapache-servicemix
我正在使用ServiceMix 6.1.0(包含Karaf 3.0.5),我有一个Maven项目。我想使用karafmaven插件创建一个Karaf归档(.kar)
我理解使用Karaf归档的目标:检索每个依赖项,以便可以在脱机环境中部署.kar。好。。。我想我已经明白了。。。创建并部署.kar后,我得到一个错误:
Error executing command: Can't install feature karafMavenPlugin/0.0.0:
Could not start bund
标签: Osgi
liferay-7message-bus
当我使用liferay 6.1时,我创建了一个接收消息的应用程序
Java类:
public class MailMessageBus implements MessageListener
\src\main\webapp\WEB-INF\src\META-INF\messaging-spring.xml文件:
<beans
default-destroy-method="destroy"
default-init-method="afterPropertiesSet"
xm
标签: Osgi
datanucleusuberjargradle-shadow-plugin
我正在使用gradle构建过程中的影子插件为我的可执行文件打包一个uber jar。然而,这涉及到OSGi结构的datanucleus。当我在gradle中使用shadowJar任务时,plugin.xml会丢失。gradle shadow插件有办法处理这种依赖关系吗?我一直在四处搜索,但除了手动合并东西或远离影子插件之外,没有发现任何有用的东西。FYI“plugin.xml”与OSGi无关。它是一种为应用程序提供插件系统的机制,最初是为Eclipse开发的。DataNucleus使用它是因为它
Im使用org.osgi.util.tracker.ServiceTracker(PrintableServiceTracker实现ServiceTrackerCustomizer,并在添加新服务时简单打印)
我在新电子书“”中读到了关于“伪注册”的内容,我想知道我是否必须显式地进行伪注册,或者framwork是否自动处理这个问题
(ServiceTracker是否会捕获已安装的可打印服务。是否会为每个预安装的可打印服务调用ServiceTracker.addingService(Service
标签: Osgi
equinoxapache-felixknopflerfish
我目前正在创建一个矩阵,显示Knopflerfish、Equinox和Felix在多大程度上符合OSGi 4.2
到目前为止,我查看了Knopflerfish文档(,),以了解实际实现了多少核心规范和概要规范
虽然关于安全层和声明性服务存在一些不一致的声明,但核心规范似乎已经完全实现
让我好奇的是,所有概要规范中有多少得到了实施:
远程服务
日志服务
Http服务
设备访问
配置管理服务
元类型服务
首选项服务
用户管理服务
电讯管理服务
IO连接器服务
初始供应
UPnP设备服务
声明性服务
在我的一个实现库中,我想知道来自哪个用户库请求
捆绑
客户端代码-->服务接口
束B
客户端代码-->服务接口
束C
服务接口
ServiceImpl
这些接口由一个impl解决。束(束C)。在该捆绑包中,我想知道哪个捆绑包请求来自(A或B)
谢谢。您可以将BundleContext的参数添加到接口方法中。然后,当客户机代码调用到您的服务中,并传入其包上下文时,您可以调用context.getBundle().getSymbolicName()或其他方法来获取有关调用所来自的包的信息。您可以将B
我有一个具有依赖项的类,我希望在不重新启动依赖项的情况下对其进行热部署。这个类有一个接口,但只有一个具体的实现
最初,我使用导出的接口创建了一个包,并使用未导出的activator和实现类注册了实现。但是,如果我更新bundle,则在调用PackageAdmin#refreshPackages时,使用注册服务的bundle会在更新后重新启动(使用fileinstall时这是自动的)
我已经通过创建一个单独的api包解决了这个问题
这是实现这一目标的最佳方式吗
您是否曾经拥有一个导出其api并将实
标签: Osgi
apache-karafosgi-bundleapache-servicemix
我正在使用ServiceMix,我试图列出一些捆绑包并仅检索其中的捆绑包ID。
我正在努力做到以下几点:
osgi:list | grep-i | awk xxx
我尝试使用awk,但ServiceMix中没有提供。
我还尝试使用shell:exec,如下所示:
osgi:list | grep-i | shell:execawk'xxx'
但这也不行,也许我的方法完全错了。
其他人是否有经验,我如何才能实现仅检索捆绑包id的目标?我认为没有sed/awk命令。list命令不能只显示bundle
标签: Osgi
esbfuseesbfusefabric
有没有一种方法可以控制fuse-esb结构特性中OSGi包的加载顺序,从而使后面的包依赖于前面包的完整加载?例如,在以下功能中,我希望简单客户端模块仅在前一个捆绑包完全加载后启动:
<features name="simple-service-features">
<feature>
<bundle>mvn:com.company/simple-datasource/0.0.0</bundle>
<bu
我了解到Aries允许有自己的自定义名称空间处理程序来支持自定义标记。
我找不到关于这个话题的任何信息或例子。有人能给我指一下正确的方向吗
谢谢 类NamespaceHandler有一个非常好的特性。这与白羊座非常相似,所以如果你读到白羊座会很熟悉。您还可以在aries子项目中找到示例:或
我试图从资源或节点中的属性在cq5内的资源或节点获取字节的CRC或md5
例如,假设我有一个DAM资产,我想获得包含图像数据的字节blob的MD5指纹,这样我就知道里面的数据何时发生了变化
对于节点来说,同样的方法也很方便。CQ5中有没有内置的方法来实现这一点?您是否尝试过将“etag”mixin添加到要进行校验和的节点中?引述:
jcr:etag属性是一个不透明字符串,其语法与HTTP/1.1中为实体标记定义的语法相同。在语义上,jcr:etag与HTTP/1.1强实体标记相当
在创建mix:
我已经仔细阅读了在“Import-Package”指令中使用可选解决方案,但并不真正理解其中的原因。另外,可选与完全不指定依赖项之间有什么区别?如果您说它是可选的,那么从其他捆绑包导出时可能会出现这种情况。如果您根本不导入它,它将永远无法用于捆绑包。
那么,你需要它做什么?
如果捆绑包中确实有可选部分,则可以导入可选依赖项。然而,当你使用它时,你必须检查它们是否在那里
如果找不到可选的导入,OSGi不会抱怨,但是如果捆绑包使用了根本没有导入的东西,JVM会抱怨。如果您根本没有指定导入包,那么捆绑
我遇到了一个问题,我的一个包通过另一个包加载,即使这两个包之间没有任何直接依赖关系。下面是一个场景
我有三包。捆绑A、B和C。流程为A->B->C。因此A和C之间没有依赖关系
当我部署这3个包时,出于某种原因,bundle C是通过bundle A加载的。我使用Jboss Fuse并通过karaf控制台,当我在bundle A上执行dev:show tree时,它显示连接到bundle A的bundle C
如果我删除了bundle A,bundle C将自行加载,并且我也不会得到任何错误
我已
我在本地下载了zip OpenNTF-Domino-API-2.0.0并解压缩。根据我能够找到的文档,应该有两个updatesite数据库——一个用于服务器,一个用于设计器,但它们似乎不在下载中。
我解压缩了UpdateSite文件,得到了一个site.xml文件,并且能够将它添加到我服务器上的UpdateSite.nsf中。但我不知道如何更新设计器。我找到的所有文档/演示都引用了update-Designer.nsf。
如何将其安装到designer客户端???请按照本演示文稿中的步骤进行操
我使用ServiceTracker在我们的OSGi环境中定位已注册的服务。
我在Bundle Activator启动方法中获得了以下代码:
logger.debug("looking for MyService");
tracker = new ServiceTracker(ctx, MyService.class.getName(), null);
tracker.open();
MyService = ((MyService)tracker.getServic
标签: Osgi
declarative-services
这是另一个问题的副本,但复制自另一个问题:
我遇到了Felix SCR的问题,我从中得到了以下信息:
ServiceFactory.getService()导致了一个循环
出现这种情况的原因是,在激活方法中,将其称为ServiceAImpl(提供ServiceA),服务注册另一个服务,将其称为ServiceB
我有另一个服务组件,称为ServiceCImpl,它同时依赖于ServiceA和ServiceB。通过ServiceAImpl注册ServiceB,ServiceCImpl已经得到满足,在
目前,为了发现我的OSGi框架存在的问题,我使用ss列出所有捆绑包,查看其中哪些是刚刚安装的,哪些是未解决的,并针对每个未解决的捆绑包运行diag。这种方法存在一些问题:
无法仅列出已安装的捆绑包,因此我需要手动查找它们
有些包由于相互依赖而无法解析,因此我获得了大量重复信息
有什么更好的方法吗?对于春分点:
ss-显示已安装的捆绑包(短状态)
参数:
字符串[][-s][bsn的段]
e、 g.已安装ss-s
e、 g.诊断1 2 3
diag - Displays unsatisfied c
集成Guice和OSGi的当前情况如何?即从Guice公开OSGi服务、注入它们等等
提到“Guice主干(将成为2.0)”,但1.2似乎是最新的,因为它修复了。它的作者已经换了,但似乎还没有发布。还有其他的吗?目前,Guice 3.0和Peaberry 1.2的集成工作正常。只是页面似乎有点过时,因为上面提到的代码片段指的是已经被取代的Guice 2.0主干
当您查看存储库历史记录时,您引用的Bug在1.2 Peaberry版本中已修复
的确,Sisu目前正在开发中,它解决了Guice+Pea
标签: Osgi
osgi-bundlemaven-bundle-plugin
我在包类路径上放了几个罐子。下一行显示了my pom.xml中的条目,它使用Felix插件为bundle创建manigest.mf
<Bundle-ClassPath>.,lib/com.springsource.org.h2-1.0.71.jar,lib/com.springsource.org.apache.lucene-2.3.2.jar,lib/com.springsource.org.apache.lucene.search-2.3.2.jar</Bundle-Cla
我有一个单一源文件的项目,在这里完整列出:
package com.acme.el;
public class ExpressionUtils {
public static Object evaluate() {
new org.apache.commons.el.ExpressionEvaluatorImpl();
return null;
}
}
功能与问题无关。当我使用Gradle将项目构建为OSGi包时,清单包含以下指令:
Expor
我们使用CXF分布式OSGi在不同的机器上部署了两个服务实例。我们希望为系统提供负载平衡功能。据我们所知,OSGi不提供任何负载平衡功能。有人知道怎么做吗?负载平衡是一个需要拓扑管理器(TM)来实现的问题。阅读远程服务管理规范会很有用,它正好解决了这类问题
据我所知,远程服务的CXF实现只实现了一个TM,这是“混杂的”,即它发布每个侦听框架中的每个可用服务。但是,您可以编写自己的TM来执行负载平衡和故障切换等
远程服务规范的编写方式使TM实现可以完全独立于任何特定的远程服务实现进行开发。您应该能
我一直在考虑在xpages扩展库中使用关系数据访问。我让它工作,但我把jar放在服务器上让它工作。推荐的部署jdbc驱动程序的方法似乎是通过自定义扩展库
是否有一些关于如何创建的说明。我根本没有创建OSGi插件的经验,所以我在这里有点不熟悉。Patrick,
这比看起来容易。在Eclipse(或Domino Designer的Java视图)中,您创建了一个插件项目。在这里定义扩展点,使其成为扩展库并实现一个简单类(主要返回版本)
您的plug-in.xml如下所示(您可能还有其他内容):
希望这
我正在努力让FelixDependencyManager工作。
我正在使用Karaf 3,我正在使用2个捆绑包进行测试,一个提供配置信息,另一个实现ManagedService接口,具体取决于此信息。
因此,所有内容归结为三类:
依赖捆绑包有两个类:
第一个是扩展使用Felix DependencyManager所需的DependencyActivator基类,并实现init方法,其中创建和配置组件:
public class ConfigAdminTester extends Dependen
标签: Osgi
apache-felixosgi-bundle
免责声明:我是OSGi和Felix的新手。所以,为我这次犯的任何愚蠢的错误道歉,但如果你能指出一个,我真的很感激
我已经下载了ApacheFelixV4.2.1,并按照指南中的说明开始运行它
还按照给定的教程开发示例服务侦听器包、字典包和字典客户端(参考:)
我能够使用Felix:start命令在Felix中成功地安装和启动它们。以下是felix:lb命令的输出
START LEVEL 1
ID|State |Level|Name
0|Active | 0|
我正在尝试将另一个包导出的包导入到Karaf运行时中的(.kar)包中。当我从.kar文件的bean中引用这个包时,我得到一个错误。
我有一个包正在导出一个包,即“com.sample”
当我运行packages:exports时,我可以在列表中看到正在导出的bundle,但是当我从.kar文件中引用它时,会出现以下错误:
The import com.sample cannot be resolved
at beans.testBean.<init>(testBean.java:
我想在OpenShift上使用Felix的bot web admin和gogo命令行界面。
我可以让web管理员工作,但要登录到正在运行的felix,我需要远程shell
我从以下内容开始介绍felix:
java -Dosgi.shell.telnet.port=15000 -Dorg.ops4j.pax.web.listening.addresses=127.7.77.1 -jar bin/felix.jar
它抛出:
ERROR: Bundle org.apache.felix.shel
标签: Osgi
configkarafblueprintproperty-placeholder
我正在蓝图中使用cm:property占位符加载配置文件:
<!-- External configuration -->
<cm:property-placeholder persistent-id="mubyndle" update-strategy="reload">
<cm:default-properties>
<cm:property name="schemaValidation" value="false"/>
标签: Osgi
apache-karafkarafblueprint-osgipax-exam
下面的代码在控制台中执行karaf命令。这在karaf 3.0.3版中运行良好。它在4.0.0或更高版本中失败
@Inject
CommandProcessor commandProcessor;
private class dummyCallable implements Callable{
final ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream();
final PrintS
标签: Osgi
apache-karafosgi-bundlekarafblueprint-osgi
您好,我正在运行时使用FeatureService和BundleContext加载一些功能和捆绑包。所有这些东西都已成功加载。之后,如果我对bundlecontext对象执行操作,我将得到
java.lang.IllegalStateException:无效的BundleContext
@Inject
FeaturesService service;
@Before
public void init() throws Exception{
service.installFeature("
我有一个features.xml,其中列出了几个包。但它们显然都需要安装。所以features.xml所做的就是将依赖项收集到一个位置
除非我大错特错了。在这种情况下,如何解决features.xml中有很多依赖项,并且它们都不是按任何顺序排列的情况。现在我正在进行安装每个捆绑包并逐个启动它们的练习
告诉我我做错了什么-可能有几件事
编辑:
功能由maven插件生成。
当我安装该功能时,我得到了未解决的错误
执行命令时出错:无法解析根:缺少需求[root]osgi.identity;osgi.i
在工作流中重新安排AbsoluteTimeAutoAdvancer时遇到问题
我创建了一个自定义工作流来安排新闻稿电子邮件。为此,我在工作流过程步骤中添加“absoluteTime”元数据,然后在参与者步骤中添加AbsoluteTimeAutoAdvancer。在本场景中,它按预期进行调度
但是,当我试图通过延迟日期来重新安排同一工作流实例时,即使将“absoluteTime”元数据更改为较新的时间戳,它仍然会在较旧的时间执行
是否可以使用AbsoluteTimeAutoAdvancer重新安排
我正在查看通过类似curl的命令行重新启动或刷新OSGi容器(如ApacheFelix)的命令
我使用这个命令来启动单个bundle,是否有类似的命令来重新启动所有bundle
curl -u admin:admin -F action=start http://localhost:4502/system/console/bundles/$bundle symbolic name
谢谢,您可以使用:
curl -u admin:admin -d "shutdown_type=Restart"
我一直试图在不通读整个规范的情况下更多地了解OSGi的更广阔的图景。正如许多事情一样,OSGi的真实写照可能是由一个从事OSGi工作了十年的人写的,而这个人可能并不适合将自己置于一个对OSGi一无所知的人的思维模式中:-)
看看Felix的例子DictionaryService,我真的不明白到底发生了什么。OSGi是否是JVM的一个独特实例,您可以将捆绑包加载到其中,然后可以找到彼此
显然,这是而不是,因为关于StackOverflow的其他答案是明确的,OSGi可以解决分布式系统的依赖性问题,
标签: Osgi
declarative-services
为什么只记录绑定方法引发的异常是规范
我希望组件在这种情况下不会激活
如何处理绑定方法引发的异常以确保组件设置正确?仅仅因为服务引用的绑定引发异常并不一定意味着组件无法激活。由于组件知道异常(毕竟是绑定方法引发了异常),因此可以以这样的方式实现它,即通过返回默认值或提供有限的服务来激活它
绑定方法无论如何都不应该抛出任何异常,这与可能导致激活失败的激活方法不同
参考资料:
OSGi 112.5.7:“如果绑定方法引发异常,SCR必须使用日志服务(如果存在)记录包含异常的错误消息,但组件配置的激活
我正在学习使用ApacheFelix作为我的OSGi框架。我希望能够使用Felix Remote Shell通过telnet访问我正在运行的实例。远程Shell通过Gogo访问进程,如上所述。当我在auto deploybundles目录下使用Gogo shell bundles启动Felix时,它会打开一个Felix提示符g在我从中启动的Linux控制台上。我想做的是让Felix从激活GogoShell开始,但不连接到我当前的Linux控制台并显示g提示符,仍然允许我通过telnet使用远程S
我在OSGi上下文中听到俚语术语“fat bundle”,因此我想知道它与普通OSGi bundle之间的区别是什么?fat bundle是包含其所有依赖项的bundle。因为捆绑包有一个内部类路径,所以您可以获取应用程序并在捆绑包中运行它。一旦你有了这个“胖”包,你就可以把它们分割开来,使之更加模块化。胖包是一个包含所有依赖项的包。因为捆绑包有一个内部类路径,所以您可以获取应用程序并在捆绑包中运行它。一旦你有了这个“肥”包,你就可以雕刻出碎片,使其更模块化
标签: Osgi
multi-modulebndbndtools
我目前正在将一个多模块maven osgi项目迁移到bnd工具
${basedir}//myMultiMavenProject
我正在努力解决的是build.bnd的配置问题,这样我就可以构建捆绑包了
${basedir}//myMultiMavenProject
如果我在导出列表中添加一个包,我会得到:
${basedir}//myMultiMavenProject
查找导出的1个包的源包时出错
${basedir}//myMultiMavenProject
详情如下:
${based
我有两个OSGi包A和B。它们都是用API/实现模型创建的。这两个包都是通过Blueprint机制激活的。两个API包都导出接口,而实现包不导出任何东西。只有A依赖于B
我的问题是,我想将驻留在bundle a中的资源文件名(xml文件)传递给bundle B(在我使用BundleContext.getServiceReferences()方法获得B之后),然后在bundle B中加载资源并对其进行处理。我怎样才能实现同样的目标,甚至是可行的
我读了下面的帖子,Neil Bartlett的回答表
标签: Osgi
osgi-bundlejbossfuseblueprint-osgi
如何导入作为单例bean的导出OSGi服务?
我最终得到的异常如下所示:
Unable to start blueprint container for bundle opaClient
org.osgi.service.blueprint.container.ComponentDefinitionException: Unable to find a matching constructor on class com.opa.gateway.OPAGateway for arguments [
标签: Osgi
aspectjequinoxload-time-weavingbndtools
如何将equinox-Weaving与bndtools一起使用,因为equinox-Weaving示例很旧,无法使用
更新:
尝试运行Hello world的编织示例时
我有两个包:
public class HelloService implements BundleActivator {
public void start(final BundleContext context) throws Exception {
System.out.println("Hel
标签: Osgi
portapache-karafspring-restcontrollerapache-servicemix
作为servicemix/karaf的新手,我尝试创建一个非常简单的程序来接受并返回REST请求。我的课程是:
package (....)
import org.springframework.http.HttpStatus;
import org.springframework.http.MediaType;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotat
我有带GUI(JavaFX)的RCP E4应用程序。它还包含几个没有GUI的IApplication实例。问题是,有些DS服务会自动运行,我想检测哪些应用程序(IAApplication/product ID)是从这些DS服务中启动的。这可能吗?我能得到什么信息 IApplicationContext包含许多方法,可以告诉您它称之为“品牌应用程序”的内容
getBrandingApplication为您提供正在运行的应用程序的id(例如,对于e4,始终是org.eclipse.e4.ui.wor
白板模式在OSGI中被广泛使用。我有一个疑问,希望你能帮我澄清
我有一个实现服务插件的组件p。该服务正在修改系统组件R(它将所有Plugin类型的服务作为动态引用使用)及其行为
现在我有了一个依赖于R的服务X,它依赖于这种修改后的行为。
在我可以在X中使用P之前,我需要确定P实际上是由R选择的。到目前为止,这是通过依赖于消耗R的所有组件中的P来实现的
现在我不确定这是否足够,因为假设一旦p上线,依赖于它的所有组件的bind方法都会在任何组件被实际激活之前被调用
我还没有发现任何OSGI规范可以保
标签: Osgi
integrationesbapache-servicemix
对于我正在从事的一个集成项目,我开始研究java集成技术/ESB。Mule和ServiceMix似乎适合我的需要。我选择了ServiceMix,但发现我自己只使用Camel(在ServiceMix内部)。然后出现了一个问题:
serviceMix是ESB(我认为是)还是像SpringDM服务器那样的应用服务器
或者它可能是一个为集成而微调的应用服务器?
如果我的问题让人觉得很傻,那么很抱歉:/Karaf是OSGi容器,Servicemix构建在Karaf之上,并提供了对ActiveMQ、Came
标签: Osgi
classloaderapache-felix
使用ApacheFelix,我在更新包时遇到ArrayStoreException。它发生在与更新包不同的包中。受影响的捆绑包有一个服务侦听器,该侦听器对更新的捆绑包注册的新服务作出反应。侦听器执行一些以ArrayStoreException结尾的代码。以下是堆栈跟踪:
ERROR: Bundle com.elsten.bliss.platform [47] EventDispatcher: Error during dispatch. (java.lang.ArrayStoreExceptio
我无法运行slingshot示例,ApacheSling我已经遵循了以下步骤
点击
软件包已安装,但未激活。捆绑包的详细折叠视图显示
org.apache.sling.api.resource,版本=[2.2,2]——无法解析您的包导入org.apache.sling.api.resource,版本=[2.2,2]未解析。
假设您的sling安装正在运行,您应该验证包org.apache.sling.api.resource是否未导出或导出的版本错误。
如果存在软件包,则调整导入。您没有说明如何
标签: Osgi
log4j2apache-commons-logging
我试图在osgi模式下使用log4j jcl桥,发现应该使用java.util.ServiceLoader从桥jar获取LogFactoryImpl。我是OSGi新手,所以在参考了一些教程后尝试了它,但它似乎不起作用。捆绑包处于已解析状态
LoggingActivator.java
import org.apache.commons.logging.Log;
import org.apache.commons.logging.LogFactory;
import org.osgi.framewo
1 2 3 4 5 6 ...
下一页 最后一页 共 18 页