zoukankan      html  css  js  c++  java
  • 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

  • 相关阅读:
    PAT Advanced 1067 Sort with Swap(0, i) (25分)
    PAT Advanced 1048 Find Coins (25分)
    PAT Advanced 1060 Are They Equal (25分)
    PAT Advanced 1088 Rational Arithmetic (20分)
    PAT Advanced 1032 Sharing (25分)
    Linux的at命令
    Sublime Text3使用指南
    IntelliJ IDEA创建第一个Groovy工程
    Sublime Text3 安装ftp插件
    Sublime Text3配置Groovy运行环境
  • 原文地址:https://www.cnblogs.com/zhuyoufeng/p/2128518.html
Copyright © 2011-2022 走看看