+++ /dev/null
-/**\r
-* Copyright (C) 2016 ZTE, Inc. and others. All rights reserved. (ZTE)\r
-*\r
-* Licensed under the Apache License, Version 2.0 (the "License");\r
-* you may not use this file except in compliance with the License.\r
-* You may obtain a copy of the License at\r
-*\r
-* http://www.apache.org/licenses/LICENSE-2.0\r
-*\r
-* Unless required by applicable law or agreed to in writing, software\r
-* distributed under the License is distributed on an "AS IS" BASIS,\r
-* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
-* See the License for the specific language governing permissions and\r
-* limitations under the License.\r
-*/\r
-\r
-package org.openo.msb.wrapper.consul.cache;\r
-\r
-import java.math.BigInteger;\r
-import java.util.List;\r
-\r
-import org.openo.msb.wrapper.consul.HealthClient;\r
-import org.openo.msb.wrapper.consul.async.ConsulResponseCallback;\r
-import org.openo.msb.wrapper.consul.model.health.ServiceHealth;\r
-\r
-import com.google.common.base.Function;\r
-\r
-public class HealthCache extends ConsulCache<String, ServiceHealth>{\r
- \r
- private final String serviceName;\r
-\r
- private HealthCache(Function<ServiceHealth, String> keyConversion,\r
- ConsulCache.CallbackConsumer<ServiceHealth> callbackConsumer,String serviceName) {\r
- super(keyConversion, callbackConsumer);\r
- this.serviceName=serviceName;\r
- // TODO Auto-generated constructor stub\r
- }\r
- \r
- \r
- public static HealthCache newCache(\r
- final HealthClient healthClient,\r
- final String serviceName,\r
- final int watchSeconds){\r
- Function<ServiceHealth,String> keyExtractor = new Function<ServiceHealth, String>() {\r
- @Override\r
- public String apply(ServiceHealth input) {\r
- //return input.getKey().substring(rootPath.length() + 1);\r
- return input.getService().getId();\r
- }\r
- }; \r
- \r
- final CallbackConsumer<ServiceHealth> callbackConsumer = new CallbackConsumer<ServiceHealth>() {\r
- @Override\r
- public void consume(BigInteger index, ConsulResponseCallback<List<ServiceHealth>> callback) {\r
- healthClient.getHealthyServiceInstances(serviceName, watchParams(index, watchSeconds),callback);\r
- }\r
- };\r
- \r
- \r
- return new HealthCache(keyExtractor, callbackConsumer,serviceName);\r
- \r
- \r
- }\r
- \r
- public String getServiceName(){\r
- return this.serviceName;\r
- }\r
- \r
-\r
-}
\ No newline at end of file