问题标签 [active-objects]
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.
java - Active objects @Implementation annotation recursion
I'm having a problem with active objects library (https://java.net/projects/activeobjects/pages/Home).
Let's say i have ao entity like this:
And the implementation class of this entity :
Problem is in PersonImpl
class. Because of person.getName()
I get infinite recursion (impl class is always invoked). How can I skip invoking implementation (in PersonImpl
class) and just get name from database?
jira - 在 jira 插件开发中,活动对象的替代方案是什么?
这个问题在这里说交易在jira中不起作用。
我想这意味着活动对象是无用的,并且在生产环境中无法使用。
那么替代方案是什么?
我是 jira 插件开发的新手,我正在做我的第一个项目,做 java 后端部分。我很难让活动对象工作,并且已经花了(浪费?)一个星期。
我需要完整的数据库支持,因此迁移到键值对系统是不够的。
任何帮助,将不胜感激。
编辑,试图澄清:
我正在为 jira 创建一个插件,使我们能够跟踪用户的时间记录。我想保存用户输入的工作时间数据,并以有意义的方式显示它。
(警告)请注意,JIRA 目前不支持活动对象的事务(从 JIRA 6.0 开始)。
因此,如果我仍然想在 jira 中使用 dbs,那么活动对象的替代方法是什么?据我所知,没有事务的数据库毫无意义。
交叉贴...
java - @Implementation 如何使用?
最近我发现了ActiveObejcts,我真的很喜欢它。现在我正在使用 Atlassian 插件的最新版本,仅net.java.ao
用于 ORM 的部分。编译并运行良好。当然,如果符合我的要求,我必须进行一些性能测试。
存在@Implementation注释。那是怎么用的?javadocs 非常简短。
更新
解决方案:
vba - Microsoft word 2010 64bit VBA code when connecting to access database 2010 64bit activex error
Im trying to display records from my access 2010 64 bit database into word footer, when I run the code I get ActiveX can not create object. I do have reference in my vba project microsoft dao 3.6 object library and microsoft activex data objects 6.1 libraries. The code is working fine on 32bit but not 64 bit. Any ideas? Debug pointing to this line as error:
c++ - 活动对象的返回值
早在 2010 年,Herb Sutter 在Dobb 博士的一篇文章中就提倡使用活动物体而不是裸线。
这是一个 C++11 版本:
该类可以这样使用:
我想支持具有非 void 返回类型的成员函数。但是我无法想出一个好的设计来实现这一点,即不使用可以容纳异构类型(如boost::any
)的对象的容器。
欢迎任何想法,尤其是利用 C++11 特性(如std::future
和std::promise
.
java - 活动对象中两列组合的唯一约束
我正在使用 Active Objects 进行开发,并且我的表中有 4 列。我有一个要求,我必须放置一个约束,以便两列的组合始终是唯一的。
这里的要求是 ItemId 和 ItemName 组合应该有一个唯一约束。
我尝试进行一些搜索,但只能找到一种使用 net.java.ao.schema.Unique 类使单个列唯一的方法。
有人可以为我指出如何实现这一目标的正确方向。
谢谢
java - 为数组字段添加设置器时,ActiveObjects 抛出异常
我为构建服务器集成创建了一个 Atlassian Stash 插件,它使用 ActiveObjects 组件来存储数据。我有以下问题:
如果我遵循其他字段并为我的 OneToMany 字段添加一个 getter 和 setter 像这样
使用实体时出现以下异常:
谷歌搜索该问题只找到了删除 setter 的解决方案,如本文中建议的那样。但是,如果配置已经存在,这将消除设置字段的可能性。我不认为删除一个 ActiveObject 并保存一个新的是要走的路。
如何解决这个问题?或者如果不可能,如何在不使用 ActiveObjects 中的 setter 的情况下更新现有对象?
unit-testing - 在 gpars activeobject 方法中调用时,Spock 模拟似乎永远不会被调用
在我的代码中,我有两个类,一个称为 DynamicRule,另一个称为 AORule 的包装器,它为规则实例提供 GPARS activeObject 包装器。
DynamicRule 看起来有点像这样 - 使用一个名为 dynamicExecute 的方法
我有这个 AORule 的包装类,它使用 GPARS activeObject 来管理这样的DynamicRule rule
引用状态,其中execute()
方法调用 async activeObject 方法来触发对内部rule
引用的操作
我一直在尝试编写一些测试来证明这对我自己有效并且它失败了。mockres
我已经尝试对 dynamicRule 本身进行两个简单的测试,这很有效 - 我设置了期望并要求 Mock 调用闭包并测试该闭包对变量的副作用- 一切正常:
在我的第二个测试中,我设置了 Mock 并将其设置在 aorule.rule 实例上并设置了对 mock 的期望,aorule.execute()
调用调用activeExecute()
active 方法的方法,该方法调用我的 mock
这失败了 - 为什么没有在模拟上运行闭包,然后:断言测试失败。
我在这里包含了部分输出跟踪 - 你可以看到它aorule.execute()
触发了 activeObject 方法,我可以看到日志跟踪activeExec : rule dump looks like
- 但是在那之后它似乎都停止了,没有额外的跟踪输出(我期待看到价值val 例如),并且未调用存根闭包并且未设置 mockres - 测试失败
我一直在尝试跟踪这一点,或者在调试器中观看无济于事。我的存根关闭未触发 - 测试失败。
我刚刚尝试再次在调试器中观看,当我越过这条线时
调试器跳转到InternalActor.handleCurrentMessage()
GPAR 中某处的错误处理程序。如果我将其更改为
我不明白这一点。也许我在做一些愚蠢的事情,但是我无法为我的代码编写测试来@ActiveMethod - activeExecute()
使用 Mocks 测试代码(我试图通过手工制作的类等来做到这一点,并且无法让模拟测试工作。
如何正确纠正和运行测试?据我所知 - 当我在脚本(“实时”测试)中运行代码时,代码似乎做了我想做的事情,等等,但我无法进行单元测试来证明这一点
后记:这与 ActiveMethod 包装有关 - 不确定是什么
我在测试脚本中创建了两个虚拟包装器类,如下所示——一个不支持 ActiveObject,一个支持 ActiveObject——两者都调用dynamicExecute()
嵌入规则的方法。AOWrappers 是@ActiveMethod
同一个脚本文件中的两个测试看起来像这样
当我运行测试时 - 第一个通过就好了,第二个失败并且我clos
没有被调用。接下来我应该尝试什么?
澄清问题
我已经尝试并将其简化为单个 groovy 测试文件 - 正在测试类并且测试在同一个文件中,以便您可以希望看到发生了什么
需要注意的关键点是最后的测试。我在 Mock 上设置了期望运行输出闭包,这将更新mockres
变量,我可以断言已在 then: 子句中设置。
当您调用@ActiveMethod execute()
测试时,测试将像这样失败
这表明闭包调用没有设置 mockres。
如果您取消注释后面的 aowrule.exec() 行 - 然后exec()
直接调用委托调用 - 不使用 ActiveMethod 使用的隐藏参与者。当您运行下一行时,正确调用了闭包并设置了 mockres。
所以这个问题有一些事情要做,它试图通过隐藏的演员来测试模拟是否有效@ActiveMothod
。
我认为实际上,如果只是作为脚本运行(在代码中真正使用),代码正在做我期望的事情。但是,当调用 ActiveMethod 时,我似乎无法编写证明预期行为的测试。
我是否必须做一些聪明的事情来使用 Mocks 为 GPAR 之类的异步代码编写 spock 测试 - 或者这是应该工作但没有工作的东西。
scope - 由 Google 电子表格 API 中的触发函数激活的对象的范围/持久性是什么?
Google 电子表格 API 有多种方法可以以编程方式设置活动电子表格、工作表、范围、列等。这些方法可以在 UI 未打开时运行的触发脚本中使用。但是,我没有看到任何解释此激活持续多长时间的文档。
经验和直觉表明,当以编程方式激活电子表格时,它在全局范围内是“活动的”,并且会一直保持活动状态,直到原始函数调用结束。但是,如果这不完全正确,恐怕我会对某些极端情况感到惊讶。
例如,如果我有一个被触发在星期五运行的绑定脚本,并且它调用另一个激活电子表格的绑定脚本,那么在第二个脚本关闭后电子表格似乎仍然处于活动状态,并且另一个脚本调用仍然可以“getActiveSpreadsheet” . 但是,如果触发的脚本终止,并且在 5 分钟后触发了另一个脚本,则您必须再次通过 ID 激活它。
是否有任何文件,或者我的理解是否完整?
例如,考虑一个 Google 服务的 API 由单独服务中的触发函数引起的更改结果触发的情况。
mysql - postgres和mysql上的通用大写搜索不起作用
我正在尝试对可以位于任何类型数据库的表进行简单搜索。以下查询适用于大多数数据库,但我找不到适用于 mysql 的解决方案。我的数据库中的表是由活动对象框架生成的,因此我无法更改这些实例的名称或配置。
这是在除 MySQL 之外的所有数据库上都可以正常工作的查询:
select * from "AO_69D057_FILTER" where "SHARED" = true AND "CONTAINS_PROJECT" = true AND UPPER("FILTER_NAME") like UPPER('%pr%')。
由于某种原因,MySql 无法在双引号中使用表名。如果我使用不带引号的表名,它适用于 MySQL,但不适用于 Postgres。Postgres 正在将表名转换为小写,因为它没有被引用。AO 正在生成大写的表名。
我也尝试使用别名,但由于语句的评估层次结构,这不起作用。
任何建议如何摆脱表名问题?