CRecordApplication
This is a data record for the description of an application.
This message belongs to the application factory collector API.
{ "id": "5a8d5a3f-37c0-47f5-bb88-25f5f5e6a20c", "name": "APPLICATION", "isService": "false", "namespaces": "", "description": "The application data.", "slots": [ { "key": "appId", "name": "ID", "direction": "REQUEST", "mandatory": "false", "type": "UUID", "description": "The ID of an application." }, { "key": "appName", "name": "NAME", "direction": "REQUEST", "mandatory": "false", "type": "STRING", "description": "The name of the application." }, { "key": "shortAppDesc", "name": "SHORT_DESCRIPTION", "direction": "REQUEST", "mandatory": "false", "type": "STRING", "description": "A short description." }, { "key": "longAppDesc", "name": "LONG_DESCRIPTION", "direction": "REQUEST", "mandatory": "false", "type": "STRING", "description": "A long description." }, { "key": "iconPath", "name": "ICON", "direction": "REQUEST", "mandatory": "false", "type": "STRING", "description": "The relative path of the icon file in the file store." }, { "key": "properties", "name": "PROPERTIES", "direction": "REQUEST", "mandatory": "false", "type": "STRING_PROPERTIES", "description": "Properties for running the application." }, { "key": "permissions", "name": "PERMISSIONS", "direction": "REQUEST", "mandatory": "false", "type": "STRING_ARRAY", "description": "Permissions required to start the application." } ] }
This record is used, for example, when registering application factories.
Example of use (after generating of the class CRecordApplication
):
// create an application description @NotNull private CRecord createApplicationRecord() throws CException { final CRecord record = CRecordApplication.create(); CRecordApplication.setId(record, UUID.fromString("186687b0-e99b-4479-be94-d69051c9542f")); CRecordApplication.setName(record, "Monitor"); CRecordApplication.setShortDescription(record, "A monitor to hold monitoring panels"); CRecordApplication.setLongDescription(record, "An application for monitoring states of thenyssr.net "); CRecordApplication.setIcon(record, "apps/Monitor/monitor.png"); CRecordApplication.setPermissions(record, new String[]{}); return record; } // register your app private void registerApplicationFactory() throws CException { final IId microserviceId = CIdFactory.fromObject("NY_ApplicationFactoryCollector"); final CEnvelope env = CEnvelope.forMicroService(microserviceId); final CRecord record = CRecordAddAppFactory.create(); CRecordAddAppFactory.setApplication(record, createApplicationRecord()); CRecordAddAppFactory.setFactoryAddress(record, getAddress()); sendRequest(env, record); }
You can check the result of the registration in a separate message handler for the response:
// in the constructor of your target: addMessageHandler(CRecordAddAppFactory.ID, this::asyncAddAppFactory);
// handle the answer private boolean asyncAddAppFactory(@NotNull final CEnvelope aEnvelope, @NotNull final CRecord aRecord) { if (aEnvelope.isAnswer()) { if (aEnvelope.getResultCode() != CResultCode.SUCCESS) { // ... } return true; } else { return false; } }