问题标签 [equinox]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
4 回答
4344 浏览

equinox - 如何计算春分/至日时刻?

有哪些算法或公式可用于计算分点和至点?几年前我找到了其中一个并实施了它,但精度不是很好:一天中的时间似乎假定为 00:00、06:00、12:00 和 18:00 UTC,具体取决于哪个春分或计算至日。维基百科将这些计算结果精确到分钟,因此必须有更精确的结果。我最喜欢的编程语言的库也出现在那些硬编码的时代,所以我假设它们使用的算法与我实现的算法相同或相似。

我也曾经尝试使用一个库,该库提供了太阳经度,并在 0、90、180 和 270 度的确切时刻执行了一个搜索程序来归零;这一直有效,但与 Wikipedia 中的时间不一致,所以我认为这种方法有问题。然而,我惊喜地发现迈蒙尼德(中世纪的犹太学者)在一千年前使用完全相同的想法提出了一种算法。

0 投票
3 回答
7225 浏览

java - 将带有 Equinox Servle Bridge 的 OSGi 应用程序部署到 Tomcat 时如何配置 Log4J?

使用Equinox servlet 桥部署我的 OSGi Web 应用程序时,我得到以下信息:

我尝试了几种提供必要的“log4j.properties”文件的方法,包括:

  • 将上下文参数“log4jConfigLocation”添加到 servlet 桥 web.xml
  • 在 WEB-INF 文件夹中创建一个文件夹“classes”并将我的 log4j.properties 文件复制到那里(并将其复制到其他几个位置)
  • 删除我的 log4j 包并将“extendedFrameworkExports”设置为 org.apache.log4j 所以(我猜)使用了 tomcat log4j ...这不起作用,因为我的依赖项需要一些作为 log4j 包的片段提供的 slf4j 类。 ..不再存在了...

当然,我还有一个片段包,它使用 log4j.properties 文件扩展了 log4j 包,但看起来这个 log4j 包没有被使用。

添加:我应该补充一点,我正在 Eclipse 中开发应用程序......并且配置 log4j / slf4j 的片段包在那里工作。

有没有人解决这个问题?有任何想法吗?

0 投票
2 回答
1304 浏览

spring - Equinox 中的 Jasper - 无法解析 jstl 核心 uri

我目前正在研究带有 Spring 的 OSGi,并通过Pro Spring Dynamic Modules for OSGi中的几个示例进行工作。

我的示例网络应用程序有一个控制器,例如:

视图解析器配置为:

调用 url'http://localhost:8080/helloworld-web/spring/home'应该会导致视图jsp/home.jsp被渲染,并helloworld包含一个 bean:

但是,我看到以下堆栈跟踪:

因为这是一个作为 OSGi 包部署的 WAR,所以它的WEB-INF/lib目录是完全空的。

我的理解是,jasper 的 OSGi 版本会在单个 Web 应用程序之外寻找 taglib 描述符和 JAR?

有没有其他人看过这个?

0 投票
2 回答
176 浏览

osgi - 动态插件管理/更新

我的意思是如果一个插件将[下载并]复制另一个插件到适当的文件夹或制作链接文件,它是否可以在不重新启动的情况下将其与平台动态集成?


因此,看起来可以构建一个永远在线的服务器,它会随着时间的推移而发展,而无需重新启动。这是必需的(不确定这个词,英语不是我的母语)功能吗?我的意思是企业需要它还是重新启动更容易也可以?我看到的另一个好处是旧版本的兼容性......

0 投票
2 回答
733 浏览

java - OSGi 和遗留库

我一直在研究 OSGi,我想知道处理“遗留”库的最佳方式(这些库作为普通 JAR 发布,而不是作为 OSGi 包发布)。

您认为处理这些问题的最佳方法是什么?修改他们的清单文件并添加最小的特定于捆绑包的信息,然后重新打包它们是我目前所做的,但这对我来说似乎有些错误。我是否应该只对这些 JAR 使用手动依赖管理(我对那些很有可能仅在我的应用程序的某个部分使用的库执行此操作)?

就它们可用而言,我正在为 Eclipse 使用捆绑包(因为我使用 Equinox 作为 OSGi 平台,这对于那些可作为捆绑包提供的库非常有效)。

除了我应该知道的 Eclipse 捆绑包之外,还有其他捆绑存储库吗?

0 投票
8 回答
11942 浏览

java - Persistence.xml 和 OSGi (Equinox)

我目前正在使用 OSGi 进行测试。我正在通过 Eclipse 运行它。我想将我的 DAO 层作为 OSGi 解决方案的一部分,但我的第一个绊脚石是这个错误:

我尝试将persistence.xml 文件放在很多不同的地方,但无济于事。 关于我做错了什么的任何想法?

有没有办法手动加载persistence.xml?

激活器如下所示:

这是我的目录结构的样子:

替代文字 http://www.freeimagehosting.net/uploads/7b7b7d2d30.jpg

这是我的清单.MF

HibernateBundle包含所有的 Hibernate 和 Persistence Jars。

这是我的Persistence.xml

我在清单的类路径中尝试过的事情没有运气:

Bundle-ClassPath: ., META-INF/persistence.xml

捆绑类路径:., ../META-INF/persistence.xml

捆绑类路径:., /META-INF/persistence.xml

捆绑类路径:., ./META-INF/persistence.xml

捆绑类路径:., META-INF

捆绑类路径:., ../META-INF

捆绑类路径:., /META-INF

捆绑类路径:., ./META-INF

Bundle-ClassPath: ., C:\Workspaces\OSGiJPA\Dao\META-INF\persistence.xml

Bundle-ClassPath: ., C:\Workspaces\OSGiJPA\Dao\META-INF

0 投票
6 回答
2978 浏览

java - 远程处理和 OSGi

是否有一种优雅的方式在OSGi 容器 之间之间使用服务?

甚至可能吗?

例如,假设我在本地机器上有一个服务接口。我可以使用哪些方法/技术来通过远程 OSGi 容器的 BundleContext 访问该服务接口?

0 投票
3 回答
8544 浏览

java - OSGI 声明式服务 (DS):什么是使用服务组件实例的好方法

我刚刚开始使用 Equinox 和 Eclipse PDE 使用 OSGI 和声明式服务 (DS)。

我有 2 个捆绑包,A 和 B。捆绑包 A 公开了一个由捆绑包 B 使用的组件。两个捆绑包也再次将此服务公开给 OSGI 服务注册表。

到目前为止一切正常,Equinox 正在将组件连接在一起,这意味着 Bundle A 和 Bundle B 由 Equinox 实例化(通过调用默认构造函数),然后使用 bind / unbind 方法进行连接。

现在,由于 Equinox 正在创建这些组件/服务的实例,我想知道获取此实例的最佳方法是什么?

所以假设有没有被 OSGI 实例化的第三类:

我现在看到以下选项:



1. 在 Activator 中使用 ServiceTracker来获取 ComponentBundleA.class.getName() 的服务(我已经尝试过了,它可以工作,但对我来说似乎开销很大)并通过静态工厂方法使其可用

2. 创建某种注册表,其中每个组件在调用 activate() 方法后立即注册。

或者

}

3. 使用 osgi / equinox 中的现有注册表,其中包含这些实例?我的意思是 OSGI 已经在创建实例并将它们连接在一起,所以它已经在某个地方拥有了对象。但是哪里?我怎样才能得到它们?

结论WantsToUseComponentB 类(不是组件,也不是由 OSGI 实例化)从哪里获得 ComponentB 的实例?是否有任何模式或最佳实践?正如我所说,我设法在 Activator 中使用了 ServiceTracker,但我认为没有它也是可能的。

我正在寻找的实际上是类似 Springframework 的 BeanContainer 之类的东西,在这里我可以说类似 Container.getBean(ComponentA.BEAN_NAME) 之类的东西。但我不想使用 Spring DS。

我希望这已经足够清楚了。否则我也可以发布一些源代码来更详细地解释。

谢谢克里斯托夫


更新: 对尼尔评论的回答:

感谢您针对原始版本澄清这个问题,但我认为您仍然需要说明为什么不能通过 DS 之类的东西创建第三类。

嗯不知道。也许有一种方法,但我需要将我的整个框架重构为基于 DS,以便不再有“new MyThirdClass(arg1, arg2)”语句。真的不知道该怎么做,但我在 DS 中读到了一些关于 ComponentFactories 的内容。所以而不是做一个

我可能会做一个

在撰写本文时,我并不确切知道如何使用 ComponentFactories 但这应该是某种伪代码 :)

谢谢克里斯托夫

0 投票
2 回答
6438 浏览

spring - Equinox (OSGi) 和 JPA/Hibernate - 查找实体

我正在尝试在 OSGi (Equinox) 环境中使用 Hibernate/Spring。如果我明确地将它指向 Persistence.xml 中的实体类,它会很好用:

我想要的是让 Hibernate 像在 OSGi 环境之外那样“找到”所有实体类。

Hibernate 正在寻找 @Entities 的正确包:

看起来它应该可以工作,但是当它在 Bundle Jar 中查找 @Entities 时,会发生异常,我不知道为什么。我已经包含了 Hibernate 吐出的日志的重要部分。

有谁知道我做错了什么或这里的问题是什么?

我在用:

  • 休眠核心 3.3.0.SP1
  • 休眠注释 3.4.0.GA
  • Hibernate Commons 注释 3.1.0.GA
  • 休眠实体管理器 3.4.0.GA
  • 春分 3.4
  • Spring 动态模块 1.2.0

这是 Hibernate 解析 Persistence.xml 的地方

这是发生错误的地方,因为它试图找到实体:

0 投票
3 回答
2807 浏览

java - 配置Equinox修改“本地包缓存”的管理

关于上一个问题,如何让 OSGi 通过 Config Admin 重用您的配置,我仍在尝试在 Equinox Framework 中解决这个问题。

帕沃尔·尤霍斯写道:

Equinox Config Admin (org.eclipse.equinox.cm) 将配置数据存储在框架提供的持久存储区域中。这恰好是 Equinox 默认的“本地包缓存”目录。

所以我阅读了这个主题,发现 Equinox 有几个运行时选项(除其他外,osgi.configuration.area)。

我想要更改配置,以便不会删除或清除本地包缓存,因此下次我将运行框架时,将使用最后输入的配置(对于任何包)。