From 0653977d8c032a88e4527cdbab6841b73e74e909 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=BF=8A=E5=90=8D?= Date: Tue, 14 Jan 2020 14:21:50 +0800 Subject: [PATCH] feat(oms-pubsub) add unified client manage Admin interface --- .../main/java/io/openmessaging/api/Admin.java | 30 +++++++++++++++++++ .../java/io/openmessaging/api/Consumer.java | 3 +- .../java/io/openmessaging/api/Producer.java | 2 +- .../io/openmessaging/api/PullConsumer.java | 2 +- .../api/batch/BatchConsumer.java | 5 ++-- .../api/order/OrderConsumer.java | 5 ++-- .../api/order/OrderProducer.java | 5 ++-- .../api/transaction/TransactionProducer.java | 5 ++-- 8 files changed, 42 insertions(+), 15 deletions(-) create mode 100644 openmessaging-api/src/main/java/io/openmessaging/api/Admin.java diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/Admin.java b/openmessaging-api/src/main/java/io/openmessaging/api/Admin.java new file mode 100644 index 00000000..5fd24301 --- /dev/null +++ b/openmessaging-api/src/main/java/io/openmessaging/api/Admin.java @@ -0,0 +1,30 @@ +/* + * Licensed to the Apache Software Foundation (ASF) under one or more + * contributor license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright ownership. + * The ASF licenses this file to You under the Apache License, Version 2.0 + * (the "License"); you may not use this file except in compliance with + * the License. You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +package io.openmessaging.api; + +/** + *

+ * Client basic management interface, used for as a unified interface to manage basic operations such as start, stop, + * and authorization information management. + * + *

+ * + * @version OMS 1.2.0 + * @since OMS 1.2.0 + */ +public interface Admin extends LifeCycle, Credentials { +} diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/Consumer.java b/openmessaging-api/src/main/java/io/openmessaging/api/Consumer.java index bb1c0948..4ed9cec0 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/Consumer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/Consumer.java @@ -22,7 +22,7 @@ * @version OMS 1.2.0 * @since OMS 1.2.0 */ -public interface Consumer extends LifeCycle, Credentials { +public interface Consumer extends Admin { /** * Subscribe message in order. @@ -50,6 +50,7 @@ public interface Consumer extends LifeCycle, Credentials { /** * Unsubscribe message + * * @param topic */ void unsubscribe(final String topic); diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/Producer.java b/openmessaging-api/src/main/java/io/openmessaging/api/Producer.java index ba4e46fe..76573660 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/Producer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/Producer.java @@ -41,7 +41,7 @@ * @version OMS 1.2.0 * @since OMS 1.2.0 */ -public interface Producer extends LifeCycle, Credentials { +public interface Producer extends Admin { /** * Sends a message to the specified destination synchronously, the destination should be preset to {@link diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/PullConsumer.java b/openmessaging-api/src/main/java/io/openmessaging/api/PullConsumer.java index 15dbc9ad..e01cc8cd 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/PullConsumer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/PullConsumer.java @@ -20,7 +20,7 @@ import java.util.List; import java.util.Set; -public interface PullConsumer extends LifeCycle, Credentials { +public interface PullConsumer extends Admin { interface TopicPartitionChangeListener { /** diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/batch/BatchConsumer.java b/openmessaging-api/src/main/java/io/openmessaging/api/batch/BatchConsumer.java index da122ed9..0d624d81 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/batch/BatchConsumer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/batch/BatchConsumer.java @@ -17,8 +17,7 @@ package io.openmessaging.api.batch; -import io.openmessaging.api.Credentials; -import io.openmessaging.api.LifeCycle; +import io.openmessaging.api.Admin; /** * Batch message consumer, used to subscribe to messages in batch. @@ -26,7 +25,7 @@ * @version OMS 1.2.0 * @since OMS 1.2.0 */ -public interface BatchConsumer extends LifeCycle, Credentials { +public interface BatchConsumer extends Admin { /** * Subscribe message diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderConsumer.java b/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderConsumer.java index 0bd900e7..40d80be8 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderConsumer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderConsumer.java @@ -17,9 +17,8 @@ package io.openmessaging.api.order; -import io.openmessaging.api.Credentials; +import io.openmessaging.api.Admin; import io.openmessaging.api.ExpressionType; -import io.openmessaging.api.LifeCycle; import io.openmessaging.api.MessageSelector; /** @@ -28,7 +27,7 @@ * @version OMS 1.2.0 * @since OMS 1.2.0 */ -public interface OrderConsumer extends LifeCycle, Credentials { +public interface OrderConsumer extends Admin { /** * Subscribe message in order. diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderProducer.java b/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderProducer.java index f7d00e26..82d8e9b5 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderProducer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/order/OrderProducer.java @@ -17,8 +17,7 @@ package io.openmessaging.api.order; -import io.openmessaging.api.Credentials; -import io.openmessaging.api.LifeCycle; +import io.openmessaging.api.Admin; import io.openmessaging.api.Message; import io.openmessaging.api.SendResult; @@ -28,7 +27,7 @@ * @version OMS 1.2.0 * @since OMS 1.2.0 */ -public interface OrderProducer extends LifeCycle, Credentials { +public interface OrderProducer extends Admin { /** * Send message in order diff --git a/openmessaging-api/src/main/java/io/openmessaging/api/transaction/TransactionProducer.java b/openmessaging-api/src/main/java/io/openmessaging/api/transaction/TransactionProducer.java index 7e29a01e..99cf519b 100644 --- a/openmessaging-api/src/main/java/io/openmessaging/api/transaction/TransactionProducer.java +++ b/openmessaging-api/src/main/java/io/openmessaging/api/transaction/TransactionProducer.java @@ -17,8 +17,7 @@ package io.openmessaging.api.transaction; -import io.openmessaging.api.Credentials; -import io.openmessaging.api.LifeCycle; +import io.openmessaging.api.Admin; import io.openmessaging.api.Message; import io.openmessaging.api.SendResult; @@ -28,7 +27,7 @@ * @version OMS 1.2.0 * @since OMS 1.2.0 */ -public interface TransactionProducer extends LifeCycle, Credentials { +public interface TransactionProducer extends Admin { /** * This method is used to send a transactional message. A transactional message is sent in three steps: