我们正在开发一个涉及许多不同测试的应用程序,其中每个测试都会引导用户执行许多步骤。我们正在考虑使用状态机框架来捕获代码中的状态/转换。我们也在考虑使用规则引擎来补充规则。任何人都有使用JBoss和/或Java的任何状态机框架的经验吗?提前谢谢。
-nguyen
答案 0 :(得分:3)
jbpm这样做并且与jboss很好地集成。根据我的经验,它非常易于使用且功能强大。
答案 1 :(得分:3)
您可能需要查看StatefulJ。它基于Spring Data for Persistence支持,State Model本身使用Annotations定义。这种方法使得设置和维护与XML相比更容易。关于规则 - 我过去使用过Drools并且似乎得到了很好的支持。
免责声明:我是StatefulJ的作者
答案 2 :(得分:1)
如果您要构建一些基于屏幕转换的屏幕系统,那么您应该明确查看Spring WebFlow http://springframework.org/webflow
答案 3 :(得分:1)
我在使用ragel构建易于维护的状态机方面有很好的经验。生成的java代码质量非常高。但是,它纯粹是一个没有特定用途的状态机生成器,因此您可能会发现其他解决方案可以在Web相关问题域中更加无缝地工作。
答案 4 :(得分:1)
也许你可以看看JBoss PVM。它仍处于alpha状态,但可用于建模任何类型的状态机。我们也在研究gui过渡。
答案 5 :(得分:1)
尝试Activiti,似乎很多人都在使用它。 http://activiti.org
对于规则引擎部分,您当然可以使用Drools。
答案 6 :(得分:0)
查看StateBuilderJava,这是一个状态机代码生成器,它将状态机的XML描述转换为Java状态模式的扩展版本。它支持所有UML语义:状态机可以是分层的,并发的和异步的。
每个测试场景都可以使用状态机Xml描述进行建模,代码生成器会代表您编写状态模式,如果手动完成,这将是乏味且容易出错的。
另一个优点是使用图形工具可视化和编辑测试场景。 这允许快速实现和记录一组测试场景。 在这些示例中,编写了一个XMPP客户端的测试套件,以说明如何使用状态机代码生成器轻松快速地编写复杂的测试场景。
免责声明:我是这些软件的作者。
答案 7 :(得分:0)
我使用过activiti。 这是最好的框架。 它是一个轻量级的工作流程和业务流程管理(BPM)平台。 开源并适用于任何Java平台或云。 所有人都需要具备BPMN,Maven,Spring和Activiti的知识。