forked from disneystreaming/pg2k4j
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathReplicationConfiguration.java
82 lines (62 loc) · 2.71 KB
/
ReplicationConfiguration.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
/*******************************************************************************
Copyright 2018 Disney Streaming Services
Licensed under the Apache License, Version 2.0 (the "Apache License")
with the following modification; you may not use this file except in
compliance with the Apache License and the following modification to it:
Section 6. Trademarks. is deleted and replaced with:
6. Trademarks. This License does not grant permission to use the trade
names, trademarks, service marks, or product names of the Licensor
and its affiliates, except as required to comply with Section 4(c) of
the License and to reproduce the content of the NOTICE file.
You may obtain a copy of the Apache License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the Apache License with the above modification is
distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied. See the Apache License for the specific
language governing permissions and limitations under the Apache License.
******************************************************************************/
package com.disneystreaming.pg2k4j;
import java.util.Properties;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public interface ReplicationConfiguration {
int DEFAULT_STATUS_INTERVAL_VALUE = 20;
TimeUnit DEFAULT_STATUS_INTERVAL_TIME_UNIT = TimeUnit.SECONDS;
boolean DEFAULT_INCLUDE_XIDS = true;
String DEFAULT_OUTPUT_PLUGIN = "wal2json";
int DEFAULT_UPDATE_IDLE_SLOT_INTERVAL = 300;
int DEFAULT_EXISTING_PROCESS_RETRY_LIMIT = 30;
int DEFAULT_EXISTING_PROCESS_RETRY_SLEEP_SECONDS = 30;
String getSlotName();
default int getStatusIntervalValue() {
return DEFAULT_STATUS_INTERVAL_VALUE;
}
default TimeUnit getStatusIntervalTimeUnit() {
return DEFAULT_STATUS_INTERVAL_TIME_UNIT;
}
default boolean getIncludeXids() {
return DEFAULT_INCLUDE_XIDS;
}
default String getOutputPlugin() {
return DEFAULT_OUTPUT_PLUGIN;
}
default Properties getSlotOptions() {
Properties properties = new Properties();
properties.setProperty("include-xids", String.valueOf(
getIncludeXids()));
return properties;
}
default int getUpdateIdleSlotInterval() {
return DEFAULT_UPDATE_IDLE_SLOT_INTERVAL;
}
default int getExisitingProcessRetryLimit() {
return DEFAULT_EXISTING_PROCESS_RETRY_LIMIT;
}
default int getExistingProcessRetrySleepSeconds() {
return DEFAULT_EXISTING_PROCESS_RETRY_SLEEP_SECONDS;
}
default Set<String> getRelevantTables() {
return null;
}
}