-
Notifications
You must be signed in to change notification settings - Fork 188
/
ImportConfiguration.java
91 lines (71 loc) · 3.06 KB
/
ImportConfiguration.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
83
84
85
86
87
88
89
90
91
/*
* Copyright (C) 2010-2021 Evolveum and contributors
*
* This work is dual-licensed under the Apache License 2.0
* and European Union Public License. See LICENSE file for details.
*/
package com.evolveum.midpoint.testing.story.sysperf;
import static com.evolveum.midpoint.testing.story.sysperf.TestSystemPerformance.TARGET_DIR;
import static com.evolveum.midpoint.testing.story.sysperf.TestSystemPerformance.TEST_DIR;
import static com.evolveum.midpoint.testing.story.sysperf.Util.mapOf;
import java.io.File;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import com.evolveum.midpoint.test.DummyTestResource;
import com.evolveum.midpoint.test.TestResource;
import com.evolveum.midpoint.xml.ns._public.common.common_3.TaskType;
class ImportConfiguration {
private static final String PROP = "import";
private static final String PROP_THREADS = PROP + ".threads";
private static final String PROP_NO_OP_RUNS = PROP + ".no-op-runs";
private static final File TASK_TEMPLATE_FILE = new File(TEST_DIR, "task-import.vm.xml");
private final int threads;
private final int noOpRuns;
private final List<TestResource<TaskType>> generatedTasks;
private ImportConfiguration() {
threads = Integer.parseInt(System.getProperty(PROP_THREADS, "0"));
noOpRuns = Integer.parseInt(System.getProperty(PROP_NO_OP_RUNS, "1"));
generatedTasks = generateTasks();
}
int getThreads() {
return threads;
}
int getNoOpRuns() {
return noOpRuns;
}
List<TestResource<TaskType>> getGeneratedTasks() {
return generatedTasks;
}
@Override
public String toString() {
return "ImportConfiguration{" +
"threads=" + threads +
", noOpRuns=" + noOpRuns +
'}';
}
public static ImportConfiguration setup() {
ImportConfiguration configuration = new ImportConfiguration();
System.out.println("Import: " + configuration);
return configuration;
}
private List<TestResource<TaskType>> generateTasks() {
List<TestResource<TaskType>> tasks = new ArrayList<>();
List<DummyTestResource> sourceResources = TestSystemPerformance.SOURCES_CONFIGURATION.getGeneratedResources();
for (int i = 0; i < sourceResources.size(); i++) {
String taskOid = UUID.randomUUID().toString();
tasks.add(new TestResource<>(TARGET_DIR, createFile(i, sourceResources.get(i), taskOid), taskOid));
}
return tasks;
}
private String createFile(int index, DummyTestResource resource, String taskOid) {
String generatedFileName = String.format("generated-task-import-%03d.xml", index);
File generated = new File(TARGET_DIR, generatedFileName);
VelocityGenerator.generate(TASK_TEMPLATE_FILE, generated,
mapOf("taskOid", taskOid,
"index", String.format("%03d", index),
"resourceOid", resource.oid,
"workerThreads", threads));
return generatedFileName;
}
}