• Mule 动态添加Endpoint(二)


    这次是在Outbound中动态修改endpoint。以文件的移动为例。上代码:

     file-config.xml

    <?xml version="1.0" encoding="UTF-8"?>
    <mule xmlns="http://www.mulesource.org/schema/mule/core/2.2"
          xmlns:xsi
    ="http://www.w3.org/2001/XMLSchema-instance"
          xmlns:file
    ="http://www.mulesource.org/schema/mule/file/2.2"
          xsi:schemaLocation
    ="
        http://www.mulesource.org/schema/mule/core/2.2 http://www.mulesource.org/schema/mule/core/2.2/mule.xsd
        http://www.mulesource.org/schema/mule/file/2.2 http://www.mulesource.org/schema/mule/file/2.2/mule-file.xsd
        "
    >

        
    <file:connector name="fileConnector" streaming="false" pollingFrequency="1000" autoDelete="true"
                        outputPattern
    ="#[ORIGINALNAME]"/>

        
    <endpoint name="origin" address="file:///D:/testDir/1" connector-ref="fileConnector"/>
        
    <endpoint name="target" address="file:///D:/testDir/3" connector-ref="fileConnector"/>

        
    <model name="testModel">
            
    <service name="testService">
                
    <inbound>
                    
    <file:inbound-endpoint ref="origin"/>
                
    </inbound>
                
    <outbound>
                    
    <pass-through-router>
                        
    <file:outbound-endpoint ref="target"/>
                    
    </pass-through-router>
                
    </outbound>
            
    </service>
        
    </model>
    </mule>

     FileClient.java

     1 import org.mule.api.MuleContext;
     2 import org.mule.api.endpoint.EndpointBuilder;
     3 import org.mule.api.routing.OutboundRouter;
     4 import org.mule.api.service.Service;
     5 import org.mule.context.DefaultMuleContextFactory;
     6 import org.mule.endpoint.URIBuilder;
     7 
     8 /**
     9  * @Class name:    FileClient
    10  *
    11  * Dynamic add endpoint for OutboundRouter.
    12  * @author: youfeng
    13  * @modified: 8/5/11
    14  */
    15 public class FileClient {
    16 
    17     public static void main(String[] args) throws Throwable {
    18         try {
    19             //start the mule server
    20             MuleContext muleContext;
    21             muleContext = new DefaultMuleContextFactory().createMuleContext("file-config.xml");
    22             muleContext.start();
    23 
    24             //Get the target Service
    25             Service service = muleContext.getRegistry().lookupService("testService");
    26 
    27             //Clone a Global service
    28             EndpointBuilder endpointBuilder = muleContext.getRegistry().lookupEndpointBuilder("origin");
    29             EndpointBuilder cloneEndpoint = (EndpointBuilder) endpointBuilder.clone();
    30 
    31             //Rewrite the info for clone endpoint
    32             cloneEndpoint.setURIBuilder(new URIBuilder("file:///D:/testDir/4"));
    33             muleContext.getRegistry().registerEndpointBuilder("targetDir2", cloneEndpoint);
    34 
    35             //Get the OutboundRouter, clear the message and add the new endpoint
    36             OutboundRouter outboundRouter = ((OutboundRouter) service.getOutboundRouter().getRouters().get(0));
    37             outboundRouter.getEndpoints().clear();
    38             outboundRouter.addEndpoint(cloneEndpoint.buildOutboundEndpoint());
    39 
    40             //restart the service
    41             service.stop();
    42             service.start();
    43 
    44 
    45         } catch (Exception e) {
    46             e.printStackTrace();
    47         }
    48     }
    49 } 

    示例代码下载:

     Mule_Dynamic_Endpoint

  • 相关阅读:
    Jmeter入门--参数化、集合点
    Jmeter入门--断言(检查点)
    Jmeter入门--性能测试实战
    Jmeter入门--元件作用域和执行顺序
    Jmeter入门--Badboy使用教程(转)
    Jmeter入门--脚本录制
    Jmeter入门--可执行元件
    Jmeter入门--工具组成和线程组
    Jmeter入门--安装教程
    mac设置python及pip环境变量及安装mysqlclient
  • 原文地址:https://www.cnblogs.com/zhuyoufeng/p/2128518.html
Copyright © 2020-2023  润新知