如何解决如何使用连接器公共属性,即Mule 4中Mule 3的服务覆盖
我们希望在Mule 4中一次将来自JMS MQ(入站)的所有消息作为一个组进行处理。 为了在Mule 3中实现此功能,我们在JMS连接器中使用了自定义java类和服务替代。如何在Mule 4中实现相同的功能。
pub struct Node<T: FooTrait> {
items: Vec<*mut T>,}
impl <T: FooTrait<T=T>> Node<T> {
pub fn new() ->Node<T> {
Node {
items: Default::default(),}
}
pub fn insert(&mut self,item: &mut T) {
let handle = Handle::new(self,0);
item.set_handle(handle);
self.items.push(item);
}
pub fn remove(&mut self,index: u16) {
self.items.swap_remove(index as usize);
}
}
pub struct Handle<X:FooTrait> {
node: *mut Node<X>,index: u16,}
impl <T:FooTrait> Handle<T> {
fn new(node: &mut Node<T>,i: u16) -> Handle<T> {
Handle {
node: node,index: i
}
}
}
impl <X:FooTrait> Drop for Handle<X> {
fn drop(&mut self) {
unsafe {
let m = self.node.as_mut().unwrap();
m.remove(self.index); // <<----- ???
}
}
}
pub trait FooTrait {
type T : FooTrait;
fn set_handle(&mut self,h: Handle<Self::T>);
}
解决方法
Mule 4中没有服务替代。您需要完全共享您的自定义代码所执行的操作,以查看Mule 4中是否具有等效功能。如果只是为了聚合消息,您可能会发现{{ 3}}有助于实现此目的,而无需自定义代码。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。