in sdk/host/src/main/java/org/apache/teaclave/javasdk/host/AbstractEnclave.java [197:217]
public <T> Iterator<T> load(Class<T> service) throws ServicesLoadingException {
// Check service must be an interface class.
if (!service.isInterface()) {
throw new ServicesLoadingException("service type: " + service.getTypeName() + " is not an interface type.");
}
Iterator<T> serviceProxies;
switch (enclaveContext.getEnclaveType()) {
// If enclave type is MOCK_IN_JVM, loading services by JDK SPI mechanism directly.
case MOCK_IN_JVM:
serviceProxies = loadProxyServiceMockJVM(service);
break;
// Loading services in enclave and creating proxy for them.
case MOCK_IN_SVM:
case TEE_SDK:
case EMBEDDED_LIB_OS:
default:
serviceProxies = loadProxyService(service);
}
return serviceProxies;
}