├── .editorconfig ├── .github ├── ISSUE_TEMPLATE │ ├── bug_report.md │ └── feature_request.md ├── pull_request_template.md └── workflows │ ├── build.yml │ ├── release-patch.yml │ └── release.yml ├── .gitignore ├── .mvn └── wrapper │ ├── maven-wrapper.jar │ └── maven-wrapper.properties ├── CHANGELOG.md ├── CODE_OF_CONDUCT.md ├── CONTRIBUTING.md ├── EG-MASTER-MIGRATION.md ├── LICENSE ├── README.md ├── app ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── StreamRegistryApp.java │ └── resources │ ├── application.yaml │ └── logback.xml ├── bom └── pom.xml ├── core ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── core │ │ ├── handlers │ │ ├── HandlerService.java │ │ └── IdentityHandler.java │ │ ├── services │ │ ├── ConsumerBindingService.java │ │ ├── ConsumerService.java │ │ ├── DomainService.java │ │ ├── InfrastructureService.java │ │ ├── ProcessBindingService.java │ │ ├── ProcessService.java │ │ ├── ProducerBindingService.java │ │ ├── ProducerService.java │ │ ├── SchemaService.java │ │ ├── StreamBindingService.java │ │ ├── StreamService.java │ │ └── ZoneService.java │ │ ├── validators │ │ ├── ConsumerBindingValidator.java │ │ ├── ConsumerValidator.java │ │ ├── DomainValidator.java │ │ ├── InfrastructureValidator.java │ │ ├── ProcessBindingValidator.java │ │ ├── ProcessValidator.java │ │ ├── ProducerBindingValidator.java │ │ ├── ProducerValidator.java │ │ ├── RegexValidator.java │ │ ├── SchemaValidator.java │ │ ├── SnakeCaseValidator.java │ │ ├── SpecificationValidator.java │ │ ├── StreamBindingValidator.java │ │ ├── StreamValidator.java │ │ ├── ValidationException.java │ │ ├── Validator.java │ │ ├── VersionValidator.java │ │ ├── ZoneValidator.java │ │ └── key │ │ │ ├── ConsumerBindingKeyValidator.java │ │ │ ├── ConsumerKeyValidator.java │ │ │ ├── DomainKeyValidator.java │ │ │ ├── InfrastructureKeyValidator.java │ │ │ ├── KeyValidator.java │ │ │ ├── ProcessBindingKeyValidator.java │ │ │ ├── ProcessKeyValidator.java │ │ │ ├── ProducerBindingKeyValidator.java │ │ │ ├── ProducerKeyValidator.java │ │ │ ├── SchemaKeyValidator.java │ │ │ ├── StreamBindingKeyValidator.java │ │ │ ├── StreamKeyValidator.java │ │ │ └── ZoneKeyValidator.java │ │ └── views │ │ ├── ConsumerBindingView.java │ │ ├── ConsumerView.java │ │ ├── DomainView.java │ │ ├── InfrastructureView.java │ │ ├── ProcessBindingView.java │ │ ├── ProcessView.java │ │ ├── ProducerBindingView.java │ │ ├── ProducerView.java │ │ ├── SchemaView.java │ │ ├── StreamBindingView.java │ │ ├── StreamView.java │ │ └── ZoneView.java │ └── test │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── core │ │ ├── services │ │ ├── ConsumerBindingServiceTest.java │ │ ├── ConsumerServiceTest.java │ │ ├── DomainServiceTest.java │ │ ├── InfrastructureServiceTest.java │ │ ├── ProcessBindingServiceTest.java │ │ ├── ProcessServiceTest.java │ │ ├── ProducerBindingServiceTest.java │ │ ├── ProducerServiceTest.java │ │ ├── SchemaServiceTest.java │ │ ├── StreamBindingServiceTest.java │ │ ├── StreamServiceTest.java │ │ └── ZoneServiceTest.java │ │ └── validators │ │ ├── ConsumerValidatorTest.java │ │ ├── ProcessBindingValidatorTest.java │ │ ├── ProcessValidatorTest.java │ │ ├── ProducerValidatorTest.java │ │ └── SnakeCaseValidatorTest.java │ └── resources │ └── logback-test.xml ├── docs ├── .gitignore ├── README.md ├── docs │ ├── architecture │ │ ├── MTSchemaRegistry.png │ │ ├── SR-logo.svg │ │ ├── SR-provider-plugin.svg │ │ ├── SR-usecases.png │ │ ├── StreamRegistryArchitecture.png │ │ ├── StreamRegistryGeneralArch.png │ │ ├── StreamSink.png │ │ ├── StreamSource.png │ │ ├── index.md │ │ └── stream-relocation.gif │ ├── css │ │ ├── custom_tasklist.css │ │ ├── details.css │ │ ├── progress_bar.css │ │ └── tasklist.css │ ├── index.md │ ├── js │ │ ├── details.js │ │ └── flowchart-loader.js │ └── usage │ │ └── index.md └── mkdocs.yml ├── graphql ├── api │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── expediagroup │ │ │ │ └── streamplatform │ │ │ │ └── streamregistry │ │ │ │ └── graphql │ │ │ │ ├── GraphQLApiType.java │ │ │ │ ├── GraphQLBeanPostProcessor.java │ │ │ │ ├── GraphQLConfiguration.java │ │ │ │ ├── GraphQLMetricHandler.java │ │ │ │ ├── StateHelper.java │ │ │ │ ├── filters │ │ │ │ ├── ConsumerBindingFilter.java │ │ │ │ ├── ConsumerFilter.java │ │ │ │ ├── DomainFilter.java │ │ │ │ ├── FilterUtility.java │ │ │ │ ├── InfrastructureFilter.java │ │ │ │ ├── ProcessBindingFilter.java │ │ │ │ ├── ProcessFilter.java │ │ │ │ ├── ProducerBindingFilter.java │ │ │ │ ├── ProducerFilter.java │ │ │ │ ├── SchemaFilter.java │ │ │ │ ├── SecurityMatchUtility.java │ │ │ │ ├── StreamBindingFilter.java │ │ │ │ ├── StreamFilter.java │ │ │ │ ├── TagMatchUtility.java │ │ │ │ └── ZoneFilter.java │ │ │ │ ├── model │ │ │ │ ├── inputs │ │ │ │ │ ├── ConsumerBindingKeyInput.java │ │ │ │ │ ├── ConsumerKeyInput.java │ │ │ │ │ ├── DomainKeyInput.java │ │ │ │ │ ├── InfrastructureKeyInput.java │ │ │ │ │ ├── PrincipalInput.java │ │ │ │ │ ├── ProcessBindingKeyInput.java │ │ │ │ │ ├── ProcessInputStreamBindingInput.java │ │ │ │ │ ├── ProcessInputStreamInput.java │ │ │ │ │ ├── ProcessKeyInput.java │ │ │ │ │ ├── ProcessOutputStreamBindingInput.java │ │ │ │ │ ├── ProcessOutputStreamInput.java │ │ │ │ │ ├── ProducerBindingKeyInput.java │ │ │ │ │ ├── ProducerKeyInput.java │ │ │ │ │ ├── SchemaKeyInput.java │ │ │ │ │ ├── SecurityInput.java │ │ │ │ │ ├── SpecificationInput.java │ │ │ │ │ ├── StatusInput.java │ │ │ │ │ ├── StreamBindingKeyInput.java │ │ │ │ │ ├── StreamKeyInput.java │ │ │ │ │ ├── TagInput.java │ │ │ │ │ └── ZoneKeyInput.java │ │ │ │ └── queries │ │ │ │ │ ├── ConsumerBindingKeyQuery.java │ │ │ │ │ ├── ConsumerKeyQuery.java │ │ │ │ │ ├── DomainKeyQuery.java │ │ │ │ │ ├── InfrastructureKeyQuery.java │ │ │ │ │ ├── ProcessBindingKeyQuery.java │ │ │ │ │ ├── ProcessKeyQuery.java │ │ │ │ │ ├── ProducerBindingKeyQuery.java │ │ │ │ │ ├── ProducerKeyQuery.java │ │ │ │ │ ├── SchemaKeyQuery.java │ │ │ │ │ ├── SecurityQuery.java │ │ │ │ │ ├── SpecificationQuery.java │ │ │ │ │ ├── StreamBindingKeyQuery.java │ │ │ │ │ ├── StreamKeyQuery.java │ │ │ │ │ ├── TagQuery.java │ │ │ │ │ └── ZoneKeyQuery.java │ │ │ │ ├── mutation │ │ │ │ ├── ConsumerBindingMutation.java │ │ │ │ ├── ConsumerMutation.java │ │ │ │ ├── DomainMutation.java │ │ │ │ ├── InfrastructureMutation.java │ │ │ │ ├── Mutation.java │ │ │ │ ├── ProcessBindingMutation.java │ │ │ │ ├── ProcessMutation.java │ │ │ │ ├── ProducerBindingMutation.java │ │ │ │ ├── ProducerMutation.java │ │ │ │ ├── SchemaMutation.java │ │ │ │ ├── StreamBindingMutation.java │ │ │ │ ├── StreamMutation.java │ │ │ │ ├── ZoneMutation.java │ │ │ │ └── impl │ │ │ │ │ ├── ConsumerBindingMutationImpl.java │ │ │ │ │ ├── ConsumerMutationImpl.java │ │ │ │ │ ├── DomainMutationImpl.java │ │ │ │ │ ├── InfrastructureMutationImpl.java │ │ │ │ │ ├── ProcessBindingMutationImpl.java │ │ │ │ │ ├── ProcessMutationImpl.java │ │ │ │ │ ├── ProducerBindingMutationImpl.java │ │ │ │ │ ├── ProducerMutationImpl.java │ │ │ │ │ ├── SchemaMutationImpl.java │ │ │ │ │ ├── StreamBindingMutationImpl.java │ │ │ │ │ ├── StreamMutationImpl.java │ │ │ │ │ └── ZoneMutationImpl.java │ │ │ │ ├── query │ │ │ │ ├── ConsumerBindingQuery.java │ │ │ │ ├── ConsumerQuery.java │ │ │ │ ├── DomainQuery.java │ │ │ │ ├── InfrastructureQuery.java │ │ │ │ ├── ProcessBindingQuery.java │ │ │ │ ├── ProcessQuery.java │ │ │ │ ├── ProducerBindingQuery.java │ │ │ │ ├── ProducerQuery.java │ │ │ │ ├── Query.java │ │ │ │ ├── SchemaQuery.java │ │ │ │ ├── StreamBindingQuery.java │ │ │ │ ├── StreamQuery.java │ │ │ │ ├── ZoneQuery.java │ │ │ │ └── impl │ │ │ │ │ ├── ConsumerBindingQueryImpl.java │ │ │ │ │ ├── ConsumerQueryImpl.java │ │ │ │ │ ├── DomainQueryImpl.java │ │ │ │ │ ├── InfrastructureQueryImpl.java │ │ │ │ │ ├── ProcessBindingQueryImpl.java │ │ │ │ │ ├── ProcessQueryImpl.java │ │ │ │ │ ├── ProducerBindingQueryImpl.java │ │ │ │ │ ├── ProducerQueryImpl.java │ │ │ │ │ ├── SchemaQueryImpl.java │ │ │ │ │ ├── StreamBindingQueryImpl.java │ │ │ │ │ ├── StreamQueryImpl.java │ │ │ │ │ └── ZoneQueryImpl.java │ │ │ │ └── resolvers │ │ │ │ ├── ConsumerBindingResolver.java │ │ │ │ ├── ConsumerResolver.java │ │ │ │ ├── DomainResolver.java │ │ │ │ ├── InfrastructureResolver.java │ │ │ │ ├── ProcessBindingResolver.java │ │ │ │ ├── ProcessResolver.java │ │ │ │ ├── ProducerBindingResolver.java │ │ │ │ ├── ProducerResolver.java │ │ │ │ ├── Resolvers.java │ │ │ │ ├── SchemaResolver.java │ │ │ │ ├── StatusResolver.java │ │ │ │ ├── StreamBindingResolver.java │ │ │ │ ├── StreamResolver.java │ │ │ │ └── ZoneResolver.java │ │ └── resources │ │ │ ├── application-graphql.yaml │ │ │ └── stream-registry.graphql │ │ └── test │ │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── graphql │ │ ├── GraphQLBeanPostProcessorTest.java │ │ ├── GraphQLMetricHandlerTest.java │ │ ├── filters │ │ ├── ConsumerBindingFilterTest.java │ │ ├── FilterUtilityTest.java │ │ ├── ProcessBindingFilterTest.java │ │ ├── ProcessFilterTest.java │ │ ├── ProducerBindingFilterTest.java │ │ ├── SchemaFilterTest.java │ │ ├── SecurityMatchUtilityTest.java │ │ ├── StreamFilterTest.java │ │ └── TagMatchUtilityTest.java │ │ ├── model │ │ └── inputs │ │ │ └── SpecificationInputTest.java │ │ └── mutation │ │ └── impl │ │ ├── ConsumerBindingMutationImplTest.java │ │ ├── ConsumerMutationImplTest.java │ │ ├── ProducerBindingMutationImplTest.java │ │ ├── ProducerMutationImplTest.java │ │ ├── StreamBindingMutationImplTest.java │ │ └── StreamMutationImplTest.java ├── maven-plugin │ ├── pom.xml │ └── src │ │ ├── main │ │ ├── java │ │ │ └── com │ │ │ │ └── expediagroup │ │ │ │ └── streamplatform │ │ │ │ └── streamregistry │ │ │ │ └── graphql │ │ │ │ ├── GraphQLIntrospectionFileGenerator.java │ │ │ │ └── GraphQLIntrospectionFileGeneratorMojo.java │ │ └── resources │ │ │ └── introspection.query │ │ └── test │ │ ├── java │ │ └── com │ │ │ └── expediagroup │ │ │ └── streamplatform │ │ │ └── streamregistry │ │ │ └── graphql │ │ │ ├── GraphQLIntrospectionFileGeneratorMojoTest.java │ │ │ └── GraphQLIntrospectionFileGeneratorTest.java │ │ └── resources │ │ ├── logback-test.xml │ │ └── test.graphql.txt └── scalars │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── graphql │ │ └── type │ │ ├── BaseCoercing.java │ │ ├── JsonCoercingUtil.java │ │ ├── ObjectNodeCoercing.java │ │ └── Scalars.java │ └── test │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── graphql │ └── type │ ├── JsonCoercingUtilTest.java │ └── ObjectNodeCoercingTest.java ├── handler-spi ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── handler │ └── Handler.java ├── it ├── pom.xml └── src │ └── test │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── it │ │ ├── ConsumerBindingTestStage.java │ │ ├── ConsumerTestStage.java │ │ ├── DomainTestStage.java │ │ ├── InfrastructureTestStage.java │ │ ├── ProcessBindingTestStage.java │ │ ├── ProcessTestStage.java │ │ ├── ProducerBindingTestStage.java │ │ ├── ProducerTestStage.java │ │ ├── SchemaTestStage.java │ │ ├── StreamBindingTestStage.java │ │ ├── StreamRegistryIT.java │ │ ├── StreamTestStage.java │ │ ├── ZoneTestStage.java │ │ └── helpers │ │ ├── AbstractTestStage.java │ │ ├── ITestClient.java │ │ ├── ITestDataFactory.java │ │ └── StreamRegistryClient.java │ └── resources │ ├── client.graphql │ └── logback-test.xml ├── lombok.config ├── model ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── model │ ├── Consumer.java │ ├── ConsumerBinding.java │ ├── Domain.java │ ├── Entity.java │ ├── Infrastructure.java │ ├── Principal.java │ ├── Process.java │ ├── ProcessBinding.java │ ├── ProcessInputStream.java │ ├── ProcessInputStreamBinding.java │ ├── ProcessOutputStream.java │ ├── ProcessOutputStreamBinding.java │ ├── Producer.java │ ├── ProducerBinding.java │ ├── Schema.java │ ├── Security.java │ ├── Specification.java │ ├── Specified.java │ ├── Stated.java │ ├── Status.java │ ├── Stream.java │ ├── StreamBinding.java │ ├── Tag.java │ ├── Zone.java │ └── keys │ ├── ConsumerBindingKey.java │ ├── ConsumerKey.java │ ├── DomainKey.java │ ├── InfrastructureKey.java │ ├── ProcessBindingKey.java │ ├── ProcessKey.java │ ├── ProducerBindingKey.java │ ├── ProducerKey.java │ ├── SchemaKey.java │ ├── StreamBindingKey.java │ ├── StreamKey.java │ └── ZoneKey.java ├── mvnw ├── mvnw.cmd ├── pom.xml ├── repository ├── api │ ├── pom.xml │ └── src │ │ └── main │ │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── repository │ │ ├── ConsumerBindingRepository.java │ │ ├── ConsumerRepository.java │ │ ├── DomainRepository.java │ │ ├── InfrastructureRepository.java │ │ ├── ProcessBindingRepository.java │ │ ├── ProcessRepository.java │ │ ├── ProducerBindingRepository.java │ │ ├── ProducerRepository.java │ │ ├── Repository.java │ │ ├── SchemaRepository.java │ │ ├── StreamBindingRepository.java │ │ ├── StreamRepository.java │ │ └── ZoneRepository.java └── kafka │ ├── pom.xml │ └── src │ ├── main │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── repository │ │ └── kafka │ │ ├── ConsumerBindingRepository.java │ │ ├── ConsumerRepository.java │ │ ├── Converter.java │ │ ├── DefaultRepository.java │ │ ├── DomainRepository.java │ │ ├── InfrastructureRepository.java │ │ ├── KafkaConfiguration.java │ │ ├── ProcessBindingRepository.java │ │ ├── ProcessRepository.java │ │ ├── ProducerBindingRepository.java │ │ ├── ProducerRepository.java │ │ ├── PurgingEntityViewListener.java │ │ ├── SchemaRepository.java │ │ ├── StreamBindingRepository.java │ │ ├── StreamRepository.java │ │ └── ZoneRepository.java │ └── test │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── repository │ └── kafka │ ├── ConsumerBindingRepositoryTest.java │ ├── ConverterTest.java │ ├── DefaultRepositoryTest.java │ ├── ProducerBindingRepositoryTest.java │ ├── PurgingEntityViewListenerTest.java │ ├── SampleModel.java │ └── SampleState.java ├── spring-boot-starter ├── pom.xml └── src │ └── main │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── StreamRegistryAutoConfiguration.java │ └── resources │ └── META-INF │ ├── spring.factories │ └── spring │ └── org.springframework.boot.autoconfigure.AutoConfiguration.imports └── state ├── api ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── state │ ├── Configurator.java │ ├── EntityView.java │ ├── EntityViewListener.java │ ├── EventReceiver.java │ ├── EventReceiverListener.java │ ├── EventSender.java │ ├── internal │ └── EventCorrelator.java │ └── model │ ├── Entity.java │ ├── event │ ├── Event.java │ ├── SpecificationDeletionEvent.java │ ├── SpecificationEvent.java │ ├── StatusDeletionEvent.java │ └── StatusEvent.java │ ├── specification │ ├── DefaultSpecification.java │ ├── Principal.java │ ├── ProcessBindingSpecification.java │ ├── ProcessInputStream.java │ ├── ProcessInputStreamBinding.java │ ├── ProcessOutputStream.java │ ├── ProcessOutputStreamBinding.java │ ├── ProcessSpecification.java │ ├── Specification.java │ ├── StreamSpecification.java │ └── Tag.java │ └── status │ ├── DefaultStatus.java │ ├── Status.java │ └── StatusEntry.java ├── avro ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── expediagroup │ │ │ └── streamplatform │ │ │ └── streamregistry │ │ │ └── state │ │ │ └── avro │ │ │ ├── AvroConverter.java │ │ │ ├── AvroObjectDeserializer.java │ │ │ ├── AvroObjectModule.java │ │ │ └── AvroObjectSerializer.java │ └── resources │ │ └── avro │ │ └── stream-registry.avdl │ └── test │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── state │ │ └── avro │ │ ├── AvroConverterTest.java │ │ └── AvroObjectModuleTest.java │ └── resources │ └── logback-test.xml ├── core ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── expediagroup │ │ │ └── streamplatform │ │ │ └── streamregistry │ │ │ └── state │ │ │ ├── DefaultEntityView.java │ │ │ ├── DefaultEntityViewUpdater.java │ │ │ ├── DefaultEventCorrelator.java │ │ │ ├── EntityViewUpdater.java │ │ │ ├── EntityViews.java │ │ │ └── StateValue.java │ └── resources │ │ ├── logback.xml │ │ ├── stream-registry-state-correlator.puml │ │ └── stream-registry-state.puml │ └── test │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── state │ ├── DefaultEntityViewTest.java │ ├── DefaultEntityViewUpdaterTest.java │ ├── DefaultEventCorrelatorTest.java │ ├── EntityViewUpdaterTest.java │ ├── MeteredEntityViewUpdaterTest.java │ └── SampleEntities.java ├── example ├── pom.xml └── src │ └── main │ └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── state │ └── example │ ├── ExampleAgent.java │ └── ExampleAgentApp.java ├── graphql-sender ├── pom.xml └── src │ ├── main │ ├── java │ │ └── com │ │ │ └── expediagroup │ │ │ └── streamplatform │ │ │ └── streamregistry │ │ │ └── state │ │ │ └── graphql │ │ │ ├── ApolloClientFactory.java │ │ │ ├── ApolloExecutor.java │ │ │ ├── ApolloResponseException.java │ │ │ ├── Credentials.java │ │ │ ├── DefaultApolloClientFactory.java │ │ │ ├── GraphQLConverter.java │ │ │ ├── GraphQLEventSender.java │ │ │ └── ObjectNodeTypeAdapter.java │ └── resources │ │ └── client.graphql │ └── test │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── state │ │ └── graphql │ │ ├── ApolloExecutorTest.java │ │ ├── DefaultApolloClientFactoryTest.java │ │ ├── GraphQLConverterTest.java │ │ ├── GraphQLEventSenderTest.java │ │ └── ObjectNodeTypeAdapterTest.java │ └── resources │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker ├── it ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── TestUtils.java │ └── test │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── state │ │ ├── AgentData.java │ │ └── it │ │ ├── AgentIT.java │ │ └── StateIT.java │ └── resources │ └── logback-test.xml ├── kafka-receiver ├── pom.xml └── src │ ├── main │ └── java │ │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── state │ │ └── kafka │ │ └── KafkaEventReceiver.java │ └── test │ ├── java │ └── com │ │ └── expediagroup │ │ └── streamplatform │ │ └── streamregistry │ │ └── state │ │ └── kafka │ │ └── KafkaEventReceiverTest.java │ └── resources │ ├── logback-test.xml │ └── mockito-extensions │ └── org.mockito.plugins.MockMaker └── kafka-sender ├── pom.xml └── src ├── main └── java │ └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── state │ └── kafka │ └── KafkaEventSender.java └── test ├── java └── com │ └── expediagroup │ └── streamplatform │ └── streamregistry │ └── state │ └── kafka │ └── KafkaEventSenderTest.java └── resources ├── logback-test.xml └── mockito-extensions └── org.mockito.plugins.MockMaker /.editorconfig: -------------------------------------------------------------------------------- 1 | [*.java] 2 | wildcard_import_limit=999 # don't use wildcard for Java imports 3 | indent_size=2 4 | indent_style=space 5 | continuation_indent_size=2 6 | trim_trailing_whitespace=true 7 | insert_final_newline=true 8 | end_of_line=lf 9 | max_line_length=140 10 | charset=utf-8 11 | ij_kotlin_name_count_to_use_star_import = 999 12 | ij_kotlin_name_count_to_use_star_import_for_members = 999 13 | ij_yaml_indent_sequence_value=false 14 | ij_yaml_keep_indents_on_empty_lines=false 15 | ij_yaml_space_before_colon=false 16 | ij_yaml_spaces_within_braces=true 17 | ij_yaml_spaces_within_brackets=true 18 | ij_yaml_sequence_on_new_line=false 19 | ij_yaml_block_mapping_on_new_line=false 20 | 21 | [*.xml] 22 | indent_size=2 23 | indent_style=space -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/bug_report.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Bug report 3 | about: Create a report to help us improve stream-registry 4 | title: '' 5 | labels: bug 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Expected Behavior 11 | 12 | Please describe the expected behavior of stream-registry. 13 | 14 | # Actual Behavior 15 | 16 | Please describe what the project is doing _instead_ of the 17 | expected behavior. 18 | 19 | # Steps to Reproduce 20 | 21 | Please include a numbered list of steps that other people can 22 | use to recreate the "Actual Behavior." 23 | 24 | 1. First Step 25 | 2. Second Step 26 | 3. Third Step 27 | 28 | # Additional Information 29 | 30 | Provide any additional information that might be helpful, 31 | such as steps you've tried to resolve the issue, 32 | or observations made about the bug. 33 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/feature_request.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: Feature request 3 | about: Suggest an idea for this project 4 | title: '' 5 | labels: enhancement 6 | assignees: '' 7 | 8 | --- 9 | 10 | # Desired Behavior 11 | 12 | Please describe the new behavior stream-registry project should have. 13 | 14 | # Benefits 15 | 16 | Please list the benefits of updating the stream-registry project 17 | to have the new behavior. E.g.: 18 | 19 | * Builds more quickly 20 | * Enable compatibility with a new platform 21 | -------------------------------------------------------------------------------- /.github/pull_request_template.md: -------------------------------------------------------------------------------- 1 | # stream-registry PR 2 | 3 | _<High level description of the PR>_ 4 | 5 | ### Added 6 | * _<detail item of what was added>_ 7 | * _<describe functionality added>_ 8 | 9 | ### Changed 10 | * _<detail item of what was changed>_ 11 | * _<describe functionality that was changed> 12 | * _<in particular, describe BACKWARD INCOMPATIBLE changes> 13 | 14 | ### Deleted 15 | * _<detail item of what was removed>_ 16 | 17 | 18 | # PR Checklist Forms 19 | 20 | - [ ] CHANGELOG.md updated 21 | - [ ] Reviewer assigned 22 | - [ ] PR assigned (presumably to submitter) 23 | - [ ] Labels added (enhancement, bug, documentation) 24 | -------------------------------------------------------------------------------- /.github/workflows/build.yml: -------------------------------------------------------------------------------- 1 | name: Build 2 | 3 | on: [push, pull_request] 4 | 5 | jobs: 6 | build: 7 | name: Build the project 8 | runs-on: ubuntu-20.04 9 | steps: 10 | - name: Checkout 11 | uses: actions/checkout@v2 12 | with: 13 | fetch-depth: 2 14 | - name: Setup JDK 15 | uses: actions/setup-java@v1 16 | with: 17 | java-version: 17 18 | - name: Cache local Maven repository 19 | uses: actions/cache@v2 20 | with: 21 | path: ~/.m2/repository 22 | key: ${{ runner.os }}-maven-${{ hashFiles('**/pom.xml') }} 23 | restore-keys: | 24 | ${{ runner.os }}-maven- 25 | - name: mvn build 26 | run: ./mvnw clean install -Djib.skip -B 27 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | .classpath 4 | .project 5 | .settings 6 | target/ 7 | 8 | *dependency-reduced-pom.xml 9 | 10 | logs/ 11 | *.log 12 | *.iml 13 | .idea 14 | *.ipr 15 | *.iws 16 | 17 | !core/src/main/docker/bin/ 18 | 19 | # Avoid ignoring Maven wrapper jar file (.jar files are usually ignored) 20 | !/.mvn/wrapper/maven-wrapper.jar 21 | charts/charts/ 22 | charts/requirements.lock 23 | pom.xml.versionsBackup 24 | -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.jar: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/.mvn/wrapper/maven-wrapper.jar -------------------------------------------------------------------------------- /.mvn/wrapper/maven-wrapper.properties: -------------------------------------------------------------------------------- 1 | distributionUrl=https://repo1.maven.org/maven2/org/apache/maven/apache-maven/3.6.0/apache-maven-3.6.0-bin.zip 2 | -------------------------------------------------------------------------------- /CONTRIBUTING.md: -------------------------------------------------------------------------------- 1 | ## Bugs 2 | We use Github Issues for our bug reporting. Please make sure the bug isn't already listed before 3 | opening a new issue. 4 | 5 | ## Enhancement Requests 6 | If there is a feature that you would like added, please open an issue in GitHub and follow the respective 7 | template. 8 | 9 | ## Development 10 | All work on stream-registry happens directly on Github. Project leadership will review opened 11 | pull requests. See README.md for instructions on how to build, test and document your PR. 12 | 13 | ## Contributing to Documentation 14 | To contribute to documentation, you can directly modify the corresponding .md files in the 15 | docs directory. Please submit a pull request. Once your PR is merged, the documentation is 16 | automatically built and momentarily deployed to [stream registry documentation]. 17 | 18 | ## License 19 | By contributing to stream-registry, you agree that your contributions will be licensed 20 | under its Apache License. 21 | 22 | [stream registry documentation]: https://expediagroup.github.io/stream-registry 23 | -------------------------------------------------------------------------------- /EG-MASTER-MIGRATION.md: -------------------------------------------------------------------------------- 1 | # `eg-master` Migration 2 | 3 | This file is to document major work that will be necessary in migration from `master` to `eg-master`. 4 | 5 | # Lifecycle 6 | 7 | The intended lifecycle of this document should exactly match the lifecycle of `eg-master` branch. 8 | In other words, this document should start when `eg-master` starts, 9 | and should be removed when `eg-master` becomes the new master. 10 | 11 | # Migration tasks/notes 12 | 13 | ##### - avdl change to `com.expediagroup`([#175](https://github.com/ExpediaGroup/stream-registry/pull/175)) 14 | 15 | This will result in an internal data migration of the schemas. 16 | 17 | ###### Mitigation 18 | 19 | One way to mitigate would be to export the old metadata into an external datastore. 20 | Scripts could be made available to import from the external datastore into the new schemas. 21 | At some level, this could be an MVP for a disaster recovery tool which arguably should be available anyway. 22 | 23 | -------------------------------------------------------------------------------- /app/src/main/resources/application.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | spring.profiles.active: default,graphql 3 | endpoints.prometheus.enabled: true 4 | management.endpoints.web.exposure.include: info,health,prometheus 5 | -------------------------------------------------------------------------------- /app/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/RegexValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators; 17 | 18 | import java.util.regex.Pattern; 19 | 20 | public class RegexValidator { 21 | 22 | public static void validate(String name, Pattern pattern) throws ValidationException { 23 | if (!pattern.matcher(name).matches()) { 24 | throw new ValidationException(String.format("Invalid name '%s'. Names must conform to pattern %s", name, pattern.pattern())); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/SnakeCaseValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators; 17 | 18 | import java.util.regex.Pattern; 19 | 20 | public class SnakeCaseValidator { 21 | private static final Pattern snakeCasePattern = Pattern.compile("^[a-z][a-z0-9]*(?:_[a-z0-9]+)*$"); 22 | 23 | public static void validate(String name) throws ValidationException { 24 | RegexValidator.validate(name, snakeCasePattern); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/ValidationException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators; 17 | 18 | public class ValidationException extends RuntimeException { 19 | public ValidationException(String message) { 20 | super(message); 21 | } 22 | 23 | public ValidationException(Exception e) { 24 | super(e); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/Validator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators; 17 | 18 | public interface Validator { 19 | 20 | void validateForCreate(T type) throws ValidationException; 21 | 22 | void validateForUpdate(T type, T existing) throws ValidationException; 23 | } 24 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/VersionValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators; 17 | 18 | public class VersionValidator { 19 | 20 | public static void validate(Integer version, int min, int max) throws ValidationException { 21 | if (version >= min && version <= max) { 22 | return; 23 | } 24 | throw new ValidationException(String.format("Invalid version '%d'. Please ensure version >= %d and version <= %d.", version, min, max)); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/DomainKeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 21 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey; 23 | 24 | public class DomainKeyValidator implements KeyValidator { 25 | @Override 26 | public void validateKey(Domain entity) throws ValidationException { 27 | DomainKey key = entity.getKey(); 28 | validate(key.getName()); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/InfrastructureKeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 21 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure; 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.InfrastructureKey; 23 | 24 | public class InfrastructureKeyValidator implements KeyValidator{ 25 | @Override 26 | public void validateKey(Infrastructure entity) throws ValidationException { 27 | InfrastructureKey key = entity.getKey(); 28 | validate(key.getZone()); 29 | validate(key.getName()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/KeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 19 | import com.expediagroup.streamplatform.streamregistry.model.Entity; 20 | 21 | public interface KeyValidator { 22 | void validateKey(T entity) throws ValidationException; 23 | } 24 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/ProcessBindingKeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 21 | import com.expediagroup.streamplatform.streamregistry.model.ProcessBinding; 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessBindingKey; 23 | 24 | public class ProcessBindingKeyValidator implements KeyValidator { 25 | @Override 26 | public void validateKey(ProcessBinding entity) throws ValidationException { 27 | ProcessBindingKey key = entity.getKey(); 28 | validate(key.getDomainName()); 29 | validate(key.getInfrastructureZone()); 30 | validate(key.getProcessName()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/ProcessKeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 21 | import com.expediagroup.streamplatform.streamregistry.model.Process; 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessKey; 23 | 24 | public class ProcessKeyValidator implements KeyValidator { 25 | 26 | @Override 27 | public void validateKey(Process entity) throws ValidationException { 28 | ProcessKey key = entity.getKey(); 29 | validate(key.getDomain()); 30 | validate(key.getName()); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/SchemaKeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 21 | import com.expediagroup.streamplatform.streamregistry.model.Schema; 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey; 23 | 24 | public class SchemaKeyValidator implements KeyValidator { 25 | @Override 26 | public void validateKey(Schema entity) throws ValidationException { 27 | SchemaKey key = entity.getKey(); 28 | validate(key.getDomain()); 29 | validate(key.getName()); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/validators/key/ZoneKeyValidator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.validators.key; 17 | 18 | import static com.expediagroup.streamplatform.streamregistry.core.validators.SnakeCaseValidator.validate; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.core.validators.ValidationException; 21 | import com.expediagroup.streamplatform.streamregistry.model.Zone; 22 | 23 | public class ZoneKeyValidator implements KeyValidator { 24 | @Override 25 | public void validateKey(Zone entity) throws ValidationException { 26 | validate(entity.getKey().getName()); 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/views/DomainView.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.views; 17 | 18 | import java.util.Optional; 19 | 20 | import lombok.RequiredArgsConstructor; 21 | 22 | import org.springframework.stereotype.Component; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 25 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey; 26 | import com.expediagroup.streamplatform.streamregistry.repository.DomainRepository; 27 | 28 | @Component 29 | @RequiredArgsConstructor 30 | public class DomainView { 31 | private final DomainRepository domainRepository; 32 | 33 | public Optional get(DomainKey key) { 34 | return domainRepository.findById(key); 35 | } 36 | 37 | public boolean exists(DomainKey key) { 38 | return get(key).isPresent(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /core/src/main/java/com/expediagroup/streamplatform/streamregistry/core/views/ZoneView.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.core.views; 17 | 18 | import java.util.Optional; 19 | 20 | import lombok.RequiredArgsConstructor; 21 | 22 | import org.springframework.stereotype.Component; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.model.Zone; 25 | import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey; 26 | import com.expediagroup.streamplatform.streamregistry.repository.ZoneRepository; 27 | 28 | @Component 29 | @RequiredArgsConstructor 30 | public class ZoneView { 31 | private final ZoneRepository zoneRepository; 32 | 33 | public Optional get(ZoneKey key) { 34 | return zoneRepository.findById(key); 35 | } 36 | 37 | public boolean exists(ZoneKey key) { 38 | return get(key).isPresent(); 39 | } 40 | } 41 | -------------------------------------------------------------------------------- /docs/.gitignore: -------------------------------------------------------------------------------- 1 | site/ 2 | -------------------------------------------------------------------------------- /docs/README.md: -------------------------------------------------------------------------------- 1 | # Long Documentation 2 | 3 | 4 | # Mkdocs 5 | 6 | ## Initial Setup 7 | * Setup a Python Virtual Environment 8 | * ``` pip install mkdocs pymdown-extensions pygments mkdocs-material``` 9 | 10 | ## Developer Setup 11 | * Perform initial setup 12 | * Modify a file 13 | * Run mkdocs serve in the level with the .yml file, view on 127.0.0.1:8000 14 | -------------------------------------------------------------------------------- /docs/docs/architecture/MTSchemaRegistry.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/MTSchemaRegistry.png -------------------------------------------------------------------------------- /docs/docs/architecture/SR-usecases.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/SR-usecases.png -------------------------------------------------------------------------------- /docs/docs/architecture/StreamRegistryArchitecture.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamRegistryArchitecture.png -------------------------------------------------------------------------------- /docs/docs/architecture/StreamRegistryGeneralArch.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamRegistryGeneralArch.png -------------------------------------------------------------------------------- /docs/docs/architecture/StreamSink.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamSink.png -------------------------------------------------------------------------------- /docs/docs/architecture/StreamSource.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/StreamSource.png -------------------------------------------------------------------------------- /docs/docs/architecture/stream-relocation.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/ExpediaGroup/stream-registry/d541c358eaf866b7b92fcddfe5d48fadedcc289e/docs/docs/architecture/stream-relocation.gif -------------------------------------------------------------------------------- /docs/docs/css/custom_tasklist.css: -------------------------------------------------------------------------------- 1 | .markdown-body .task-list-item { 2 | list-style-type: none !important; 3 | } 4 | 5 | .markdown-body .task-list-item input[type="checkbox"] { 6 | margin: 0 4px 0.25em -20px; 7 | vertical-align: middle; 8 | } 9 | 10 | .markdown-body .task-list-control { 11 | display: inline; /* Ensure label is inline incase theme sets it to block.*/ 12 | } 13 | 14 | .markdown-body .task-list-control { 15 | position: relative; 16 | display: inline-block; 17 | color: #555; 18 | cursor: pointer; 19 | } 20 | 21 | .markdown-body .task-list-control input[type="checkbox"] { 22 | position: absolute; 23 | opacity: 0; 24 | z-index: -1; /* Put the input behind the label so it doesn't overlay text */ 25 | } 26 | 27 | .markdown-body .task-list-indicator { 28 | position: absolute; 29 | top: -8px; 30 | left: -18px; 31 | display: block; 32 | width: 14px; 33 | height: 14px; 34 | color: #eee; 35 | background-color: #eee; 36 | border-radius: .25rem; 37 | } 38 | 39 | .markdown-body .task-list-control input[type="checkbox"]:checked + .task-list-indicator::before { 40 | display: block; 41 | margin-top: -4px; 42 | margin-left: 2px; 43 | font-size: 16px; 44 | line-height: 1; 45 | content: "✔"; 46 | color: #1EBB52; 47 | } 48 | -------------------------------------------------------------------------------- /docs/docs/css/details.css: -------------------------------------------------------------------------------- 1 | details { 2 | display: block; 3 | } 4 | 5 | details[open] > summary::before { 6 | content: "\25BC"; 7 | } 8 | 9 | details summary { 10 | display: block; 11 | cursor: pointer; 12 | } 13 | 14 | details summary:focus { 15 | outline: none; 16 | } 17 | 18 | details summary::before { 19 | content: "\25B6"; 20 | padding-right: 0.5em; 21 | } 22 | 23 | details summary::-webkit-details-marker { 24 | display: none; 25 | } 26 | 27 | /* Attach the "no-details" class to details tags 28 | in browsers that do not support them to get 29 | open/show functionality. */ 30 | details.no-details:not([open]) > * { 31 | display: none; 32 | } 33 | 34 | details.no-details:not([open]) summary { 35 | display: block; 36 | } 37 | -------------------------------------------------------------------------------- /docs/docs/css/progress_bar.css: -------------------------------------------------------------------------------- 1 | .progress-label { 2 | position: absolute; 3 | text-align: center; 4 | font-weight: 700; 5 | width: 100%; 6 | margin: 0; 7 | line-height: 1.2rem; 8 | white-space: nowrap; 9 | overflow: hidden; 10 | } 11 | 12 | .progress-bar { 13 | height: 1.2rem; 14 | float: left; 15 | background-color: #2979ff; 16 | } 17 | 18 | .progress { 19 | display: block; 20 | width: 100%; 21 | margin: 0.5rem 0; 22 | height: 1.2rem; 23 | background-color: #eeeeee; 24 | position: relative; 25 | } 26 | 27 | .progress.thin { 28 | margin-top: 0.9rem; 29 | height: 0.4rem; 30 | } 31 | 32 | .progress.thin .progress-label { 33 | margin-top: -0.4rem; 34 | } 35 | 36 | .progress.thin .progress-bar { 37 | height: 0.4rem; 38 | } 39 | 40 | .progress-100plus .progress-bar { 41 | background-color: #00e676; 42 | } 43 | 44 | .progress-80plus .progress-bar { 45 | background-color: #fbc02d; 46 | } 47 | 48 | .progress-60plus .progress-bar { 49 | background-color: #ff9100; 50 | } 51 | 52 | .progress-40plus .progress-bar { 53 | background-color: #ff5252; 54 | } 55 | 56 | .progress-20plus .progress-bar { 57 | background-color: #ff1744; 58 | } 59 | 60 | .progress-0plus .progress-bar { 61 | background-color: #f50057; 62 | } 63 | -------------------------------------------------------------------------------- /docs/docs/css/tasklist.css: -------------------------------------------------------------------------------- 1 | .markdown-body .task-list-item { 2 | list-style-type: none !important; 3 | } 4 | 5 | .markdown-body .task-list-item input[type="checkbox"] { 6 | margin: 0 4px 0.25em -20px; 7 | vertical-align: middle; 8 | } 9 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/GraphQLApiType.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql; 17 | 18 | public interface GraphQLApiType {} 19 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/GraphQLConfiguration.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql; 17 | 18 | import org.springframework.context.annotation.Bean; 19 | import org.springframework.context.annotation.Configuration; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.graphql.type.Scalars; 22 | import graphql.schema.GraphQLScalarType; 23 | 24 | @Configuration 25 | public class GraphQLConfiguration { 26 | @Bean 27 | public GraphQLScalarType objectNodeScalar() { 28 | return Scalars.objectNodeScalar(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ConsumerBindingKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerBindingKey; 22 | 23 | @Value 24 | @Builder 25 | public class ConsumerBindingKeyInput { 26 | String streamDomain; 27 | String streamName; 28 | Integer streamVersion; 29 | String infrastructureZone; 30 | String infrastructureName; 31 | String consumerName; 32 | 33 | public ConsumerBindingKey asConsumerBindingKey() { 34 | return new ConsumerBindingKey( 35 | streamDomain, 36 | streamName, 37 | streamVersion, 38 | infrastructureZone, 39 | infrastructureName, 40 | consumerName 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ConsumerKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerKey; 22 | 23 | @Value 24 | @Builder 25 | public class ConsumerKeyInput { 26 | String streamDomain; 27 | String streamName; 28 | Integer streamVersion; 29 | String zone; 30 | String name; 31 | 32 | public ConsumerKey asConsumerKey() { 33 | return new ConsumerKey( 34 | streamDomain, 35 | streamName, 36 | streamVersion, 37 | zone, 38 | name 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/DomainKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey; 22 | 23 | @Value 24 | @Builder 25 | public class DomainKeyInput { 26 | String name; 27 | 28 | public DomainKey asDomainKey() { 29 | return new DomainKey(name); 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/InfrastructureKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.InfrastructureKey; 22 | 23 | @Value 24 | @Builder 25 | public class InfrastructureKeyInput { 26 | String zone; 27 | String name; 28 | 29 | public InfrastructureKey asInfrastructureKey() { 30 | return new InfrastructureKey( 31 | zone, 32 | name 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/PrincipalInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class PrincipalInput { 24 | String name; 25 | } 26 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessBindingKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessBindingKey; 22 | 23 | @Value 24 | @Builder 25 | public class ProcessBindingKeyInput { 26 | String domainName; 27 | String infrastructureZone; 28 | String processName; 29 | 30 | public ProcessBindingKey asProcessBindingKey() { 31 | return new ProcessBindingKey(domainName, infrastructureZone, processName); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessInputStreamBindingInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessInputStreamBinding; 24 | 25 | @Value 26 | @Builder 27 | public class ProcessInputStreamBindingInput { 28 | StreamBindingKeyInput streamBindingKey; 29 | ObjectNode configuration; 30 | 31 | public ProcessInputStreamBinding asProcessInputStreamBinding() { 32 | return new ProcessInputStreamBinding(streamBindingKey.asStreamBindingKey(), configuration); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessInputStreamInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessInputStream; 24 | 25 | @Value 26 | @Builder 27 | public class ProcessInputStreamInput { 28 | StreamKeyInput stream; 29 | ObjectNode configuration; 30 | 31 | public ProcessInputStream asProcessInputStream() { 32 | return new ProcessInputStream(stream.asStreamKey(), configuration); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessKey; 22 | 23 | @Value 24 | @Builder 25 | public class ProcessKeyInput { 26 | String domain; 27 | String name; 28 | 29 | public ProcessKey asProcessKey() { 30 | return new ProcessKey(domain, name); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessOutputStreamBindingInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessOutputStreamBinding; 24 | 25 | @Value 26 | @Builder 27 | public class ProcessOutputStreamBindingInput { 28 | StreamBindingKeyInput streamBindingKey; 29 | ObjectNode configuration; 30 | 31 | public ProcessOutputStreamBinding asProcessOutputStreamBinding() { 32 | return new ProcessOutputStreamBinding(streamBindingKey.asStreamBindingKey(), configuration); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProcessOutputStreamInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.ProcessOutputStream; 24 | 25 | @Value 26 | @Builder 27 | public class ProcessOutputStreamInput { 28 | StreamKeyInput stream; 29 | ObjectNode configuration; 30 | 31 | public ProcessOutputStream asProcessOutputStream() { 32 | return new ProcessOutputStream(stream.asStreamKey(), configuration); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProducerBindingKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerBindingKey; 22 | 23 | @Value 24 | @Builder 25 | public class ProducerBindingKeyInput { 26 | String streamDomain; 27 | String streamName; 28 | Integer streamVersion; 29 | String infrastructureZone; 30 | String infrastructureName; 31 | String producerName; 32 | 33 | public ProducerBindingKey asProducerBindingKey() { 34 | return new ProducerBindingKey( 35 | streamDomain, 36 | streamName, 37 | streamVersion, 38 | infrastructureZone, 39 | infrastructureName, 40 | producerName 41 | ); 42 | } 43 | } 44 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ProducerKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerKey; 22 | 23 | @Value 24 | @Builder 25 | public class ProducerKeyInput { 26 | String streamDomain; 27 | String streamName; 28 | Integer streamVersion; 29 | String zone; 30 | String name; 31 | 32 | public ProducerKey asProducerKey() { 33 | return new ProducerKey( 34 | streamDomain, 35 | streamName, 36 | streamVersion, 37 | zone, 38 | name 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/SchemaKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey; 22 | 23 | @Value 24 | @Builder 25 | public class SchemaKeyInput { 26 | String domain; 27 | String name; 28 | 29 | public SchemaKey asSchemaKey() { 30 | return new SchemaKey( 31 | domain, 32 | name 33 | ); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/SecurityInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import java.util.List; 19 | 20 | import lombok.Builder; 21 | import lombok.Value; 22 | 23 | @Value 24 | @Builder 25 | public class SecurityInput { 26 | String role; 27 | List principals; 28 | } 29 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/StatusInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.Status; 24 | 25 | @Value 26 | @Builder 27 | public class StatusInput { 28 | ObjectNode agentStatus; 29 | 30 | public Status asStatus() { 31 | return new Status(agentStatus); 32 | } 33 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/StreamBindingKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamBindingKey; 22 | 23 | @Value 24 | @Builder 25 | public class StreamBindingKeyInput { 26 | String streamDomain; 27 | String streamName; 28 | Integer streamVersion; 29 | String infrastructureZone; 30 | String infrastructureName; 31 | 32 | public StreamBindingKey asStreamBindingKey() { 33 | return new StreamBindingKey( 34 | streamDomain, 35 | streamName, 36 | streamVersion, 37 | infrastructureZone, 38 | infrastructureName 39 | ); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/StreamKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamKey; 22 | 23 | @Value 24 | @Builder 25 | public class StreamKeyInput { 26 | String domain; 27 | String name; 28 | Integer version; 29 | 30 | public StreamKey asStreamKey() { 31 | return new StreamKey( 32 | domain, 33 | name, 34 | version 35 | ); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/TagInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.Tag; 22 | 23 | @Value 24 | @Builder 25 | public class TagInput { 26 | String name; 27 | String value; 28 | 29 | public Tag asTag() { 30 | return new Tag(name, value); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/inputs/ZoneKeyInput.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.inputs; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey; 22 | 23 | @Value 24 | @Builder 25 | public class ZoneKeyInput { 26 | String name; 27 | 28 | public ZoneKey asZoneKey() { 29 | return new ZoneKey( 30 | name 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ConsumerBindingKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ConsumerBindingKeyQuery { 24 | String streamDomainRegex; 25 | String streamNameRegex; 26 | Integer streamVersion; 27 | String infrastructureZoneRegex; 28 | String infrastructureNameRegex; 29 | String consumerNameRegex; 30 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ConsumerKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ConsumerKeyQuery { 24 | String streamDomainRegex; 25 | String streamNameRegex; 26 | Integer streamVersion; 27 | String zoneRegex; 28 | String nameRegex; 29 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/DomainKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class DomainKeyQuery { 24 | String nameRegex; 25 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/InfrastructureKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class InfrastructureKeyQuery { 24 | String zoneRegex; 25 | String nameRegex; 26 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProcessBindingKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ProcessBindingKeyQuery { 24 | String domainNameRegex; 25 | String infrastructureZoneRegex; 26 | String processNameRegex; 27 | } 28 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProcessKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ProcessKeyQuery { 24 | String domainRegex; 25 | String nameRegex; 26 | } 27 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProducerBindingKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ProducerBindingKeyQuery { 24 | String streamDomainRegex; 25 | String streamNameRegex; 26 | Integer streamVersion; 27 | String infrastructureZoneRegex; 28 | String infrastructureNameRegex; 29 | String producerNameRegex; 30 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ProducerKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ProducerKeyQuery { 24 | String streamDomainRegex; 25 | String streamNameRegex; 26 | Integer streamVersion; 27 | String zoneRegex; 28 | String nameRegex; 29 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/SchemaKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class SchemaKeyQuery { 24 | String domainRegex; 25 | String nameRegex; 26 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/SecurityQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class SecurityQuery { 24 | String roleRegex; 25 | String principalRegex; 26 | } 27 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/SpecificationQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import java.util.List; 19 | 20 | import lombok.Builder; 21 | import lombok.Value; 22 | 23 | @Value 24 | @Builder 25 | public class SpecificationQuery { 26 | String descriptionRegex; 27 | List tags; 28 | String typeRegex; 29 | List security; 30 | String functionRegex; 31 | } 32 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/StreamBindingKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class StreamBindingKeyQuery { 24 | String streamDomainRegex; 25 | String streamNameRegex; 26 | Integer streamVersion; 27 | String infrastructureZoneRegex; 28 | String infrastructureNameRegex; 29 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/StreamKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class StreamKeyQuery { 24 | String domainRegex; 25 | String nameRegex; 26 | Integer version; 27 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/TagQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class TagQuery { 24 | String nameRegex; 25 | String valueRegex; 26 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/model/queries/ZoneKeyQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.model.queries; 17 | 18 | import lombok.Builder; 19 | import lombok.Value; 20 | 21 | @Value 22 | @Builder 23 | public class ZoneKeyQuery { 24 | String nameRegex; 25 | } -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ConsumerBindingQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ConsumerBindingKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ConsumerBindingKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.ConsumerBinding; 25 | 26 | public interface ConsumerBindingQuery extends GraphQLApiType { 27 | Optional byKey(ConsumerBindingKeyInput key); 28 | 29 | Iterable byQuery(ConsumerBindingKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ConsumerQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ConsumerKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ConsumerKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.Consumer; 25 | 26 | public interface ConsumerQuery extends GraphQLApiType { 27 | Optional byKey(ConsumerKeyInput key); 28 | 29 | Iterable byQuery(ConsumerKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/DomainQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.DomainKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.DomainKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 25 | 26 | public interface DomainQuery extends GraphQLApiType { 27 | Optional byKey(DomainKeyInput key); 28 | 29 | Iterable byQuery(DomainKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/InfrastructureQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.InfrastructureKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.InfrastructureKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure; 25 | 26 | public interface InfrastructureQuery extends GraphQLApiType { 27 | Optional byKey(InfrastructureKeyInput key); 28 | 29 | Iterable byQuery(InfrastructureKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ProducerBindingQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ProducerBindingKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ProducerBindingKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.ProducerBinding; 25 | 26 | public interface ProducerBindingQuery extends GraphQLApiType { 27 | Optional byKey(ProducerBindingKeyInput key); 28 | 29 | Iterable byQuery(ProducerBindingKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ProducerQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ProducerKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ProducerKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.Producer; 25 | 26 | public interface ProducerQuery extends GraphQLApiType { 27 | Optional byKey(ProducerKeyInput key); 28 | 29 | Iterable byQuery(ProducerKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/SchemaQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.SchemaKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SchemaKeyQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.Schema; 25 | 26 | public interface SchemaQuery extends GraphQLApiType { 27 | Optional byKey(SchemaKeyInput key); 28 | 29 | Iterable byQuery(SchemaKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/StreamBindingQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.StreamBindingKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.StreamBindingKeyQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.StreamBinding; 25 | 26 | public interface StreamBindingQuery extends GraphQLApiType { 27 | Optional byKey(StreamBindingKeyInput key); 28 | 29 | Iterable byQuery(StreamBindingKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/query/ZoneQuery.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.query; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.graphql.GraphQLApiType; 21 | import com.expediagroup.streamplatform.streamregistry.graphql.model.inputs.ZoneKeyInput; 22 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.SpecificationQuery; 23 | import com.expediagroup.streamplatform.streamregistry.graphql.model.queries.ZoneKeyQuery; 24 | import com.expediagroup.streamplatform.streamregistry.model.Zone; 25 | 26 | public interface ZoneQuery extends GraphQLApiType { 27 | Optional byKey(ZoneKeyInput key); 28 | 29 | Iterable byQuery(ZoneKeyQuery key, SpecificationQuery specification); 30 | } 31 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/DomainResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers; 17 | 18 | import java.util.List; 19 | 20 | import lombok.RequiredArgsConstructor; 21 | 22 | import org.springframework.stereotype.Component; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.core.services.SchemaService; 25 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 26 | import com.expediagroup.streamplatform.streamregistry.model.Schema; 27 | 28 | @Component 29 | @RequiredArgsConstructor 30 | public class DomainResolver implements Resolvers.DomainResolver { 31 | private final SchemaService schemaService; 32 | 33 | public List schemas(Domain domain) { 34 | throw new UnsupportedOperationException("schemaService.find(domain.getKey())"); 35 | //return schemaService.find(domain.getKey()); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/InfrastructureResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers; 17 | 18 | import lombok.RequiredArgsConstructor; 19 | 20 | import org.springframework.stereotype.Component; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.core.services.ZoneService; 23 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure; 24 | import com.expediagroup.streamplatform.streamregistry.model.Zone; 25 | 26 | @Component 27 | @RequiredArgsConstructor 28 | public class InfrastructureResolver implements Resolvers.InfrastructureResolver { 29 | private final ZoneService zoneService; 30 | 31 | public Zone zone(Infrastructure infrastructure) { 32 | return zoneService.get(infrastructure.getKey().getZoneKey()).orElse(null); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/ProcessResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers; 17 | 18 | import lombok.RequiredArgsConstructor; 19 | 20 | import org.springframework.stereotype.Component; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.core.services.DomainService; 23 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 24 | import com.expediagroup.streamplatform.streamregistry.model.Process; 25 | 26 | @Component 27 | @RequiredArgsConstructor 28 | public class ProcessResolver implements Resolvers.ProcessResolver { 29 | private final DomainService domainService; 30 | 31 | public Domain domain(Process process) { 32 | return domainService.get(process.getKey().getDomainKey()).orElse(null); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/SchemaResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers; 17 | 18 | import lombok.RequiredArgsConstructor; 19 | 20 | import org.springframework.stereotype.Component; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.core.services.DomainService; 23 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 24 | import com.expediagroup.streamplatform.streamregistry.model.Schema; 25 | 26 | @Component 27 | @RequiredArgsConstructor 28 | public class SchemaResolver implements Resolvers.SchemaResolver { 29 | private final DomainService domainService; 30 | 31 | public Domain domain(Schema schema) { 32 | return domainService.get(schema.getKey().getDomainKey()).orElse(null); 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/StatusResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers; 17 | 18 | import com.fasterxml.jackson.databind.node.ObjectNode; 19 | 20 | import org.springframework.stereotype.Component; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.Status; 23 | 24 | @Component 25 | public class StatusResolver implements Resolvers.StatusResolver { 26 | public ObjectNode getAgentStatus(Status status) { 27 | return status.getObjectNode(); 28 | } 29 | } 30 | -------------------------------------------------------------------------------- /graphql/api/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/resolvers/ZoneResolver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.resolvers; 17 | 18 | import lombok.RequiredArgsConstructor; 19 | 20 | import org.springframework.stereotype.Component; 21 | 22 | @Component 23 | @RequiredArgsConstructor 24 | public class ZoneResolver implements Resolvers.ZoneResolver {} 25 | -------------------------------------------------------------------------------- /graphql/api/src/main/resources/application-graphql.yaml: -------------------------------------------------------------------------------- 1 | --- 2 | graphql: 3 | tools: 4 | schema-location-pattern: "**/*.graphql" 5 | servlet: 6 | exception-handlers-enabled: true 7 | actuator-metrics: true 8 | -------------------------------------------------------------------------------- /graphql/maven-plugin/src/main/resources/introspection.query: -------------------------------------------------------------------------------- 1 | query IntrospectionQuery { 2 | __schema { 3 | queryType { name } 4 | mutationType { name } 5 | types { 6 | ...FullType 7 | } 8 | directives { 9 | name 10 | description 11 | args { 12 | ...InputValue 13 | } 14 | } 15 | } 16 | } 17 | 18 | fragment FullType on __Type { 19 | kind 20 | name 21 | description 22 | fields { 23 | name 24 | description 25 | args { 26 | ...InputValue 27 | } 28 | type { 29 | ...TypeRef 30 | } 31 | isDeprecated 32 | deprecationReason 33 | } 34 | inputFields { 35 | ...InputValue 36 | } 37 | interfaces { 38 | ...TypeRef 39 | } 40 | enumValues { 41 | name 42 | description 43 | isDeprecated 44 | deprecationReason 45 | } 46 | possibleTypes { 47 | ...TypeRef 48 | } 49 | } 50 | 51 | fragment InputValue on __InputValue { 52 | name 53 | description 54 | type { ...TypeRef } 55 | defaultValue 56 | } 57 | 58 | fragment TypeRef on __Type { 59 | kind 60 | name 61 | ofType { 62 | kind 63 | name 64 | ofType { 65 | kind 66 | name 67 | ofType { 68 | kind 69 | name 70 | } 71 | } 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /graphql/maven-plugin/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /graphql/maven-plugin/src/test/resources/test.graphql.txt: -------------------------------------------------------------------------------- 1 | type Query { 2 | foo: String! 3 | } 4 | -------------------------------------------------------------------------------- /graphql/scalars/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/type/BaseCoercing.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.type; 17 | 18 | import static java.util.Collections.emptyMap; 19 | 20 | import graphql.schema.Coercing; 21 | import graphql.schema.CoercingParseLiteralException; 22 | 23 | abstract class BaseCoercing implements Coercing { 24 | @Override 25 | public Object serialize(Object input) { 26 | return input; 27 | } 28 | 29 | @Override 30 | public Object parseLiteral(Object input) throws CoercingParseLiteralException { 31 | return parseLiteral(input, emptyMap()); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /graphql/scalars/src/main/java/com/expediagroup/streamplatform/streamregistry/graphql/type/Scalars.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.graphql.type; 17 | 18 | import graphql.schema.Coercing; 19 | import graphql.schema.GraphQLScalarType; 20 | 21 | public final class Scalars { 22 | private Scalars() {} 23 | 24 | public static GraphQLScalarType objectNodeScalar() { 25 | return scalar("ObjectNode", new ObjectNodeCoercing()); 26 | } 27 | 28 | private static GraphQLScalarType scalar(String name, Coercing coercing) { 29 | return GraphQLScalarType 30 | .newScalar() 31 | .name(name) 32 | .description(name + " Scalar") 33 | .coercing(coercing) 34 | .build(); 35 | } 36 | } 37 | -------------------------------------------------------------------------------- /handler-spi/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | com.expediagroup.streamplatform 7 | stream-registry 8 | 3.0.3-SNAPSHOT 9 | 10 | 11 | stream-registry-handler-spi 12 | 13 | 14 | 15 | com.expediagroup.streamplatform 16 | stream-registry-model 17 | ${project.version} 18 | 19 | 20 | 21 | 22 | -------------------------------------------------------------------------------- /handler-spi/src/main/java/com/expediagroup/streamplatform/streamregistry/handler/Handler.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.handler; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Entity; 19 | import com.expediagroup.streamplatform.streamregistry.model.Specification; 20 | 21 | public interface Handler { 22 | String type(); 23 | 24 | Class target(); 25 | 26 | Specification handleInsert(T entity); 27 | 28 | Specification handleUpdate(T entity, T existing); 29 | 30 | default void handleDelete(T entity) {} 31 | } 32 | -------------------------------------------------------------------------------- /it/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /lombok.config: -------------------------------------------------------------------------------- 1 | # refer to release notes for v1.16.20 (January 9th, 2018), here https://projectlombok.org/changelog 2 | lombok.anyConstructor.addConstructorProperties = true -------------------------------------------------------------------------------- /model/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | com.expediagroup.streamplatform 7 | stream-registry 8 | 3.0.3-SNAPSHOT 9 | 10 | 11 | stream-registry-model 12 | 13 | 14 | 15 | com.fasterxml.jackson.core 16 | jackson-databind 17 | 18 | 19 | org.projectlombok 20 | lombok 21 | provided 22 | 23 | 24 | junit 25 | junit 26 | test 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Consumer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class Consumer implements Entity { 28 | private ConsumerKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public Consumer(ConsumerKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/ConsumerBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerBindingKey; 23 | 24 | @AllArgsConstructor 25 | @NoArgsConstructor 26 | @Data 27 | public class ConsumerBinding implements Entity { 28 | private ConsumerBindingKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public ConsumerBinding(ConsumerBindingKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Domain.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class Domain implements Entity { 28 | private DomainKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public Domain(DomainKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Entity.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | public interface Entity extends Stated, Specified { 19 | K getKey(); 20 | } 21 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Infrastructure.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.InfrastructureKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class Infrastructure implements Entity { 28 | private InfrastructureKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public Infrastructure(InfrastructureKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Principal.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.Value; 19 | 20 | @Value 21 | public class Principal { 22 | String name; 23 | } 24 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/ProcessInputStream.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.Value; 19 | 20 | import com.fasterxml.jackson.databind.node.ObjectNode; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamKey; 23 | 24 | @Value 25 | public class ProcessInputStream { 26 | StreamKey stream; 27 | ObjectNode configuration; 28 | } 29 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/ProcessInputStreamBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.Value; 19 | 20 | import com.fasterxml.jackson.databind.node.ObjectNode; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamBindingKey; 23 | 24 | @Value 25 | public class ProcessInputStreamBinding { 26 | StreamBindingKey streamBindingKey; 27 | ObjectNode configuration; 28 | } 29 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/ProcessOutputStream.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.Value; 19 | 20 | import com.fasterxml.jackson.databind.node.ObjectNode; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamKey; 23 | 24 | @Value 25 | public class ProcessOutputStream { 26 | StreamKey stream; 27 | ObjectNode configuration; 28 | } 29 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/ProcessOutputStreamBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.Value; 19 | 20 | import com.fasterxml.jackson.databind.node.ObjectNode; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamBindingKey; 23 | 24 | @Value 25 | public class ProcessOutputStreamBinding { 26 | StreamBindingKey streamBindingKey; 27 | ObjectNode configuration; 28 | } 29 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Producer.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class Producer implements Entity { 28 | private ProducerKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public Producer(ProducerKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/ProducerBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerBindingKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class ProducerBinding implements Entity { 28 | private ProducerBindingKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public ProducerBinding(ProducerBindingKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Schema.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class Schema implements Entity { 28 | private SchemaKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public Schema(SchemaKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Security.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import java.util.List; 19 | 20 | import lombok.Value; 21 | 22 | @Value 23 | public class Security { 24 | String role; 25 | List principals; 26 | } 27 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Specified.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2019 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | public interface Specified { 19 | 20 | Specification getSpecification(); 21 | } 22 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Stated.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2019 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | public interface Stated { 19 | 20 | Status getStatus(); 21 | 22 | @Deprecated 23 | // we should be using immutable 'Stated' objects. 24 | void setStatus(Status status); 25 | } 26 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Status.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.EqualsAndHashCode; 19 | import lombok.NoArgsConstructor; 20 | 21 | import com.fasterxml.jackson.databind.ObjectMapper; 22 | import com.fasterxml.jackson.databind.node.ObjectNode; 23 | 24 | @NoArgsConstructor 25 | @EqualsAndHashCode 26 | public class Status { 27 | 28 | private ObjectNode objectNode; 29 | 30 | public Status(ObjectNode objectNode) { 31 | this.objectNode = objectNode; 32 | } 33 | 34 | public ObjectNode getObjectNode() { 35 | return objectNode == null ? new ObjectMapper().createObjectNode() : objectNode; 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Stream.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.Data; 21 | import lombok.NoArgsConstructor; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey; 24 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamKey; 25 | 26 | @Data 27 | @AllArgsConstructor 28 | @NoArgsConstructor 29 | public class Stream implements Entity { 30 | private StreamKey key; 31 | private SchemaKey schemaKey; 32 | private Specification specification; 33 | private Status status; 34 | 35 | public Stream(StreamKey key, Specification specification, SchemaKey schemaKey) { 36 | this.key = key; 37 | this.specification = specification; 38 | this.schemaKey = schemaKey; 39 | this.status = new Status(); 40 | } 41 | } 42 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/StreamBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamBindingKey; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class StreamBinding implements Entity { 28 | private StreamBindingKey key; 29 | private Specification specification; 30 | private Status status; 31 | 32 | public StreamBinding(StreamBindingKey key, Specification specification) { 33 | this.key = key; 34 | this.specification = specification; 35 | this.status = new Status(); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Tag.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.Data; 20 | import lombok.NoArgsConstructor; 21 | 22 | @Data 23 | @NoArgsConstructor 24 | @AllArgsConstructor 25 | public class Tag { 26 | private String name; 27 | private String value; 28 | } 29 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/Zone.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model; 17 | 18 | 19 | import lombok.AllArgsConstructor; 20 | import lombok.Data; 21 | import lombok.NoArgsConstructor; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey; 24 | 25 | @Data 26 | @AllArgsConstructor 27 | @NoArgsConstructor 28 | public class Zone implements Entity { 29 | private ZoneKey key; 30 | private Specification specification; 31 | private Status status; 32 | 33 | public Zone(ZoneKey key, Specification specification) { 34 | this.key = key; 35 | this.specification = specification; 36 | this.status = new Status(); 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/ConsumerKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class ConsumerKey implements Serializable { 28 | 29 | private String streamDomain; 30 | 31 | private String streamName; 32 | 33 | private Integer streamVersion; 34 | 35 | private String zone; 36 | 37 | private String name; 38 | 39 | public StreamKey getStreamKey() { 40 | return new StreamKey(streamDomain, streamName, streamVersion); 41 | } 42 | 43 | public ZoneKey getZoneKey() { 44 | return new ZoneKey(zone); 45 | } 46 | } 47 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/DomainKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class DomainKey implements Serializable { 28 | 29 | private String name; 30 | } -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/InfrastructureKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class InfrastructureKey implements Serializable { 28 | 29 | private String zone; 30 | private String name; 31 | 32 | public ZoneKey getZoneKey() { 33 | return new ZoneKey(zone); 34 | } 35 | } -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/ProcessBindingKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class ProcessBindingKey implements Serializable { 28 | 29 | private String domainName; 30 | private String infrastructureZone; 31 | private String processName; 32 | 33 | public DomainKey getDomainKey() { 34 | return new DomainKey(domainName); 35 | } 36 | 37 | public ZoneKey getZoneKey() { 38 | return new ZoneKey(infrastructureZone); 39 | } 40 | 41 | public ProcessKey getProcessKey() { 42 | return new ProcessKey(domainName, processName); 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/ProcessKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class ProcessKey implements Serializable { 28 | 29 | private String domain; 30 | private String name; 31 | 32 | public DomainKey getDomainKey() { 33 | return new DomainKey(domain); 34 | } 35 | } 36 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/ProducerKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2022 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class ProducerKey implements Serializable { 28 | 29 | private String streamDomain; 30 | private String streamName; 31 | private Integer streamVersion; 32 | private String zone; 33 | private String name; 34 | 35 | public StreamKey getStreamKey() { 36 | return new StreamKey(streamDomain, streamName, streamVersion); 37 | } 38 | 39 | public ZoneKey getZoneKey() { 40 | return new ZoneKey(zone); 41 | } 42 | } 43 | -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/SchemaKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.EqualsAndHashCode; 23 | import lombok.NoArgsConstructor; 24 | 25 | @Data 26 | @AllArgsConstructor 27 | @NoArgsConstructor 28 | @EqualsAndHashCode 29 | public class SchemaKey implements Serializable { 30 | 31 | private String domain; 32 | private String name; 33 | 34 | public DomainKey getDomainKey() { 35 | return new DomainKey(domain); 36 | } 37 | } -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/StreamBindingKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class StreamBindingKey implements Serializable { 28 | 29 | private String streamDomain; 30 | private String streamName; 31 | private Integer streamVersion; 32 | private String infrastructureZone; 33 | private String infrastructureName; 34 | 35 | public StreamKey getStreamKey() { 36 | return new StreamKey(streamDomain, streamName, streamVersion); 37 | } 38 | 39 | public InfrastructureKey getInfrastructureKey() { 40 | return new InfrastructureKey(infrastructureZone, infrastructureName); 41 | } 42 | } -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/StreamKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class StreamKey implements Serializable { 28 | 29 | private String domain; 30 | private String name; 31 | private Integer version; 32 | 33 | public DomainKey getDomainKey() { 34 | return new DomainKey(domain); 35 | } 36 | } -------------------------------------------------------------------------------- /model/src/main/java/com/expediagroup/streamplatform/streamregistry/model/keys/ZoneKey.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.model.keys; 17 | 18 | import java.io.Serializable; 19 | 20 | import lombok.AllArgsConstructor; 21 | import lombok.Data; 22 | import lombok.NoArgsConstructor; 23 | 24 | @Data 25 | @AllArgsConstructor 26 | @NoArgsConstructor 27 | public class ZoneKey implements Serializable { 28 | 29 | private String name; 30 | } -------------------------------------------------------------------------------- /repository/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | com.expediagroup.streamplatform 7 | stream-registry 8 | 3.0.3-SNAPSHOT 9 | ../.. 10 | 11 | 12 | stream-registry-repository-api 13 | 14 | 15 | 16 | com.expediagroup.streamplatform 17 | stream-registry-model 18 | ${project.version} 19 | 20 | 21 | 22 | 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ConsumerBindingRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.ConsumerBinding; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerBindingKey; 20 | 21 | public interface ConsumerBindingRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ConsumerRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Consumer; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ConsumerKey; 20 | 21 | public interface ConsumerRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/DomainRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Domain; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.DomainKey; 20 | 21 | public interface DomainRepository extends Repository {} 22 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/InfrastructureRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Infrastructure; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.InfrastructureKey; 20 | 21 | public interface InfrastructureRepository extends Repository {} 22 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ProcessBindingRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.ProcessBinding; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessBindingKey; 20 | 21 | public interface ProcessBindingRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ProcessRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Process; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProcessKey; 20 | 21 | public interface ProcessRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ProducerBindingRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.ProducerBinding; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerBindingKey; 20 | 21 | public interface ProducerBindingRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ProducerRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Producer; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ProducerKey; 20 | 21 | public interface ProducerRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/Repository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2024 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | 19 | import java.util.List; 20 | import java.util.Optional; 21 | 22 | public interface Repository { 23 | T saveSpecification(T entity); 24 | 25 | T saveStatus(T entity); 26 | 27 | Optional findById(ID id); 28 | 29 | List findAll(); 30 | 31 | /** 32 | * @deprecated Use {link {@link #findAll()}} and filter the results with predicates. 33 | */ 34 | @Deprecated 35 | List findAll(T example); 36 | 37 | void delete(T entity); 38 | } 39 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/SchemaRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Schema; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.SchemaKey; 20 | 21 | public interface SchemaRepository extends Repository {} 22 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/StreamBindingRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.StreamBinding; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamBindingKey; 20 | 21 | public interface StreamBindingRepository extends Repository { 22 | } 23 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/StreamRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Stream; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.StreamKey; 20 | 21 | public interface StreamRepository extends Repository {} 22 | -------------------------------------------------------------------------------- /repository/api/src/main/java/com/expediagroup/streamplatform/streamregistry/repository/ZoneRepository.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.repository; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.model.Zone; 19 | import com.expediagroup.streamplatform.streamregistry.model.keys.ZoneKey; 20 | 21 | public interface ZoneRepository extends Repository {} 22 | -------------------------------------------------------------------------------- /spring-boot-starter/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | com.expediagroup.streamplatform 7 | stream-registry 8 | 3.0.3-SNAPSHOT 9 | 10 | 11 | stream-registry-spring-boot-starter 12 | 13 | 14 | 15 | com.expediagroup.streamplatform 16 | stream-registry-graphql-api 17 | ${project.version} 18 | 19 | 20 | com.expediagroup.streamplatform 21 | stream-registry-repository-kafka 22 | ${project.version} 23 | 24 | 25 | 26 | org.springframework.boot 27 | spring-boot-starter 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /spring-boot-starter/src/main/resources/META-INF/spring.factories: -------------------------------------------------------------------------------- 1 | # Auto Configure 2 | org.springframework.boot.autoconfigure.EnableAutoConfiguration=com.expediagroup.streamplatform.streamregistry.StreamRegistryAutoConfiguration 3 | -------------------------------------------------------------------------------- /spring-boot-starter/src/main/resources/META-INF/spring/org.springframework.boot.autoconfigure.AutoConfiguration.imports: -------------------------------------------------------------------------------- 1 | com.expediagroup.streamplatform.streamregistry.StreamRegistryAutoConfiguration -------------------------------------------------------------------------------- /state/api/pom.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4.0.0 4 | 5 | 6 | com.expediagroup.streamplatform 7 | stream-registry 8 | 3.0.3-SNAPSHOT 9 | ../.. 10 | 11 | 12 | stream-registry-state-api 13 | 14 | 15 | 16 | com.fasterxml.jackson.core 17 | jackson-databind 18 | 19 | 20 | org.projectlombok 21 | lombok 22 | provided 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/Configurator.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state; 17 | 18 | /** 19 | * Allows clients to be configured, for example to attach metrics to a client. 20 | * @param The client type to be configured. 21 | */ 22 | public interface Configurator { 23 | void configure(T client); 24 | } 25 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/EventReceiver.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state; 17 | 18 | import java.io.Closeable; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.state.model.event.Event; 21 | 22 | /** 23 | * An interface for receiving an ordered stream of {@link Event Events} 24 | */ 25 | public interface EventReceiver extends Closeable { 26 | /** 27 | * Commences receiving events and invokes the provided {@link EventReceiverListener} for each event. When the 28 | * receiver is fully loaded it passes the {@link Event#LOAD_COMPLETE} event then continues passes events 29 | * as they arrive. 30 | * 31 | * @param listener to be invoked for each event received. 32 | */ 33 | void receive(EventReceiverListener listener); 34 | } 35 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/EventReceiverListener.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state; 17 | 18 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 19 | import com.expediagroup.streamplatform.streamregistry.state.model.event.Event; 20 | import com.expediagroup.streamplatform.streamregistry.state.model.specification.Specification; 21 | 22 | /** 23 | * A listener that is invoked for each event received by the {@link EventReceiver}. 24 | */ 25 | public interface EventReceiverListener { 26 | /** 27 | * Method invoked upon receiving an {@link Event} by the {@link EventReceiver}. 28 | * 29 | * @param event the event. 30 | * @param the key type. 31 | * @param the specification type. 32 | */ 33 | , S extends Specification> void onEvent(Event event); 34 | } 35 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/event/SpecificationDeletionEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.event; 17 | 18 | import static lombok.AccessLevel.PACKAGE; 19 | 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.Value; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 25 | import com.expediagroup.streamplatform.streamregistry.state.model.specification.Specification; 26 | 27 | @Value 28 | @RequiredArgsConstructor(access = PACKAGE) 29 | public class SpecificationDeletionEvent, S extends Specification> implements Event { 30 | @NonNull K key; 31 | } 32 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/event/SpecificationEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.event; 17 | 18 | import static lombok.AccessLevel.PACKAGE; 19 | 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.Value; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 25 | import com.expediagroup.streamplatform.streamregistry.state.model.specification.Specification; 26 | 27 | @Value 28 | @RequiredArgsConstructor(access = PACKAGE) 29 | public class SpecificationEvent, S extends Specification> implements Event { 30 | @NonNull K key; 31 | @NonNull S specification; 32 | } 33 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/event/StatusDeletionEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.event; 17 | 18 | import static lombok.AccessLevel.PACKAGE; 19 | 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.Value; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 25 | import com.expediagroup.streamplatform.streamregistry.state.model.specification.Specification; 26 | 27 | @Value 28 | @RequiredArgsConstructor(access = PACKAGE) 29 | public class StatusDeletionEvent, S extends Specification> implements Event { 30 | @NonNull K key; 31 | @NonNull String statusName; 32 | } 33 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/event/StatusEvent.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.event; 17 | 18 | import static lombok.AccessLevel.PACKAGE; 19 | 20 | import lombok.NonNull; 21 | import lombok.RequiredArgsConstructor; 22 | import lombok.Value; 23 | 24 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 25 | import com.expediagroup.streamplatform.streamregistry.state.model.specification.Specification; 26 | import com.expediagroup.streamplatform.streamregistry.state.model.status.StatusEntry; 27 | 28 | @Value 29 | @RequiredArgsConstructor(access = PACKAGE) 30 | public class StatusEvent, S extends Specification> implements Event { 31 | @NonNull K key; 32 | @NonNull StatusEntry statusEntry; 33 | } 34 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/DefaultSpecification.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import java.util.List; 19 | import java.util.Map; 20 | 21 | import lombok.NonNull; 22 | import lombok.Value; 23 | import lombok.With; 24 | 25 | import com.fasterxml.jackson.databind.node.ObjectNode; 26 | 27 | @Value 28 | public class DefaultSpecification implements Specification { 29 | @With 30 | @NonNull String description; 31 | @NonNull List tags; 32 | @NonNull String type; 33 | @NonNull ObjectNode configuration; 34 | @NonNull Map> security; 35 | @NonNull String function; 36 | } 37 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/Principal.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | @Value 22 | public class Principal { 23 | @NonNull String name; 24 | } 25 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/ProcessBindingSpecification.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import java.util.List; 19 | import java.util.Map; 20 | 21 | import lombok.NonNull; 22 | import lombok.Value; 23 | 24 | import com.fasterxml.jackson.databind.node.ObjectNode; 25 | 26 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity.ZoneKey; 27 | 28 | @Value 29 | public class ProcessBindingSpecification implements Specification { 30 | @NonNull ZoneKey zone; 31 | @NonNull String description; 32 | @NonNull List tags; 33 | @NonNull String type; 34 | @NonNull ObjectNode configuration; 35 | @NonNull Map> security; 36 | @NonNull String function; 37 | @NonNull List inputs; 38 | @NonNull List outputs; 39 | } 40 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/ProcessInputStream.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 24 | 25 | @Value 26 | public class ProcessInputStream { 27 | @NonNull Entity.StreamKey stream; 28 | @NonNull ObjectNode configuration; 29 | } 30 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/ProcessInputStreamBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity.StreamBindingKey; 24 | 25 | @Value 26 | public class ProcessInputStreamBinding { 27 | @NonNull StreamBindingKey streamBindingKey; 28 | @NonNull ObjectNode configuration; 29 | } 30 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/ProcessOutputStream.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 24 | 25 | @Value 26 | public class ProcessOutputStream { 27 | @NonNull Entity.StreamKey stream; 28 | @NonNull ObjectNode configuration; 29 | } 30 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/ProcessOutputStreamBinding.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity.StreamBindingKey; 24 | 25 | @Value 26 | public class ProcessOutputStreamBinding { 27 | @NonNull StreamBindingKey streamBindingKey; 28 | @NonNull ObjectNode configuration; 29 | } 30 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/ProcessSpecification.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import java.util.List; 19 | import java.util.Map; 20 | 21 | import lombok.NonNull; 22 | import lombok.Value; 23 | 24 | import com.fasterxml.jackson.databind.node.ObjectNode; 25 | 26 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity.ZoneKey; 27 | 28 | @Value 29 | public class ProcessSpecification implements Specification { 30 | @NonNull List zones; 31 | @NonNull String description; 32 | @NonNull List tags; 33 | @NonNull String type; 34 | @NonNull ObjectNode configuration; 35 | @NonNull Map> security; 36 | @NonNull String function; 37 | @NonNull List inputs; 38 | @NonNull List outputs; 39 | } 40 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/Specification.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import java.util.List; 19 | import java.util.Map; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | public interface Specification { 24 | String getDescription(); 25 | 26 | List getTags(); 27 | 28 | String getType(); 29 | 30 | ObjectNode getConfiguration(); 31 | 32 | Map> getSecurity(); 33 | 34 | String getFunction(); 35 | } 36 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/StreamSpecification.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import java.util.List; 19 | import java.util.Map; 20 | 21 | import lombok.NonNull; 22 | import lombok.Value; 23 | 24 | import com.fasterxml.jackson.databind.node.ObjectNode; 25 | 26 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity.SchemaKey; 27 | 28 | @Value 29 | public class StreamSpecification implements Specification { 30 | @NonNull String description; 31 | @NonNull List tags; 32 | @NonNull String type; 33 | @NonNull ObjectNode configuration; 34 | @NonNull Map> security; 35 | @NonNull String function; 36 | @NonNull SchemaKey schemaKey; 37 | } 38 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/specification/Tag.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.specification; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | @Value 22 | public class Tag { 23 | @NonNull String name; 24 | String value; 25 | } 26 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/status/Status.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.status; 17 | 18 | import java.util.List; 19 | import java.util.Set; 20 | 21 | import lombok.NonNull; 22 | 23 | import com.fasterxml.jackson.databind.node.ObjectNode; 24 | 25 | public interface Status { 26 | Set getNames(); 27 | 28 | ObjectNode getValue(@NonNull String name); 29 | 30 | List getEntries(); 31 | 32 | Status with(@NonNull StatusEntry entry); 33 | 34 | Status without(@NonNull String name); 35 | } 36 | -------------------------------------------------------------------------------- /state/api/src/main/java/com/expediagroup/streamplatform/streamregistry/state/model/status/StatusEntry.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.model.status; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | import com.fasterxml.jackson.databind.node.ObjectNode; 22 | 23 | @Value 24 | public class StatusEntry { 25 | @NonNull String name; 26 | @NonNull ObjectNode value; 27 | } 28 | -------------------------------------------------------------------------------- /state/avro/src/main/java/com/expediagroup/streamplatform/streamregistry/state/avro/AvroObjectModule.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.avro; 17 | 18 | 19 | import java.util.Collections; 20 | 21 | import com.fasterxml.jackson.core.Version; 22 | import com.fasterxml.jackson.databind.module.SimpleModule; 23 | 24 | class AvroObjectModule extends SimpleModule { 25 | AvroObjectModule() { 26 | super( 27 | AvroObject.class.getSimpleName(), 28 | Version.unknownVersion(), 29 | Collections.singletonMap(AvroObject.class, new AvroObjectDeserializer()), 30 | Collections.singletonList(new AvroObjectSerializer()) 31 | ); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /state/avro/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /state/core/src/main/java/com/expediagroup/streamplatform/streamregistry/state/EntityViewUpdater.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state; 17 | 18 | import java.util.Optional; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 21 | import com.expediagroup.streamplatform.streamregistry.state.model.event.Event; 22 | import com.expediagroup.streamplatform.streamregistry.state.model.specification.Specification; 23 | 24 | interface EntityViewUpdater { 25 | 26 | , S extends Specification> Optional> purge(K key); 27 | 28 | , S extends Specification> Entity update(Event event); 29 | } 30 | -------------------------------------------------------------------------------- /state/core/src/main/java/com/expediagroup/streamplatform/streamregistry/state/StateValue.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state; 17 | 18 | import lombok.AllArgsConstructor; 19 | import lombok.EqualsAndHashCode; 20 | import lombok.ToString; 21 | 22 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 23 | 24 | @EqualsAndHashCode 25 | @ToString 26 | @AllArgsConstructor 27 | class StateValue { 28 | public final Entity entity; 29 | public final boolean deleted; 30 | 31 | static StateValue existing(Entity entity) { 32 | return new StateValue(entity, false); 33 | } 34 | static StateValue deleted(Entity entity) { 35 | return new StateValue(entity, true); 36 | } 37 | } 38 | -------------------------------------------------------------------------------- /state/core/src/main/resources/logback.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | -------------------------------------------------------------------------------- /state/core/src/main/resources/stream-registry-state-correlator.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | participant Sender 4 | participant Receiver 5 | 6 | Sender -> Correlator : Register Future 7 | activate Sender 8 | activate Correlator 9 | Correlator -> Correlator : Store CorrelationId\n& Future 10 | deactivate Correlator 11 | Sender -> Sender : Add CorrelationId\nRecord Header 12 | Sender -> Kafka : Send Record 13 | 14 | Receiver <- Kafka : Receive Record 15 | activate Receiver 16 | Receiver -> Receiver : Extract CorrelationId\nRecord Header 17 | Receiver -> Correlator : Mark Received 18 | deactivate Receiver 19 | activate Correlator 20 | Correlator -> Correlator : Complete Future 21 | deactivate Correlator 22 | Sender <<- Correlator : Unblock 23 | deactivate Sender 24 | 25 | @enduml 26 | -------------------------------------------------------------------------------- /state/core/src/main/resources/stream-registry-state.puml: -------------------------------------------------------------------------------- 1 | @startuml 2 | 3 | participant Sender 4 | participant Listener 5 | participant EntityView 6 | participant Receiver 7 | participant Kafka 8 | 9 | Sender -> Kafka : Send\nAgents: via GraphQL\nStream Registry: direct 10 | ... 11 | 12 | Listener -> EntityView : Load 13 | activate Listener 14 | activate EntityView 15 | 16 | EntityView -> Receiver : Receive 17 | activate Receiver 18 | 19 | Receiver -> Kafka : Get Offsets 20 | activate Kafka 21 | Receiver <- Kafka : Return Offsets 22 | 23 | Receiver -> Kafka : Assign 24 | Receiver -> Kafka : Seek to Beginning 25 | 26 | loop until shutdown 27 | Receiver -> Kafka : Poll 28 | Receiver <- Kafka : Return Records 29 | end 30 | ... 31 | loop foreach Record 32 | Receiver -> Receiver : Avro Conversion 33 | EntityView <- Receiver : onEvent 34 | EntityView -> EntityView : Update State 35 | end 36 | ... 37 | Receiver -> Receiver : End Offset Reached 38 | EntityView <- Receiver : onLoaded 39 | Listener <<- EntityView : Ready 40 | ... 41 | loop foreach Record 42 | Receiver -> Receiver : Avro Conversion 43 | EntityView <- Receiver : onEvent 44 | EntityView -> EntityView : Update State 45 | Listener <- EntityView : onEvent 46 | end 47 | 48 | @enduml 49 | -------------------------------------------------------------------------------- /state/core/src/test/java/com/expediagroup/streamplatform/streamregistry/state/DefaultEntityViewUpdaterTest.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state; 17 | 18 | import java.util.Map; 19 | 20 | import com.expediagroup.streamplatform.streamregistry.state.model.Entity; 21 | 22 | public class DefaultEntityViewUpdaterTest extends EntityViewUpdaterTest { 23 | @Override 24 | public EntityViewUpdater entityViewUpdater(Map, StateValue> entities) { 25 | return new DefaultEntityViewUpdater(entities); 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /state/graphql-sender/src/main/java/com/expediagroup/streamplatform/streamregistry/state/graphql/ApolloClientFactory.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.graphql; 17 | 18 | import com.apollographql.apollo.ApolloClient; 19 | 20 | public interface ApolloClientFactory { 21 | ApolloClient create(); 22 | } 23 | -------------------------------------------------------------------------------- /state/graphql-sender/src/main/java/com/expediagroup/streamplatform/streamregistry/state/graphql/ApolloResponseException.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2021 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.graphql; 17 | 18 | import lombok.Getter; 19 | 20 | import com.apollographql.apollo.api.Response; 21 | 22 | @Getter 23 | public class ApolloResponseException extends IllegalStateException { 24 | 25 | private final Response response; 26 | 27 | public ApolloResponseException(String message, Response response) { 28 | super(message); 29 | this.response = response; 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /state/graphql-sender/src/main/java/com/expediagroup/streamplatform/streamregistry/state/graphql/Credentials.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2020 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry.state.graphql; 17 | 18 | import lombok.NonNull; 19 | import lombok.Value; 20 | 21 | @Value 22 | public class Credentials { 23 | @NonNull private final String username; 24 | @NonNull private final String password; 25 | } 26 | -------------------------------------------------------------------------------- /state/graphql-sender/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /state/it/src/main/java/com/expediagroup/streamplatform/streamregistry/TestUtils.java: -------------------------------------------------------------------------------- 1 | /** 2 | * Copyright (C) 2018-2023 Expedia, Inc. 3 | * 4 | * Licensed under the Apache License, Version 2.0 (the "License"); 5 | * you may not use this file except in compliance with the License. 6 | * You may obtain a copy of the License at 7 | * 8 | * http://www.apache.org/licenses/LICENSE-2.0 9 | * 10 | * Unless required by applicable law or agreed to in writing, software 11 | * distributed under the License is distributed on an "AS IS" BASIS, 12 | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 | * See the License for the specific language governing permissions and 14 | * limitations under the License. 15 | */ 16 | package com.expediagroup.streamplatform.streamregistry; 17 | 18 | import org.testcontainers.utility.DockerImageName; 19 | 20 | public class TestUtils { 21 | public static final DockerImageName KAFKA_IMAGE_NAME = DockerImageName.parse("confluentinc/cp-kafka:7.4.0"); 22 | } 23 | -------------------------------------------------------------------------------- /state/it/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /state/kafka-receiver/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /state/kafka-receiver/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | -------------------------------------------------------------------------------- /state/kafka-sender/src/test/resources/logback-test.xml: -------------------------------------------------------------------------------- 1 | 2 | 17 | 18 | 19 | 20 | 21 | %d{HH:mm:ss.SSS} [%thread] %-5level %logger{35} - %msg%n 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /state/kafka-sender/src/test/resources/mockito-extensions/org.mockito.plugins.MockMaker: -------------------------------------------------------------------------------- 1 | mock-maker-inline 2 | --------------------------------------------------------------------------------