diff options
Diffstat (limited to 'src/main/java/org/onap/dmaap/mr/client/MRTopicManager.java')
-rw-r--r-- | src/main/java/org/onap/dmaap/mr/client/MRTopicManager.java | 322 |
1 files changed, 170 insertions, 152 deletions
diff --git a/src/main/java/org/onap/dmaap/mr/client/MRTopicManager.java b/src/main/java/org/onap/dmaap/mr/client/MRTopicManager.java index 54ca7ec..1d8deee 100644 --- a/src/main/java/org/onap/dmaap/mr/client/MRTopicManager.java +++ b/src/main/java/org/onap/dmaap/mr/client/MRTopicManager.java @@ -4,11 +4,13 @@ * ================================================================================ * Copyright © 2017 AT&T Intellectual Property. All rights reserved. * ================================================================================ + * Modifications Copyright © 2021 Orange. + * ================================================================================ * Licensed 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. @@ -17,167 +19,183 @@ * ============LICENSE_END========================================================= * * ECOMP is a trademark and service mark of AT&T Intellectual Property. - * + * *******************************************************************************/ -package org.onap.dmaap.mr.client; -import java.io.IOException; -import java.util.Set; +package org.onap.dmaap.mr.client; import com.att.nsa.apiClient.http.HttpException; import com.att.nsa.apiClient.http.HttpObjectNotFoundException; +import java.io.IOException; +import java.util.Set; + /** * A client for working with topic metadata. + * * @author author */ -public interface MRTopicManager extends MRClient -{ - /** - * Get the topics available in the cluster - * @return a set of topic names - * @throws IOException - */ - Set<String> getTopics () throws IOException; - - /** - * Information about a topic. - */ - public interface TopicInfo - { - /** - * Get the owner of the topic - * @return the owner, or null if no entry - */ - String getOwner (); - - /** - * Get the description for this topic - * @return the description, or null if no entry - */ - String getDescription (); - - /** - * Get the set of allowed producers (as API keys) on this topic - * @return the set of allowed producers, null of no ACL exists/enabled - */ - Set<String> getAllowedProducers (); - - /** - * Get the set of allowed consumers (as API keys) on this topic - * @return the set of allowed consumers, null of no ACL exists/enabled - */ - Set<String> getAllowedConsumers (); - } - - /** - * Get information about a topic. - * @param topic - * @return topic information - * @throws IOException - * @throws HttpObjectNotFoundException - */ - TopicInfo getTopicMetadata ( String topic ) throws HttpObjectNotFoundException, IOException; - - /** - * Create a new topic. - * @param topicName - * @param topicDescription - * @param partitionCount - * @param replicationCount - * @throws HttpException - * @throws IOException - */ - void createTopic ( String topicName, String topicDescription, int partitionCount, int replicationCount ) throws HttpException, IOException; - - /** - * Delete the topic. This call must be authenticated and the API key listed as owner on the topic. - * NOTE: The MR (UEB) API server does not support topic deletion at this time (mid 2015) - * @param topic - * @throws HttpException - * @throws IOException - * @deprecated If/when the Kafka system supports topic delete, or the implementation changes, this will be restored. - */ - @Deprecated - void deleteTopic ( String topic ) throws HttpException, IOException; - - /** - * Can any client produce events into this topic without authentication? - * @param topic - * @return true if the topic is open for producing - * @throws IOException - * @throws HttpObjectNotFoundException - */ - boolean isOpenForProducing ( String topic ) throws HttpObjectNotFoundException, IOException; - - /** - * Get the set of allowed producers. If the topic is open, the result is null. - * @param topic - * @return a set of allowed producers or null - * @throws IOException - * @throws HttpObjectNotFoundException - */ - Set<String> getAllowedProducers ( String topic ) throws HttpObjectNotFoundException, IOException; - - /** - * Allow the given API key to produce messages on the given topic. The caller must - * own this topic. - * @param topic - * @param apiKey - * @throws HttpException - * @throws HttpObjectNotFoundException - * @throws IOException - */ - void allowProducer ( String topic, String apiKey ) throws HttpObjectNotFoundException, HttpException, IOException; - - /** - * Revoke the given API key's authorization to produce messages on the given topic. - * The caller must own this topic. - * @param topic - * @param apiKey - * @throws HttpException - * @throws IOException - */ - void revokeProducer ( String topic, String apiKey ) throws HttpException, IOException; - - /** - * Can any client consume events from this topic without authentication? - * @param topic - * @return true if the topic is open for consuming - * @throws IOException - * @throws HttpObjectNotFoundException - */ - boolean isOpenForConsuming ( String topic ) throws HttpObjectNotFoundException, IOException; - - /** - * Get the set of allowed consumers. If the topic is open, the result is null. - * @param topic - * @return a set of allowed consumers or null - * @throws IOException - * @throws HttpObjectNotFoundException - */ - Set<String> getAllowedConsumers ( String topic ) throws HttpObjectNotFoundException, IOException; - - /** - * Allow the given API key to consume messages on the given topic. The caller must - * own this topic. - * @param topic - * @param apiKey - * @throws HttpException - * @throws HttpObjectNotFoundException - * @throws IOException - */ - void allowConsumer ( String topic, String apiKey ) throws HttpObjectNotFoundException, HttpException, IOException; - - /** - * Revoke the given API key's authorization to consume messages on the given topic. - * The caller must own this topic. - * @param topic - * @param apiKey - * @throws HttpException - * @throws IOException - */ - void revokeConsumer ( String topic, String apiKey ) throws HttpException, IOException; +public interface MRTopicManager extends MRClient { + /** + * Get the topics available in the cluster. + * + * @return a set of topic names + * @throws IOException + */ + Set<String> getTopics() throws IOException; + + /** + * Information about a topic. + */ + interface TopicInfo { + /** + * Get the owner of the topic. + * + * @return the owner, or null if no entry + */ + String getOwner(); + + /** + * Get the description for this topic. + * + * @return the description, or null if no entry + */ + String getDescription(); + + /** + * Get the set of allowed producers (as API keys) on this topic. + * + * @return the set of allowed producers, null of no ACL exists/enabled + */ + Set<String> getAllowedProducers(); + + /** + * Get the set of allowed consumers (as API keys) on this topic. + * + * @return the set of allowed consumers, null of no ACL exists/enabled + */ + Set<String> getAllowedConsumers(); + } + + /** + * Get information about a topic. + * + * @param topic + * @return topic information + * @throws IOException + * @throws HttpObjectNotFoundException + */ + TopicInfo getTopicMetadata(String topic) throws HttpObjectNotFoundException, IOException; + + /** + * Create a new topic. + * + * @param topicName + * @param topicDescription + * @param partitionCount + * @param replicationCount + * @throws HttpException + * @throws IOException + */ + void createTopic(String topicName, String topicDescription, int partitionCount, int replicationCount) throws HttpException, IOException; + + /** + * Delete the topic. This call must be authenticated and the API key listed as owner on the topic. + * NOTE: The MR (UEB) API server does not support topic deletion at this time (mid 2015) + * + * @param topic + * @throws HttpException + * @throws IOException + * @deprecated If/when the Kafka system supports topic delete, or the implementation changes, this will be restored. + */ + @Deprecated + void deleteTopic(String topic) throws HttpException, IOException; + + /** + * Can any client produce events into this topic without authentication? + * + * @param topic + * @return true if the topic is open for producing + * @throws IOException + * @throws HttpObjectNotFoundException + */ + boolean isOpenForProducing(String topic) throws HttpObjectNotFoundException, IOException; + + /** + * Get the set of allowed producers. If the topic is open, the result is null. + * + * @param topic + * @return a set of allowed producers or null + * @throws IOException + * @throws HttpObjectNotFoundException + */ + Set<String> getAllowedProducers(String topic) throws HttpObjectNotFoundException, IOException; + + /** + * Allow the given API key to produce messages on the given topic. The caller must + * own this topic. + * + * @param topic + * @param apiKey + * @throws HttpException + * @throws HttpObjectNotFoundException + * @throws IOException + */ + void allowProducer(String topic, String apiKey) throws HttpObjectNotFoundException, HttpException, IOException; + + /** + * Revoke the given API key's authorization to produce messages on the given topic. + * The caller must own this topic. + * + * @param topic + * @param apiKey + * @throws HttpException + * @throws IOException + */ + void revokeProducer(String topic, String apiKey) throws HttpException, IOException; + + /** + * Can any client consume events from this topic without authentication? + * + * @param topic + * @return true if the topic is open for consuming + * @throws IOException + * @throws HttpObjectNotFoundException + */ + boolean isOpenForConsuming(String topic) throws HttpObjectNotFoundException, IOException; + + /** + * Get the set of allowed consumers. If the topic is open, the result is null. + * + * @param topic + * @return a set of allowed consumers or null + * @throws IOException + * @throws HttpObjectNotFoundException + */ + Set<String> getAllowedConsumers(String topic) throws HttpObjectNotFoundException, IOException; + + /** + * Allow the given API key to consume messages on the given topic. The caller must + * own this topic. + * + * @param topic + * @param apiKey + * @throws HttpException + * @throws HttpObjectNotFoundException + * @throws IOException + */ + void allowConsumer(String topic, String apiKey) throws HttpObjectNotFoundException, HttpException, IOException; + + /** + * Revoke the given API key's authorization to consume messages on the given topic. + * The caller must own this topic. + * + * @param topic + * @param apiKey + * @throws HttpException + * @throws IOException + */ + void revokeConsumer(String topic, String apiKey) throws HttpException, IOException; } |