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过渡。
尝试Activiti,似乎很多人都在使用它。 http://activiti.org
对于规则引擎部分,您当然可以使用Drools。
看看StateBuilderJava ,它是一个状态机代码生成器, 它将状态机的XML描述转换为Java状态模式的扩展版本。 它支持所有UML语义:状态机可以是分层的,并发的和异步的。
每个测试场景都可以使用状态机Xml描述进行建模,代码生成器会代表您编写状态模式,如果手动完成,这将是单调乏味且容易出错的。
另一个优点是使用图形工具可视化和编辑测试场景。 这允许快速实现和记录一组测试场景。 在这些示例中,编写了一个XMPP客户端的测试套件,以说明如何使用状态机代码生成器轻松快速地编写复杂的测试场景。
免责声明:我是这些软件的作者。
我用过activiti。 这是最好的框架。 它是一个轻量级的工作流程和业务流程管理(BPM)平台。 开源并适用于任何Java平台或云。 所有人都需要具备BPMN,Maven,Spring和Activiti的知识。
- 用于gRPC / protobuf的Java IDL(Protocl缓冲区)
- 如何在非线程方法中解决这个问题“线程中的exception”主“java.util.ConcurrentModificationException”