From 7de18770f07adbaa2b7164deab9a7952cb81170d Mon Sep 17 00:00:00 2001 From: Kirill Liubun Date: Wed, 22 Jun 2016 12:32:38 +0300 Subject: [PATCH] Changed Controller layer and AdminClient and some fixes on GWT client --- .../kaa/server/common/admin/AdminClient.java | 15 +--- .../activity/ConfigurationSchemaActivity.java | 8 +- .../admin/client/mvp/data/DataSource.java | 18 ++--- .../client/mvp/place/CtlSchemaPlace.java | 6 +- .../admin/controller/KaaAdminController.java | 31 ++------ .../admin/services/KaaAdminServiceImpl.java | 74 +++++++++++-------- .../schema/ConfigurationSchemaViewDto.java | 2 + .../shared/services/KaaAdminService.java | 12 +-- 8 files changed, 70 insertions(+), 96 deletions(-) diff --git a/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java b/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java index 3586753f68..a2c9912cbe 100644 --- a/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java +++ b/server/common/admin-rest-client/src/main/java/org/kaaproject/kaa/server/common/admin/AdminClient.java @@ -226,21 +226,8 @@ public void deleteApplication(String applicationId) throws Exception { restTemplate.postForLocation(restTemplate.getUrl() + "delApplication", params); } - public ConfigurationSchemaDto createConfigurationSchema(ConfigurationSchemaDto configurationSchema, String schemaResource) - throws Exception { - return createConfigurationSchema(configurationSchema, getFileResource(schemaResource)); - } - - public ConfigurationSchemaDto createConfigurationSchema(ConfigurationSchemaDto configurationSchema, ByteArrayResource schemaResource) - throws Exception { - MultiValueMap params = new LinkedMultiValueMap<>(); - params.add("configurationSchema", configurationSchema); - params.add("file", schemaResource); - return restTemplate.postForObject(restTemplate.getUrl() + "createConfigurationSchema", params, ConfigurationSchemaDto.class); - } - public ConfigurationSchemaDto editConfigurationSchema(ConfigurationSchemaDto configurationSchema) throws Exception { - return restTemplate.postForObject(restTemplate.getUrl() + "editConfigurationSchema", configurationSchema, ConfigurationSchemaDto.class); + return restTemplate.postForObject(restTemplate.getUrl() + "saveConfigurationSchema", configurationSchema, ConfigurationSchemaDto.class); } public EndpointProfileSchemaDto saveProfileSchema(EndpointProfileSchemaDto profileSchema) throws Exception { diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ConfigurationSchemaActivity.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ConfigurationSchemaActivity.java index d370179808..6f18ed8673 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ConfigurationSchemaActivity.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/activity/ConfigurationSchemaActivity.java @@ -23,12 +23,10 @@ import org.kaaproject.kaa.server.admin.client.mvp.place.ConfigurationSchemaPlace; import org.kaaproject.kaa.server.admin.client.mvp.place.CtlSchemaPlace; import org.kaaproject.kaa.server.admin.client.mvp.view.BaseCtlSchemaView; -import org.kaaproject.kaa.server.admin.client.mvp.view.BaseSchemaView; import com.google.gwt.user.client.rpc.AsyncCallback; import org.kaaproject.kaa.server.admin.shared.schema.ConfigurationSchemaViewDto; import org.kaaproject.kaa.server.admin.shared.schema.CtlSchemaFormDto; -import org.kaaproject.kaa.server.admin.shared.schema.ProfileSchemaViewDto; public class ConfigurationSchemaActivity extends AbstractBaseCtlSchemaActivity { @@ -56,13 +54,13 @@ protected BaseCtlSchemaView getView(boolean create) { @Override protected void getEntity(String id, AsyncCallback callback) { - KaaAdmin.getDataSource().getConfigurationSchemaForm(id, callback); // refactor on server + KaaAdmin.getDataSource().getConfigurationSchemaView(id, callback); } @Override protected void editEntity(ConfigurationSchemaViewDto entity, AsyncCallback callback) { - KaaAdmin.getDataSource().editConfigurationSchemaForm(entity, callback); // refactor on server + KaaAdmin.getDataSource().saveConfigurationSchemaView(entity, callback); } @Override @@ -80,7 +78,7 @@ protected void createEmptyCtlSchemaForm(AsyncCallback callback @Override protected CtlSchemaPlace.SchemaType getPlaceSchemaType() { - return CtlSchemaPlace.SchemaType.ENDPOINT_PROFILE; + return CtlSchemaPlace.SchemaType.CONFIGURATION; } diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java index 7991d4f735..2e95a31a7c 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/data/DataSource.java @@ -661,25 +661,25 @@ protected void onResult(List result) { } - public void editConfigurationSchemaForm( + public void saveConfigurationSchemaView( ConfigurationSchemaViewDto configurationSchema, final AsyncCallback callback) { - rpcService.editConfigurationSchemaForm(configurationSchema, - new DataCallback(callback) { + rpcService.saveConfigurationSchemaView(configurationSchema, + new DataCallback(callback) { @Override - protected void onResult(ConfigurationSchemaDto result) { + protected void onResult(ConfigurationSchemaViewDto result) { eventBus.fireEvent(new DataEvent( ConfigurationSchemaDto.class)); } }); } - public void getConfigurationSchemaForm(String configurationSchemaId, - final AsyncCallback callback) { - rpcService.getConfigurationSchemaForm(configurationSchemaId, - new DataCallback(callback) { + public void getConfigurationSchemaView(String configurationSchemaId, + final AsyncCallback callback) { + rpcService.getConfigurationSchemaView(configurationSchemaId, + new DataCallback(callback) { @Override - protected void onResult(ConfigurationSchemaDto result) { + protected void onResult(ConfigurationSchemaViewDto result) { } }); } diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/place/CtlSchemaPlace.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/place/CtlSchemaPlace.java index f9b57a7786..5e0c5ec6b4 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/place/CtlSchemaPlace.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/client/mvp/place/CtlSchemaPlace.java @@ -182,6 +182,8 @@ public TreePlace createDefaultPreviousPlace() { if (schemaType != null) { if (schemaType == SchemaType.ENDPOINT_PROFILE) { return new ProfileSchemasPlace(applicationId); + } if(schemaType == SchemaType.CONFIGURATION) { + return new ConfigurationSchemasPlace(applicationId); } else { return new ServerProfileSchemasPlace(applicationId); } @@ -197,8 +199,8 @@ public TreePlace createDefaultPreviousPlace() { } } - public static enum SchemaType { - + public enum SchemaType { + CONFIGURATION, ENDPOINT_PROFILE, SERVER_PROFILE diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/KaaAdminController.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/KaaAdminController.java index c68bc8f419..6a38f72800 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/KaaAdminController.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/controller/KaaAdminController.java @@ -1069,37 +1069,16 @@ public ConfigurationSchemaDto getConfigurationSchema(@PathVariable String config /** * Adds configuration schema to the list of all configuration schemas. * - * @param configurationSchema - * the сonfiguration schema - * @param file - * the file + * @param configurationSchema the сonfiguration schema * @return the сonfiguration schema dto - * @throws KaaAdminServiceException - * the kaa admin service exception + * @throws KaaAdminServiceException the kaa admin service exception */ - @RequestMapping(value = "createConfigurationSchema", method = RequestMethod.POST, consumes = { "multipart/mixed", "multipart/form-data" }) + @RequestMapping(value = "saveConfigurationSchema", method = RequestMethod.POST) @ResponseBody - public ConfigurationSchemaDto createConfigurationSchema(@RequestPart("configurationSchema") ConfigurationSchemaDto configurationSchema, - @RequestPart("file") MultipartFile file) throws KaaAdminServiceException { - byte[] data = getFileContent(file); - return kaaAdminService.editConfigurationSchema(configurationSchema, data); + public ConfigurationSchemaDto createConfigurationSchema(@RequestBody ConfigurationSchemaDto configurationSchema) throws KaaAdminServiceException { + return kaaAdminService.saveConfigurationSchema(configurationSchema); } - /** - * Edits existing configuration schema. - * - * @param configurationSchema - * the сonfiguration schema - * @return the сonfiguration schema dto - * @throws KaaAdminServiceException - * the kaa admin service exception - */ - @RequestMapping(value = "editConfigurationSchema", method = RequestMethod.POST) - @ResponseBody - public ConfigurationSchemaDto editConfigurationSchema(@RequestBody ConfigurationSchemaDto configurationSchema) - throws KaaAdminServiceException { - return kaaAdminService.editConfigurationSchema(configurationSchema, null); - } /** * Gets the notification schemas by application token. diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/KaaAdminServiceImpl.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/KaaAdminServiceImpl.java index 84c21571b9..ab881d6e18 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/KaaAdminServiceImpl.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/services/KaaAdminServiceImpl.java @@ -121,12 +121,7 @@ import org.kaaproject.kaa.server.admin.shared.endpoint.EndpointProfileViewDto; import org.kaaproject.kaa.server.admin.shared.plugin.PluginInfoDto; import org.kaaproject.kaa.server.admin.shared.properties.PropertiesDto; -import org.kaaproject.kaa.server.admin.shared.schema.CtlSchemaExportKey; -import org.kaaproject.kaa.server.admin.shared.schema.CtlSchemaFormDto; -import org.kaaproject.kaa.server.admin.shared.schema.CtlSchemaReferenceDto; -import org.kaaproject.kaa.server.admin.shared.schema.ProfileSchemaViewDto; -import org.kaaproject.kaa.server.admin.shared.schema.SchemaInfoDto; -import org.kaaproject.kaa.server.admin.shared.schema.ServerProfileSchemaViewDto; +import org.kaaproject.kaa.server.admin.shared.schema.*; import org.kaaproject.kaa.server.admin.shared.services.KaaAdminService; import org.kaaproject.kaa.server.admin.shared.services.KaaAdminServiceException; import org.kaaproject.kaa.server.admin.shared.services.ServiceErrorCode; @@ -1400,59 +1395,74 @@ public ConfigurationSchemaDto getConfigurationSchema(String configurationSchemaI } } + + @Override - public ConfigurationSchemaDto editConfigurationSchema(ConfigurationSchemaDto configurationSchema, byte[] schema) - throws KaaAdminServiceException { + public ConfigurationSchemaDto saveConfigurationSchema(ConfigurationSchemaDto confSchema) throws KaaAdminServiceException { checkAuthority(KaaAuthorityDto.TENANT_DEVELOPER, KaaAuthorityDto.TENANT_USER); try { - if (isEmpty(configurationSchema.getId())) { - configurationSchema.setCreatedUsername(getCurrentUser().getUsername()); - checkApplicationId(configurationSchema.getApplicationId()); - setSchema(configurationSchema, schema); + if (isEmpty(confSchema.getId())) { + confSchema.setCreatedUsername(getCurrentUser().getUsername()); + checkApplicationId(confSchema.getApplicationId()); } else { - ConfigurationSchemaDto storedConfigurationSchema = controlService.getConfigurationSchema(configurationSchema.getId()); - Utils.checkNotNull(storedConfigurationSchema); - checkApplicationId(storedConfigurationSchema.getApplicationId()); - configurationSchema.setSchema(storedConfigurationSchema.getSchema()); + ConfigurationSchemaDto storedConfSchema = controlService.getConfigurationSchema(confSchema.getId()); + Utils.checkNotNull(storedConfSchema); + checkApplicationId(storedConfSchema.getApplicationId()); } - return controlService.editConfigurationSchema(configurationSchema); + return controlService.editConfigurationSchema(confSchema); // TODO change realisation of method } catch (Exception e) { throw Utils.handleException(e); } } + + + @Override - public ConfigurationSchemaDto getConfigurationSchemaForm(String configurationSchemaId) throws KaaAdminServiceException { + public ConfigurationSchemaViewDto getConfigurationSchemaView(String configurationSchemaId) throws KaaAdminServiceException { checkAuthority(KaaAuthorityDto.TENANT_DEVELOPER, KaaAuthorityDto.TENANT_USER); try { - ConfigurationSchemaDto configurationSchema = getConfigurationSchema(configurationSchemaId); - convertToSchemaForm(configurationSchema, configurationSchemaFormAvroConverter); - return configurationSchema; + ConfigurationSchemaDto confSchema = getConfigurationSchema(configurationSchemaId); + CTLSchemaDto ctlSchemaDto = controlService.getCTLSchemaById(confSchema.getCtlSchemaId()); + return new ConfigurationSchemaViewDto(confSchema, toCtlSchemaForm(ctlSchemaDto)); } catch (Exception e) { throw Utils.handleException(e); } } + + @Override - public ConfigurationSchemaDto editConfigurationSchemaForm(ConfigurationSchemaDto configurationSchema) throws KaaAdminServiceException { + public ConfigurationSchemaViewDto saveConfigurationSchemaView(ConfigurationSchemaViewDto confSchemaView) throws KaaAdminServiceException { checkAuthority(KaaAuthorityDto.TENANT_DEVELOPER, KaaAuthorityDto.TENANT_USER); try { - if (isEmpty(configurationSchema.getId())) { - configurationSchema.setCreatedUsername(getCurrentUser().getUsername()); - checkApplicationId(configurationSchema.getApplicationId()); - convertToStringSchema(configurationSchema, configurationSchemaFormAvroConverter); - } else { - ConfigurationSchemaDto storedConfigurationSchema = controlService.getConfigurationSchema(configurationSchema.getId()); - Utils.checkNotNull(storedConfigurationSchema); - checkApplicationId(storedConfigurationSchema.getApplicationId()); - configurationSchema.setSchema(storedConfigurationSchema.getSchema()); + ConfigurationSchemaDto confSchema = confSchemaView.getSchema(); + String applicationId = confSchema.getApplicationId(); + checkApplicationId(applicationId); + String ctlSchemaId = confSchema.getCtlSchemaId(); + + if (isEmpty(ctlSchemaId)) { + if (confSchemaView.useExistingCtlSchema()) { + CtlSchemaReferenceDto metaInfo = confSchemaView.getExistingMetaInfo(); + CTLSchemaDto schema = getCTLSchemaByFqnVersionTenantIdAndApplicationId(metaInfo.getMetaInfo().getFqn(), + metaInfo.getVersion(), + metaInfo.getMetaInfo().getTenantId(), + metaInfo.getMetaInfo().getApplicationId()); + confSchema.setCtlSchemaId(schema.getId()); + } else { + CtlSchemaFormDto ctlSchemaForm = saveCTLSchemaForm(confSchemaView.getCtlSchemaForm()); + confSchema.setCtlSchemaId(ctlSchemaForm.getId()); + } } - return controlService.editConfigurationSchema(configurationSchema); + + ConfigurationSchemaDto savedConfSchema = saveConfigurationSchema(confSchema); + return getConfigurationSchemaView(savedConfSchema.getId()); } catch (Exception e) { throw Utils.handleException(e); } } + @Override public List getNotificationSchemasByApplicationId(String applicationId) throws KaaAdminServiceException { checkAuthority(KaaAuthorityDto.TENANT_DEVELOPER, KaaAuthorityDto.TENANT_USER); diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/schema/ConfigurationSchemaViewDto.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/schema/ConfigurationSchemaViewDto.java index 7bdc8eb78a..4dab927d87 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/schema/ConfigurationSchemaViewDto.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/schema/ConfigurationSchemaViewDto.java @@ -6,6 +6,8 @@ public class ConfigurationSchemaViewDto extends BaseSchemaViewDto { + private static final long serialVersionUID = 8311415263866415408L; + public ConfigurationSchemaViewDto() { super(); } diff --git a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/KaaAdminService.java b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/KaaAdminService.java index f07bd5a368..78be7062d6 100644 --- a/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/KaaAdminService.java +++ b/server/node/src/main/java/org/kaaproject/kaa/server/admin/shared/services/KaaAdminService.java @@ -65,11 +65,7 @@ import org.kaaproject.kaa.server.admin.shared.endpoint.EndpointProfileViewDto; import org.kaaproject.kaa.server.admin.shared.plugin.PluginInfoDto; import org.kaaproject.kaa.server.admin.shared.properties.PropertiesDto; -import org.kaaproject.kaa.server.admin.shared.schema.CtlSchemaFormDto; -import org.kaaproject.kaa.server.admin.shared.schema.CtlSchemaReferenceDto; -import org.kaaproject.kaa.server.admin.shared.schema.ProfileSchemaViewDto; -import org.kaaproject.kaa.server.admin.shared.schema.SchemaInfoDto; -import org.kaaproject.kaa.server.admin.shared.schema.ServerProfileSchemaViewDto; +import org.kaaproject.kaa.server.admin.shared.schema.*; import com.google.gwt.user.client.rpc.RemoteService; import com.google.gwt.user.client.rpc.RemoteServiceRelativePath; @@ -191,11 +187,11 @@ public interface KaaAdminService extends RemoteService { ConfigurationSchemaDto getConfigurationSchema(String configurationSchemaId) throws KaaAdminServiceException; - ConfigurationSchemaDto editConfigurationSchema(ConfigurationSchemaDto configurationSchema, byte[] schema) throws KaaAdminServiceException; + ConfigurationSchemaDto saveConfigurationSchema(ConfigurationSchemaDto configurationSchema) throws KaaAdminServiceException; - ConfigurationSchemaDto getConfigurationSchemaForm(String configurationSchemaId) throws KaaAdminServiceException; + ConfigurationSchemaViewDto getConfigurationSchemaView(String configurationSchemaId) throws KaaAdminServiceException; - ConfigurationSchemaDto editConfigurationSchemaForm(ConfigurationSchemaDto configurationSchema) throws KaaAdminServiceException; + ConfigurationSchemaViewDto saveConfigurationSchemaView(ConfigurationSchemaViewDto confSchemaView) throws KaaAdminServiceException; List getNotificationSchemasByApplicationId(String applicationId) throws KaaAdminServiceException;