// using Embedded extension model - the defined type is actually a copy of another plugin's server type
LOG.debug("Parsing embedded server type {" + pluginDescriptor.getName() + "}"
+ serverDescriptor.getName() + ", which extends server type {" + sourcePlugin + "}" + sourceServer + "...");
Map<String, ServerDescriptor> pluginServerDescriptors = getPluginServerDescriptors(sourcePlugin);
ServerDescriptor sourceServerDescriptor = pluginServerDescriptors.get(sourceServer);
if (sourceServerDescriptor == null) {
LOG.warn("There is no server type named [" + sourceServer + "] from a plugin named [" + sourcePlugin
+ "]. This is probably because that plugin is missing. Resource Type [{"
+ pluginDescriptor.getName() + "}" + serverDescriptor.getName() + "] will be ignored.");
return null;
}
serverResourceType = new ResourceType(serverDescriptor.getName(), pluginDescriptor.getName(),
ResourceCategory.SERVER, parentServerType);
// Let the plugin writer override these, or if not, parseResourceDescriptor() will pick up the source type's
// values.
serverResourceType.setDescription(serverDescriptor.getDescription());
serverResourceType.setSubCategory(serverDescriptor.getSubCategory());
serverResourceType.setCreationDataType(convertCreationDataType(serverDescriptor.getCreationDataType()));
serverResourceType
.setCreateDeletePolicy(convertCreateDeletePolicy(serverDescriptor.getCreateDeletePolicy()));
serverResourceType.setSingleton(serverDescriptor.isSingleton());
String discoveryClass;
String componentClass;
if (serverDescriptor.getDiscovery() != null) {
discoveryClass = getFullyQualifiedComponentClassName(pluginDescriptor.getPackage(), serverDescriptor
.getDiscovery());
} else {
discoveryClass = getFullyQualifiedComponentClassName(getPluginPackage(sourcePlugin),
sourceServerDescriptor.getDiscovery());
}
if (serverDescriptor.getClazz() != null) {
componentClass = getFullyQualifiedComponentClassName(pluginDescriptor.getPackage(), serverDescriptor
.getClazz());
} else {
componentClass = getFullyQualifiedComponentClassName(getPluginPackage(sourcePlugin),
sourceServerDescriptor.getClazz());
}
parseResourceDescriptor(sourceServerDescriptor, serverResourceType, discoveryClass, componentClass,
sourcePlugin);
// The above incorporates children from the source descriptor. The following incorporates