JBoss / Java的状态机框架?

我们正在开发一个涉及许多不同测试的应用程序,其中每个测试都会引导用户执行许多步骤。 我们正在考虑使用状态机框架来捕获代码中的状态/转换。 我们也在考虑使用规则引擎来补充规则。 任何人都有使用JBoss和/或Java的任何状态机框架的经验吗? 提前致谢。

-nguyen

jbpm这样做并且与jboss很好地集成。 根据我的经验,它非常易于使用且function强大。

你可能想看看StatefulJ 。 它基于Spring Data for Persistence支持,State Model本身使用Annotations定义。 这种方法使得设置和维护与XML相比更容易。 关于规则 – 我过去使用过Drools并且似乎得到了很好的支持。

免责声明:我是StatefulJ的作者

如果你正在构建一些屏幕转换为基于屏幕转换的系统,那么你应该明确地查看Spring WebFlow http://springframework.org/webflow

我在使用ragel构建易于维护的状态机方面有很好的经验。 生成的java代码质量非常高。 但是,它纯粹是一个没有特定用途的状态机生成器,因此您可能会发现其他解决方案可以更加无缝地在Web相关问题域中工作。

也许你可以看看JBoss PVM。 它仍处于alpha状态,但可用于模拟任何类型的状态机。 我们也在研究gui过渡。

http://www.jboss.org/jbossjbpm/pvm

尝试Activiti,似乎很多人都在使用它。 http://activiti.org

对于规则引擎部分,您当然可以使用Drools。

看看StateBuilderJava ,它是一个状态机代码生成器, 它将状态机的XML描述转换为Java状态模式的扩展版本。 它支持所有UML语义:状态机可以是分层的,并发的和异步的。

每个测试场景都可以使用状态机Xml描述进行建模,代码生成器会代表您编写状态模式,如果手动完成,这将是单调乏味且容易出错的。

另一个优点是使用图形工具可视化和编辑测试场景。 这允许快速实现和记录一组测试场景。 在这些示例中,编写了一个XMPP客户端的测试套件,以说明如何使用状态机代码生成器轻松快速地编写复杂的测试场景。

免责声明:我是这些软件的作者。

我用过activiti。 这是最好的框架。 它是一个轻量级的工作流程和业务流程管理(BPM)平台。 开源并适用于任何Java平台或云。 所有人都需要具备BPMN,Maven,Spring和Activiti的知识。