jjzjj

java - Eclipse Equinox,如何配置自动加载插件文件夹中的包

我关注了http://www.eclipse.org/equinox/documents/quickstart-framework.php但它似乎是旧的且无效。没有org.eclipse.update.configurator_3.2.100.jar中描述的包我尝试使用org.eclipse.equinox.simpleconfigurator_1.0.200.v20100503,但不起作用。谁能告诉我如何让Equinox自动加载插件文件夹中的包? 最佳答案 最简单的方法是使用ApacheFelixFileInstall.它与Equ

java - 如何设置具有多个子项目的 Eclipse 项目 (OSGi-Bundle)

Sherlog是一个基于OSGi的日志分析器,如果我将此项目作为工作区快照导入,我会在我的工作区中收到很多项目,但我更愿意将它们作为项目中的子项目。另一种选择是从svncheckout,但随后我遇到了其他问题(我不知道如何设置自动构建的依赖项)有没有人对这个主题有想法或好的链接?谢谢 最佳答案 编辑:对于Eclipse4.5和更新版本,请参阅https://stackoverflow.com/a/34134833/53897Eclipse不支持子项目。Eclipse的生活方式是工作区中的一个或多个项目(可能使用工作集来避免看到所有项

java - 启动 OSGi 包

我尝试在Eclipse中运行OSGi插件。它是空包,但Eclipse总是向我发送错误有我的控制台消息http://pastebin.com/dqQfpQhd怎么了? 最佳答案 问题是默认目标包括许多与您的包无关的包——在所有错误消息完成后键入命令ss将列出它们。这是你要做的:在Eclipse中,转到“首选项”>“插件开发”>“目标平台”创建一个新的空目标定义在Locations选项卡中,添加一个只包含Equinox包的目录(您可以从Eclipse安装的插件目录中复制它,jar的名称类似于org.eclipse.osgi_3.7.0.

java - 如何在通常的 java 代码中运行 OSGi 框架?

任何人都可以给我一个如何使用osgi框架类的例子吗?我不知道如何使用这些类......BR,马库斯 最佳答案 这取决于您使用的是哪种OSGi实现。我使用EclipseEquinox并从常规Java类中启动框架。Eclipsejar(名为org.eclipse.osgi_longversion.jar)有一个名为org.eclipse.core.runtime.adaptor.EclipseStarter的类。这将启动您的OSGi框架。Propertiesprops=newProperties();//addsomepropertie

java - 我如何在 Maven 中结合 WAR 打包和 OSGi 包创建?

我想用war包结构部署我的一个OSGi包,以便它被Struts识别为Web应用程序。我使用Maven,所以我得到内置的WAR包,我有Mavenbundle-plugin来为我创建OSGi兼容的list。问题是,两者不能一起工作,所以bundle插件不知道类文件现在在子文件夹classes/中,而捆绑的jar在lib中/,所以它创建了一个错误的Bundle-classpathheader。我可以手动将正确的header添加到我的pom.xml,但我希望自动添加。我该怎么做? 最佳答案 OPS4JWiki页面上描述了(或多或少)实现此目

java - 嵌入式 OSGi 或应用程序包

在过去的两天里,我刚刚阅读了所有我能接触到的OSGi资料,我终于认为我已经掌握了它。我现在正尝试将它与现有应用程序集成,原因有很多,例如第3方插件、自动更新,更不用说SOA让我很开心。我现在有一个我正在努力做出的决定,那就是天气我的整个应用程序应该成为默认安装在容器中的OSGi包;或我的应用程序应该启动一个嵌入式OSGi容器并与它交互以获取所有插入的服务。我更喜欢1,因为这让我可以轻松地更新应用程序并且架构会保持一致。当然,我预计必须将应用程序重构为许多更小的包。然而,2在短期内使事情变得容易得多,但在未来会变得尴尬。 最佳答案 对

java - 如何在 OSGi 包中查找带注释的类

我的应用程序有几个包,其中包含JAXB注释类和服务包,它负责JAXBContext创建。服务包注册BundleListener并捕获生命周期事件,但问题是我不知道如何从org.osgi.framework.Bundle中检索带注释的类>对象。将带有类的条目添加到MANIFEST.MF和Bundle.loadClass(..)将解决我的问题,但通过注释查找类对我来说似乎是更清晰的解决方案。你知道我如何找到带注释的类吗?我想我必须用扫描jar文件中的.class资源Enumerationclasses=bundle.findEntries("/","*.class",true)并使用Bun

java - OSGI 创建模块化 Web 应用程序

我一直在寻找创建模块化Web应用程序的解决方案,从某种意义上说,它是模块化的,用户可以以简单的jar形式提供自己的插件,然后将自己的数据提供给我的Web应用程序和我的webapp将负责显示它。现在的问题是我希望我的Web应用程序尽可能通用,而不依赖于j2eeWeb容器来支持任何东西。即我不能依赖我的Web容器来提供osgi支持并将Web应用程序部署为osgi包本身(这确实使事情变得非常简单,例如glassfish和WAS)。我计划使用Equinox,目前我看到的唯一解决方案是他们在其官方网站上提供的servlet桥,但对我来说,将所有内容委托(delegate)给servlet真的很痛

java - 如何根据其符号名称检索 Bundle?

BundleContext的文档说它可以让你获取框架中安装的包列表。获取bundle的Bundle对象。但是,没有getBundle(StringsymbolicName)方法,只有getBundle(longid)(和不合适的getBundle(Stringlocation).当然,可以调用getBundles()并遍历返回的数组,但是有更好的方法吗? 最佳答案 我认为遍历getBundles()的数组很好。也许它根本不应该存在,因为符号名称不能唯一标识一个包。也许getBundles(StringsymbolicName)...

java - OSGi 中的速度 : how to load templates from classpath

我正在使用Velocity模板引擎为OSGi开发一个应用程序。它非常适合通过文件加载器加载我的模板,但现在我必须在我的jar中实现这个模板并将其作为资源加载。我怎样才能让它发挥作用?我的代码:ve=newVelocityEngine();ve.setProperty(RuntimeConstants.RESOURCE_LOADER,"classpath");ve.setProperty("classpath.resource.loader.class",ClasspathResourceLoader.class.getName());ve.setProperty("classpath.