2 * Copyright © 2018-2019 AT&T Intellectual Property.
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.utils
19 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.CleanConfiguration
20 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.ExpiryConfiguration
21 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.KafkaConfiguration
22 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.PrioritizationConfiguration
23 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.ShutDownConfiguration
24 import org.onap.ccsdk.cds.blueprintsprocessor.functions.message.prioritization.db.MessagePrioritization
25 import java.util.Calendar
29 object MessagePrioritizationSample {
31 fun samplePrioritizationConfiguration(): PrioritizationConfiguration {
32 return PrioritizationConfiguration().apply {
33 kafkaConfiguration = KafkaConfiguration().apply {
34 inputTopicSelector = "prioritize-input"
35 outputTopic = "prioritize-output-topic"
36 expiredTopic = "prioritize-expired-topic"
38 expiryConfiguration = ExpiryConfiguration().apply {
39 frequencyMilli = 10000L
42 shutDownConfiguration = ShutDownConfiguration().apply {
45 cleanConfiguration = CleanConfiguration().apply {
46 frequencyMilli = 10000L
47 expiredRecordsHoldDays = 5
52 fun sampleSchedulerPrioritizationConfiguration(): PrioritizationConfiguration {
53 return PrioritizationConfiguration().apply {
54 expiryConfiguration = ExpiryConfiguration().apply {
58 shutDownConfiguration = ShutDownConfiguration().apply {
61 cleanConfiguration = CleanConfiguration().apply {
63 expiredRecordsHoldDays = 5
68 private fun currentDatePlusDays(days: Int): Date {
69 val calender = Calendar.getInstance()
70 calender.add(Calendar.DATE, days)
74 fun sampleMessages(messageState: String, count: Int): List<MessagePrioritization> {
75 return sampleMessages("sample-group", messageState, count)
78 fun sampleMessages(groupName: String, messageState: String, count: Int): List<MessagePrioritization> {
79 val messages: MutableList<MessagePrioritization> = arrayListOf()
81 val backPressureMessage = createMessage(
82 groupName, messageState,
85 messages.add(backPressureMessage)
90 fun sampleMessageWithSameCorrelation(
94 ): List<MessagePrioritization> {
95 val messages: MutableList<MessagePrioritization> = arrayListOf()
97 val backPressureMessage = createMessage(
98 groupName, messageState, "sample-type",
99 "key1=value1,key2=value2"
101 messages.add(backPressureMessage)
106 fun sampleMessageWithDifferentTypeSameCorrelation(
108 messageState: String,
110 ): List<MessagePrioritization> {
111 val messages: MutableList<MessagePrioritization> = arrayListOf()
113 val backPressureMessage = createMessage(
114 groupName, messageState, "type-$it",
115 "key1=value1,key2=value2"
117 messages.add(backPressureMessage)
124 messageState: String,
126 messageCorrelationId: String?
127 ): MessagePrioritization {
129 return MessagePrioritization().apply {
130 id = UUID.randomUUID().toString()
134 priority = (1..10).shuffled().first()
135 correlationId = messageCorrelationId
136 message = "I am the Message"
139 expiryDate = currentDatePlusDays(3)