All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.purbon.kafka.topology.backend.BackendHelper Maven / Gradle / Ivy

Go to download

A helper project for Kafka Platform teams to build an automated Topic, Configuration, Schemas, and more, Management solution.

The newest version!
package com.purbon.kafka.topology.backend;

import com.purbon.kafka.topology.roles.TopologyAclBinding;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

class BackendHelper {

  private static final String expression =
      "^\"?\\'(\\S+)\\',\\s*\\'(\\S+)\\',\\s*\\'(\\S+)\\',\\s*\\'(\\S+)\\',\\s*\\'(.+)\\',\\s*\\'(\\S+)\\'\"?$";
  private static Pattern regexp = Pattern.compile(expression);

  private BackendHelper() {}

  static TopologyAclBinding buildAclBinding(String line) throws IOException {
    // 'TOPIC', 'topicB', '*', 'READ', 'User:Connect1', 'LITERAL'
    Matcher matches = regexp.matcher(line);

    if (matches.groupCount() != 6 || !matches.matches()) {
      throw new IOException(("line (" + line + ") does not match"));
    }

    return TopologyAclBinding.build(
        matches.group(1), // resourceType
        matches.group(2), // resourceName
        matches.group(3), // host
        matches.group(4), // operation
        matches.group(5), // principal
        matches.group(6) // pattern
        );
  }
}




© 2015 - 2024 Weber Informatics LLC | Privacy Policy