use of io.micronaut.starter.feature.Feature in project micronaut-starter by micronaut-projects.
the class Readme method apply.
@Override
public void apply(GeneratorContext generatorContext) {
List<Feature> featuresWithDocumentationLinks = generatorContext.getFeatures().getFeatures().stream().filter(feature -> feature.getMicronautDocumentation() != null || feature.getThirdPartyDocumentation() != null).collect(Collectors.toList());
List<Writable> helpTemplates = generatorContext.getHelpTemplates();
if (!helpTemplates.isEmpty() || !featuresWithDocumentationLinks.isEmpty()) {
generatorContext.addTemplate("readme", new Template() {
@Override
public String getPath() {
return "README.md";
}
@Override
public void write(OutputStream outputStream) throws IOException {
for (Writable writable : generatorContext.getHelpTemplates()) {
writable.write(outputStream);
}
for (Feature feature : featuresWithDocumentationLinks) {
Writable writable = new RockerWritable(readme.template(feature));
writable.write(outputStream);
}
}
});
}
}
use of io.micronaut.starter.feature.Feature in project micronaut-starter by micronaut-projects.
the class RequiredLanguageFeatureValidator method validatePreProcessing.
@Override
public void validatePreProcessing(Options options, ApplicationType applicationType, Set<Feature> features) {
Map<Language, Set<String>> requiredLanguages = new HashMap<>();
for (Feature feature : features) {
if (feature instanceof LanguageSpecificFeature) {
Language lang = ((LanguageSpecificFeature) feature).getRequiredLanguage();
requiredLanguages.compute(lang, (key, value) -> {
if (value == null) {
value = new HashSet<>();
}
value.add(feature.getName());
return value;
});
}
}
Set<Language> languages = requiredLanguages.keySet();
Iterator<Language> languageIterator = languages.iterator();
if (languages.size() > 1) {
Language first = languageIterator.next();
Language second = languageIterator.next();
throw new IllegalArgumentException(String.format("The selected features are incompatible. %s requires %s and %s requires %s", requiredLanguages.get(first), first, requiredLanguages.get(second), second));
}
Language requiredLanguage = languageIterator.hasNext() ? languageIterator.next() : null;
if (options != null && requiredLanguage != null && requiredLanguage != options.getLanguage()) {
throw new IllegalArgumentException(String.format("The selected features are incompatible. %s requires %s but %s was the selected language.", requiredLanguages.get(requiredLanguage), requiredLanguage, options.getLanguage()));
}
}
Aggregations