@Override
 public ResourceType findResourceType(String name, String pluginType, String resourceCategory) {
   ResourceTypeCriteria crit = new ResourceTypeCriteria();
   crit.addFilterName(name);
   crit.addFilterCategory(ResourceCategory.valueOf(resourceCategory));
   crit.addFilterPluginName(pluginType);
   crit.fetchMetricDefinitions(true);
   crit.setStrict(true);
   List<ResourceType> resourceTypes =
       resourceTypeManagerRemote.findResourceTypesByCriteria(baseRemote.getSubject(), crit);
   if (resourceTypes.size() > 1) {
     throw new IllegalStateException(
         "More than one resource type found. Expected only one resource type");
   }
   return resourceTypes.get(0);
 }
 private ResourceType loadResourceTypeFully(String typeName, String typePlugin) {
   ResourceTypeCriteria c = new ResourceTypeCriteria();
   c.addFilterName(typeName);
   c.addFilterPluginName(typePlugin);
   c.setStrict(true);
   c.fetchSubCategories(true);
   c.fetchPluginConfigurationDefinition(true);
   c.fetchProcessScans(true);
   c.fetchOperationDefinitions(true);
   c.fetchMetricDefinitions(true);
   c.fetchEventDefinitions(true);
   c.fetchResourceConfigurationDefinition(true);
   c.fetchDriftDefinitionTemplates(true);
   c.fetchBundleConfiguration(true);
   List<ResourceType> t = resourceTypeMgr.findResourceTypesByCriteria(subjectMgr.getOverlord(), c);
   ResourceType resourceType = t.get(0);
   return resourceType;
 }