瀏覽代碼

在hos-agent中增加测试代码,验证动态路由

Airhead 8 年之前
父節點
當前提交
d63e96c883

+ 14 - 1
hos-agent/pom.xml

@ -96,7 +96,20 @@
            <version>${camel.version}</version>
            <!-- use the same version as your Camel core version -->
        </dependency>
    </dependencies>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-http4</artifactId>
			<version>${camel.version}</version> <!-- use the same version as your Camel core version -->
		</dependency>
		<dependency>
			<groupId>org.apache.camel</groupId>
			<artifactId>camel-http</artifactId>
			<version>${camel.version}</version> <!-- use the same version as your Camel core version -->
		</dependency>
	</dependencies>
	<build>
		<plugins>

+ 4 - 2
hos-agent/src/main/java/com/yihu/hos/agent/camelrouter/AdminProxyRouter.java

@ -11,7 +11,9 @@ import org.springframework.stereotype.Component;
public class AdminProxyRouter extends RouteBuilder {
    @Override
    public void configure() throws Exception {
        from("jetty:http://0.0.0.0:{{agent.proxy.port}}/esb?matchOnUriPrefix=true")
                .to("jetty:http://127.0.0.57:8080/esb?bridgeEndpoint=true&amp;throwExceptionOnFailure=false");
        this.getContext().setTracing(true);
        from("jetty:http://0.0.0.0:9000")
                .process(new GatewayProcessor())
                .routingSlip(method(GatewayProcessor.class, "route"));
    }
}

+ 34 - 0
hos-agent/src/main/java/com/yihu/hos/agent/camelrouter/GatewayProcessor.java

@ -0,0 +1,34 @@
package com.yihu.hos.agent.camelrouter;
import org.apache.camel.Exchange;
import org.apache.camel.Header;
import org.apache.camel.Message;
import org.apache.camel.Processor;
import java.util.HashMap;
import java.util.Map;
public class GatewayProcessor implements Processor {
    public void process(Exchange exchange) throws Exception {
        Message in = exchange.getIn();
        String query = (String) in.getHeader(Exchange.HTTP_QUERY);
        if (query != null) {
            String[] values = query.split("=");
            if (values.length == 2 && values[0].equals("api")) {
                in.setHeader("api", values[1]);
            }
        }
    }
    public String route(@Header("api") String api) {
        if (api == null) {
            return null;
        }
        Map<String, String> apiRoute = new HashMap<>();
        apiRoute.put("swagger", "jetty:http://192.168.1.221:10000/swagger-ui.html?bridgeEndpoint=true&throwExceptionOnFailure=false");
        return apiRoute.get(api);
    }
}