private void handleProvidedRelations(GenerationPackage mainWorkSet, GenerationOptions options, ResourceEntity resource, AppServerRelationProperties properties, GenerationSubPackage resourceWorkSet) {
Set<ProvidedResourceRelationEntity> providedMasterRelations = dependencyResolver.getProvidedMasterRelationsForRelease(resource, options.getContext().getTargetRelease());
List<ProvidedResourceRelationEntity> providedMasterRelationsSorted = new ArrayList<>(
providedMasterRelations);
Collections.sort(providedMasterRelationsSorted,
AbstractResourceRelationEntity.COMPARE_BY_SLAVE_NAME);
for (ProvidedResourceRelationEntity relation : providedMasterRelationsSorted) {
ResourceEntity slave = relation.getSlaveResource();
log.info(" (provides): " + slave.getName());
String identifier = relation.getIdentifier();
AppServerRelationProperties slaveProperties = properties.addProvidedRelation(identifier,
slave, relation);
Set<TemplateDescriptorEntity> resourceTemplates = templatesForResource(options, slave);
Set<TemplateDescriptorEntity> relationTemplates = templatesForRelation(options, relation);
merge(options, mainWorkSet, slaveProperties);
slaveProperties.setFunctions(functionService.getAllFunctionsForResource(slave));
GenerationUnit generationUnit = new GenerationUnit(slave, resource, slaveProperties,
resourceTemplates, relationTemplates);
generationUnit.setGlobalFunctionTemplates(options.getContext().getGlobalFunctions());
addUnit(resourceWorkSet, generationUnit);
}
}