public static ShenYuEngineConfigure fromAnnotation(final ShenYuTest annotation) {
        ShenYuTest.Environment[] environments = annotation.environments();
        if (environments.length == 0) {
            throw new IllegalArgumentException("ShenYuE2ETest.Environment is empty");
        }
        Map<String, List<Environment>> environmentMap = Arrays.stream(environments)
                .collect(Collectors.groupingBy(ShenYuTest.Environment::serviceName));
        Map<String, ServiceConfigure> map = new HashMap<>();
        environmentMap.forEach((k, v) -> {
            Environment environment = environmentMap.get(k).get(0);
            ServiceConfigure serviceConfigure = new ServiceConfigure();
            serviceConfigure.setServiceName(environment.serviceName());
            serviceConfigure.setModuleName(environment.service().moduleName());
            serviceConfigure.setBaseUrl(environment.service().baseUrl());
            serviceConfigure.setPort(environment.service().port());
            serviceConfigure.setSchema(environment.service().schema());
            serviceConfigure.setServiceType(environment.service().type());
            serviceConfigure.setParameters(toProperties(environment.service().parameters()));
            map.put(k, serviceConfigure);
        });
        
        ShenYuEngineConfigure engineConfigure = new ShenYuEngineConfigure();
        engineConfigure.setServiceConfigureMap(map);
        return engineConfigure;
    }
from annotation.

@param annotation annotation
@return ShenYuE2EEngineConfigure
shenyu-e2e/shenyu-e2e-engine/src/main/java/org/apache/shenyu/e2e/engine/config/ShenYuEngineConfigure.java