@Override protected void buildDemoApplicationImpl(AdminClient client) throws Exception { logger.info("Loading 'Street lights driver application' data..."); loginTenantAdmin(client); ApplicationDto streetLightApplication = new ApplicationDto(); streetLightApplication.setName("Street light driver"); streetLightApplication = client.editApplication(streetLightApplication); sdkProfileDto.setApplicationId(streetLightApplication.getId()); sdkProfileDto.setProfileSchemaVersion(0); sdkProfileDto.setNotificationSchemaVersion(1); sdkProfileDto.setLogSchemaVersion(1); sdkProfileDto.setConfigurationSchemaVersion(1); loginTenantDeveloper(client); logger.info("Creating profile schema..."); CTLSchemaInfoDto profileCtlSchema = client.saveCTLSchema( getResourceAsString("profile.avsc"), CTLSchemaScopeDto.PROFILE_SCHEMA, streetLightApplication.getId()); EndpointProfileSchemaDto profileSchemaDto = new EndpointProfileSchemaDto(); profileSchemaDto.setApplicationId(streetLightApplication.getId()); profileSchemaDto.setName("StreetLightsDriverProfile schema"); profileSchemaDto.setDescription("Street light driver profile schema"); profileSchemaDto.setCtlSchemaId(profileCtlSchema.getId()); profileSchemaDto = client.saveProfileSchema(profileSchemaDto); logger.info("Profile schema version: {}", profileSchemaDto.getVersion()); sdkProfileDto.setProfileSchemaVersion(profileSchemaDto.getVersion()); logger.info("Profile schema was created."); logger.info("Creating configuration schema..."); ConfigurationSchemaDto configurationSchema = new ConfigurationSchemaDto(); configurationSchema.setApplicationId(streetLightApplication.getId()); configurationSchema.setName("StreetLightsConfiguration schema"); configurationSchema.setDescription("Street Light configuration schema"); configurationSchema = client.createConfigurationSchema( configurationSchema, getResourcePath("configuration.avsc")); logger.info("Configuration schema version: {}", configurationSchema.getVersion()); sdkProfileDto.setConfigurationSchemaVersion(configurationSchema.getVersion()); logger.info("Configuration schema was created"); for (int i = 0; i < LIGHT_ZONE_COUNT; ++i) { EndpointGroupDto group = new EndpointGroupDto(); group.setApplicationId(streetLightApplication.getId()); group.setName("Zone " + Integer.toString(i)); group.setWeight(i + 1); logger.info("Creating Endpoint group for Light Zone {}", i); group = client.editEndpointGroup(group); logger.info("Created Endpoint group for Light Zone {}", i); ProfileFilterDto filter = new ProfileFilterDto(); filter.setApplicationId(streetLightApplication.getId()); filter.setEndpointGroupId(group.getId()); filter.setEndpointProfileSchemaId(profileSchemaDto.getId()); filter.setEndpointProfileSchemaVersion(profileSchemaDto.getVersion()); filter.setBody("lightZones.contains(new Integer(" + Integer.toString(i) + "))"); filter.setStatus(UpdateStatus.INACTIVE); logger.info("Creating Profile filter for Light Zone {}", i); filter = client.editProfileFilter(filter); logger.info("Activating Profile filter for Light Zone {}", i); client.activateProfileFilter(filter.getId()); logger.info("Created and activated Profile filter for Light Zone {}", i); ConfigurationDto baseGroupConfiguration = new ConfigurationDto(); baseGroupConfiguration.setApplicationId(streetLightApplication.getId()); baseGroupConfiguration.setEndpointGroupId(group.getId()); baseGroupConfiguration.setSchemaId(configurationSchema.getId()); baseGroupConfiguration.setSchemaVersion(configurationSchema.getVersion()); baseGroupConfiguration.setDescription("Base street light driver configuration"); String body = getConfigurationBodyForEndpointGroup(i); logger.info("Configuration body: [{}]", body); baseGroupConfiguration.setBody(body); logger.info("Editing the configuration..."); baseGroupConfiguration = client.editConfiguration(baseGroupConfiguration); logger.info("Configuration was successfully edited"); logger.info("Activating the configuration"); client.activateConfiguration(baseGroupConfiguration.getId()); logger.info("Configuration was activated"); } logger.info("Finished loading 'Street lights driver application' data..."); }