| 406 | } |
| 407 | |
| 408 | jobject createWorkload(jobject context, const std::string& workloadName) { |
| 409 | auto clazz = getClass(workloadName.c_str()); |
| 410 | if (!env->IsAssignableFrom(clazz, abstractWorkloadClass)) { |
| 411 | log->trace(error, "ClassNotAWorkload", { { "Class", workloadName } }); |
| 412 | return nullptr; |
| 413 | } |
| 414 | auto constructor = getMethod(clazz, "<init>", "(Lcom/apple/foundationdb/testing/WorkloadContext;)V"); |
| 415 | auto res = env->NewObject(clazz, constructor, context); |
| 416 | checkException(); |
| 417 | env->NewGlobalRef(res); |
| 418 | return res; |
| 419 | } |
| 420 | |
| 421 | jobject createPromise(GenericPromise<bool>&& promise) { |
| 422 | auto p = std::make_unique<JavaPromise>(std::move(promise)); |