Fuse 6 is no longer supported
As of February 2025, Red Hat Fuse 6 is no longer supported. If you are using Fuse 6, please upgrade to Red Hat build of Apache Camel.19.16. Indirect Service Invocation With Annotations
In the example below, annotations have been added to the bean called
Order
to manage invocation:
@Named @RequestScoped public class Order implements Serializable { @Inject @Reference private OrderService orderService; private String orderId; private String itemId; private int quantity = 1; public String getOrderId() { return orderId; } public void setOrderId(String orderId) { this.orderId = orderId; } public String getItemId() { return itemId; } public void setItemId(String itemId) { this.itemId = itemId; } public int getQuantity() { return quantity; } public void setQuantity(int quantity) { this.quantity = quantity; } public void create() { OrderAck serviceAck = orderService.submitOrder(this); FacesContext.getCurrentInstance().addMessage(null, new FacesMessage(serviceAck.toString())); } }
- Annotations @Named and @RequestScoped have been added.
- The
OrderService
property has a @Reference annotation. Because of this, its instance is not a reference to the actual service implementation. Instead, it is a SwitchYard Exchange proxy to that service implementation. By using @Reference injected service references, backend service implementations can be non-CDI Bean service implementations. - Implementing the create method invokes the
OrderService
reference (exchange proxy).