+++ /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.CatalogClient;\r
-import org.openo.msb.wrapper.consul.async.ConsulResponseCallback;\r
-import org.openo.msb.wrapper.consul.model.catalog.CatalogService;\r
-\r
-import com.google.common.base.Function;\r
-\r
-public class CatalogCache extends ConsulCache<String, CatalogService>{\r
- \r
- private final String serviceName;\r
-\r
- private CatalogCache(Function<CatalogService, String> keyConversion,\r
- ConsulCache.CallbackConsumer<CatalogService> callbackConsumer,String serviceName) {\r
- super(keyConversion, callbackConsumer);\r
- this.serviceName=serviceName;\r
- // TODO Auto-generated constructor stub\r
- }\r
- \r
- \r
- public static CatalogCache newCache(\r
- final CatalogClient catalogClient,\r
- final String serviceName,\r
- final int watchSeconds){\r
- Function<CatalogService,String> keyExtractor = new Function<CatalogService, String>() {\r
- @Override\r
- public String apply(CatalogService input) {\r
- //return input.getKey().substring(rootPath.length() + 1);\r
- return input.getServiceId();\r
- }\r
- }; \r
- \r
- final CallbackConsumer<CatalogService> callbackConsumer = new CallbackConsumer<CatalogService>() {\r
- @Override\r
- public void consume(BigInteger index, ConsulResponseCallback<List<CatalogService>> callback) {\r
- catalogClient.getService(serviceName, watchParams(index, watchSeconds),callback);\r
- }\r
- };\r
- \r
- \r
- return new CatalogCache(keyExtractor, callbackConsumer,serviceName);\r
- \r
- \r
- }\r
- \r
- public String getServiceName(){\r
- return this.serviceName;\r
- }\r
- \r
-\r
-}\r