jjzjj

java - OSGI 环境中的依赖注入(inject)

先介绍一下背景:我正在开发一些基于ApacheSling的webapp原型(prototype)代码它基于OSGI并在ApacheFelix上运行。尽管我认为我现在已经掌握了大多数概念,但我对OSGI还是比较陌生。然而,令我困惑的是,我一直无法找到一个“完整的”依赖注入(inject)(DI)框架。我已经使用声明式服务(DS)成功地使用了基本的DI。但我的理解是DS是用来引用的——我该怎么说呢?--OSGI将服务和组件注册在一起。为此它工作正常,但我个人使用DI框架,如Guice将整个对象图连接在一起并将对象放在正确的范围内(例如考虑@RequestScoped或@SessionSco

java - OSGI - 处理 bundle 所需的第 3 方 JAR

我刚刚开始进行OSGI开发,正在努力了解如何最好地处理相关JAR。即如果我正在创建一个bundle,我可能需要使用一些3rd方JAR。当我创建我的包JAR以部署到OSGI时,显然这些3rd方JAR不包括在内,因此包将不会运行。我了解一种选择是将这些JAR转换为bundle并将它们部署到OSGI容器。但是,如果它们只需要由一个bundle使用,这似乎并不理想。解决这个问题的最佳方法是什么?可以将JAR嵌入到bundleJAR中吗?如果可以,这是一种合理的方法吗? 最佳答案 您可以通过将第三方jar添加到捆绑jar文件的根目录,然后将捆

spring - 是否可以将 OSGi 与 Spring Data 集成?

我目前正在开发一个在使用JPA和QueryDSL的apacheKaraf下运行的OSGi应用程序。我想知道是否可以将SpringData与QueryDSL一起使用,而不是当前的方法。这样做的原因是我发现Spring存储库非常有用,并且拥有一个用于NoSQL数据库访问的模板将来可能会很有用。我尝试使用OSGi启动一个没有Web上下文的普通Spring应用程序,但是当它尝试加载applicationContext.xml或ApplicationContext.class时出现ClassNoutFoundException。我不想使用SpringDM,因为它已停产。基本上,想要尝试这种集成的

java - 开始使用 OSGI 的最佳方式是什么?

关闭。这个问题是opinion-based.它目前不接受答案。想要改进这个问题吗?更新问题,以便editingthispost提供事实和引用来回答它.关闭9年前。Improvethisquestion是什么让模块/服务/应用程序功能位成为OSGi模块特别好的候选者?我有兴趣使用OSGi在我的应用程序中。我们是一家Java商店,我们非常广泛地使用Spring,所以我倾向于使用SpringDynamicModulesforOSGi(tm)ServicePlatforms.我正在寻找一种将一点OSGi合并到应用程序中作为试用的好方法。这里有人使用过这个或类似的OSGi技术吗?有什么陷阱吗?@

java - OSGi、Java 模块化和拼图

所以截至昨天早上,我对OSGi甚至是什么一无所知。OSGi只是我不断看到的一些流行词,所以我终于抽出一些时间来复习它。这实际上看起来很酷,所以我想首先声明(记录在案)我在任何方面都不反对OSGi,这也不是一些“抨击OSGi”的问题。归根结底,OSGi似乎已经-基本上-解决了JSR277关于Java模块化,它认识到JAR文件规范存在缺陷,在某些极端情况下可能导致命名空间解析和类加载问题。OSGi还做了很多其他非常酷的东西,但据我所知,这是它最大的吸引力(或其中之一)。对我来说——作为一个相当新的(几年前)JavaEE开发人员,我们在2011年并且目前生活在Java7时代,而且这些类加载问

java - 阅读我自己的 jar list

我需要阅读Manifest文件,该文件传递了我的类(class),但是当我使用时:getClass().getClassLoader().getResources(...)我从加载到Java运行时的第一个.jar中获取MANIFEST。我的应用将从小程序或webstart运行,所以我想我将无法访问我自己的.jar文件。我实际上想从开始的.jar中读取Export-package属性FelixOSGi,所以我可以将这些包暴露给Felix。有什么想法吗? 最佳答案 您可以做以下两件事之一:调用getResources()并遍历返回的UR

java - 阅读我自己的 jar list

我需要阅读Manifest文件,该文件传递了我的类(class),但是当我使用时:getClass().getClassLoader().getResources(...)我从加载到Java运行时的第一个.jar中获取MANIFEST。我的应用将从小程序或webstart运行,所以我想我将无法访问我自己的.jar文件。我实际上想从开始的.jar中读取Export-package属性FelixOSGi,所以我可以将这些包暴露给Felix。有什么想法吗? 最佳答案 您可以做以下两件事之一:调用getResources()并遍历返回的UR

dependencies - 如何管理 OSGi 构建依赖项?

我们已将OSGi运行时(Equinox)嵌入到自定义客户端-服务器应用程序中,以促进插件开发,目前一切进展顺利。由于内置的​​list编辑器、依赖管理和导出向导,我们一直在使用Eclipse构建插件。使用Eclipse来管理构建对于通过Hudson进行持续集成不是很有帮助。我们有依赖于其他OSGi包的OSGi包。我真的很讨厌在自定义ANT构建中对构建顺序进行硬编码。我们已经这样做了,这已经是过去了,而且非常可怕。是否有任何构建工具可以轻松管理OSGi依赖项,如果不能自动解决它们?是否有任何体面的例子说明如何做到这一点?澄清:生成的构建脚本只能通过Eclipse使用。它们需要手动运行Ec

dependencies - 如何管理 OSGi 构建依赖项?

我们已将OSGi运行时(Equinox)嵌入到自定义客户端-服务器应用程序中,以促进插件开发,目前一切进展顺利。由于内置的​​list编辑器、依赖管理和导出向导,我们一直在使用Eclipse构建插件。使用Eclipse来管理构建对于通过Hudson进行持续集成不是很有帮助。我们有依赖于其他OSGi包的OSGi包。我真的很讨厌在自定义ANT构建中对构建顺序进行硬编码。我们已经这样做了,这已经是过去了,而且非常可怕。是否有任何构建工具可以轻松管理OSGi依赖项,如果不能自动解决它们?是否有任何体面的例子说明如何做到这一点?澄清:生成的构建脚本只能通过Eclipse使用。它们需要手动运行Ec

关于java:OSGi声明式服务处于活动状态,但没有调用bind()

OSGideclarativeserviceisactive,butbind()isnotcalled我在OSGi上下文中遇到了一个我不理解的声明性服务问题。我试着解释一下:我有一个需要FooManagerService(1..1static)的FooService。FooManagerService引用FooService,但它是可选的(0..ndynamic)。目标是,如果FooService可用,它会在FooManagerService处注册(调用bind()方法),以便FooManagerService始终拥有系统中所有可用FooService实现的列表。它在Windows上运行良好,