def9de175c98cb866af31f91efb6c4be8c1ebe9b
[demos/kafka/chat] / src / main / java / de / juplo / kafka / chat / backend / ChatBackendProperties.java
1 package de.juplo.kafka.chat.backend;
2
3 import lombok.Getter;
4 import lombok.Setter;
5 import org.springframework.boot.context.properties.ConfigurationProperties;
6
7 import java.nio.file.Paths;
8
9
10 @ConfigurationProperties("chat.backend")
11 @Getter
12 @Setter
13 public class ChatBackendProperties
14 {
15   private String allowedOrigins = "http://localhost:4200";
16   private int chatroomBufferSize = 8;
17   private ServiceType services = ServiceType.inmemory;
18   private InMemoryServicesProperties inmemory = new InMemoryServicesProperties();
19
20
21   @Getter
22   @Setter
23   public static class InMemoryServicesProperties
24   {
25     private ShardingStrategyType shardingStrategy = ShardingStrategyType.none;
26     private int numShards = 1;
27     private int[] ownedShards = new int[] { 0 };
28     private StorageStrategyType storageStrategy = StorageStrategyType.none;
29     private String storageDirectory = Paths.get(System.getProperty("java.io.tmpdir"),"chat", "backend").toString();
30   }
31
32   public enum ServiceType { inmemory }
33   public enum StorageStrategyType { none, files, mongodb }
34   public enum ShardingStrategyType { none, kafkalike }
35 }