java.lang.Object
io.micronaut.starter.feature.lang.groovy.Groovy
All Implemented Interfaces:
io.micronaut.core.naming.Described, io.micronaut.core.naming.Named, io.micronaut.core.order.Ordered, DefaultFeature, Feature, LanguageFeature

@Requires(property="micronaut.starter.feature.groovy.enabled", value="true", defaultValue="true") @Singleton public class Groovy extends Object implements LanguageFeature
Feature that enables support for the Groovy programming language in a Micronaut application. Configures necessary dependencies and plugins based on the selected build tool and application type.
  • Field Details

    • GROUP_ID_GROOVY

      public static final String GROUP_ID_GROOVY
      See Also:
    • DEPENDENCY_MICRONAUT_GROOVY_RUNTIME

      protected static final Dependency DEPENDENCY_MICRONAUT_GROOVY_RUNTIME
    • DEPENDENCY_MICRONAUT_INJECT_GROOVY

      protected static final Dependency DEPENDENCY_MICRONAUT_INJECT_GROOVY
    • DEPENDENCY_GROOVY

      protected static final Dependency DEPENDENCY_GROOVY
    • applicationFeatures

      protected final List<GroovyApplicationFeature> applicationFeatures
    • groovyMavenPlusPlugin

      protected final GroovyMavenPlusPlugin groovyMavenPlusPlugin
  • Constructor Details

  • Method Details

    • getName

      public String getName()
      Description copied from interface: Feature
      The name of the feature. It must be unique.
      Specified by:
      getName in interface Feature
      Specified by:
      getName in interface io.micronaut.core.naming.Named
      Returns:
      the name of the feature
    • processSelectedFeatures

      public void processSelectedFeatures(FeatureContext featureContext)
      Description copied from interface: Feature
      If this method is called for a given feature then that feature was explicitly selected or was included by default as a result of DefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set). This method can be implemented to allow features to modify the list of features that will apply to the project. The methods FeatureContext.addFeature(Feature) and FeatureContext.exclude(FeaturePredicate) are the primary ways to add and remove features from the context. FeatureContext.isPresent(Class) can be used to determine the existence of other features in order to make decisions.
      Specified by:
      processSelectedFeatures in interface Feature
      Parameters:
      featureContext - The feature context
    • processSelectedFeatured

      protected void processSelectedFeatured(FeatureContext featureContext, Predicate<Feature> filter)
      Processes and adds a selected application feature to the given feature context based on the provided filter.

      If no ApplicationFeature is present in the feature context, it attempts to find the first feature from the application features list that matches the given filter and supports the current application type, then adds it to the feature context.

      Parameters:
      featureContext - the feature context to process and potentially modify
      filter - a predicate to filter which features to consider for addition
    • apply

      public void apply(GeneratorContext generatorContext)
      Description copied from interface: Feature
      If this method is called for a given feature that means the feature was explicitly selected, included by default as a result of DefaultFeature.shouldApply(io.micronaut.starter.options.Options, java.util.Set), or added explicitly by another feature through FeatureContext.addFeature(Feature). At this point the feature list is set and cannot change.
      Specified by:
      apply in interface Feature
      Parameters:
      generatorContext - THe generator context
    • isGroovy

      public boolean isGroovy()
      Specified by:
      isGroovy in interface LanguageFeature
    • shouldApply

      public boolean shouldApply(Options options, Set<Feature> selectedFeatures)
      Description copied from interface: DefaultFeature
      Determines if the feature should be applied to the project. Default features do not need to be concerned if the feature was already selected and therefore is already in the list of selected features. The addition to the set is based on the identity of the feature instance and all features are singletons.
      Specified by:
      shouldApply in interface DefaultFeature
      Parameters:
      options - The options
      selectedFeatures - The features manually selected by the user
      Returns:
      True if the feature should apply