- String nodeTypeName = normaliseNodeTypeName(resourceNodeTemplate);
- Metadata metaData = resourceNodeTemplate.getMetaData();
- String metaDataType = Optional.ofNullable(metaData).map(m -> m.getValue("type")).orElse(nodeTypeName);
- Model resourceNode = Model.getModelFor(nodeTypeName, metaDataType);
- foundProvidingService |=
- processModel(resourceModel, metaData, resourceNode, resourceNodeTemplate.getProperties());
+ String nodeTypeName = resourceNodeTemplate.getType();
+ Metadata metadata = resourceNodeTemplate.getMetaData();
+ String metaDataType = Optional.ofNullable(metadata).map(m -> m.getValue("type")).orElse(nodeTypeName);
+ Resource model = Model.getModelFor(nodeTypeName, metaDataType);
+
+ if (metadata != null && hasAllottedResource(metadata.getAllProperties())
+ && model.getWidgetType() == Type.VSERVER) {
+ model = new Resource(Type.ALLOTTED_RESOURCE, false);
+ Map<String, Object> props = new HashMap<>();
+ props.put("providingService", true);
+ model.setProperties(props);
+ }
+
+ foundProvidingService |= processModel(resourceModel, metadata, model, resourceNodeTemplate.getProperties());