JBoss 项目
Red Hat
SwitchYard
让 SOA 再次有趣起来
SwitchYard 是一个基于组件的开发框架,专注于利用 SOA 的概念和最佳实践构建结构化、易于维护的服务和应用程序。它与 Apache Camel 合作,以提供快速、简单、灵活的集成运行时,且具有全面的连接性和传输方式。一个统一的应用程序模型增强了 Apache Camel,将 Java EE、BPM、规则、编排和路由整合到一个内聚的开发模型和运行时中。通用功能和交叉关切——验证、转换和策略——与业务逻辑分离并以声明方式处理。这样可以确保一致性并消除重复,使开发人员可以清楚地了解集成应用程序中服务的结构和关系。
要了解详细信息,请查看 SwitchYard 项目主页。
如果你只希望能好好利用它,就签出我们的 教程。
单元测试
轻松创建服务单元测试
使用新服务测试向导轻松生成所有服务的测试存根,在 SwitchYard 编辑器中任何服务或引用的工具板上轻松获取。
package com.example.switchyard.example;
import org.junit.Assert;
import org.junit.Test;
import org.junit.runner.RunWith;
import org.switchyard.component.test.mixins.cdi.CDIMixIn;
import org.switchyard.test.Invoker;
import org.switchyard.test.ServiceOperation;
import org.switchyard.test.SwitchYardRunner;
import org.switchyard.test.SwitchYardTestCaseConfig;
import org.switchyard.test.SwitchYardTestKit;
@RunWith(SwitchYardRunner.class)
@SwitchYardTestCaseConfig(config = SwitchYardTestCaseConfig.SWITCHYARD_XML, mixins = { CDIMixIn.class })
public class ExampleServiceTest {
private SwitchYardTestKit testKit;
private CDIMixIn cdiMixIn;
@ServiceOperation("ExampleService")
private Invoker service;
@Test
public void testSayHello() throws Exception {
// TODO Auto-generated method stub
// initialize your test message
String message = "Bob";
String result = service.operation("sayHello").sendInOut(message)
.getContent(String.class);
// validate the results
Assert.assertTrue("Hello, Bob".equals(result));
}
}