java.lang.Object
io.micronaut.starter.feature.graallanguages.Graalpy
All Implemented Interfaces:
io.micronaut.core.naming.Described, io.micronaut.core.naming.Named, io.micronaut.core.order.Ordered, MavenSpecificFeature, Feature, MinJdkFeature

@Requires(property="micronaut.starter.feature.graalpy.enabled", value="true", defaultValue="true") @Singleton public class Graalpy extends Object implements MinJdkFeature, MavenSpecificFeature
Graalpy feature that adds support for Python using GraalPy within Micronaut projects. Implements MinJdkFeature to specify minimum JDK version and MavenSpecificFeature for Maven build integration.
  • Field Details

  • 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
    • getTitle

      public String getTitle()
      Specified by:
      getTitle in interface Feature
      Returns:
      The title of the feature
    • getDescription

      public String getDescription()
      Specified by:
      getDescription in interface io.micronaut.core.naming.Described
      Specified by:
      getDescription in interface Feature
    • getCategory

      public String getCategory()
      Specified by:
      getCategory in interface Feature
      Returns:
      The Category to which the feature belongs to.
    • 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
    • graalpyMavenPlugin

      protected MavenPlugin graalpyMavenPlugin()
      Creates a Maven plugin for GraalPy. The plugin is configured with the group ID "org.graalvm.python" and artifact ID "graalpy-maven-plugin". The plugin's extension is generated using a Rocker template, which is populated with the list of Python packages returned by pythonPackages().
      Returns:
      a Maven plugin for GraalPy
    • pythonPackages

      protected final List<String> pythonPackages()
    • addDependencies

      protected final void addDependencies(ModuleContext module)
    • getThirdPartyDocumentation

      public String getThirdPartyDocumentation(GeneratorContext generatorContext)
      Specified by:
      getThirdPartyDocumentation in interface Feature
      Parameters:
      generatorContext - Generator Context
      Returns:
      Returns a link to third party. E.g. https://hazelcast.org
    • getFrameworkDocumentation

      public String getFrameworkDocumentation(GeneratorContext generatorContext)
      Specified by:
      getFrameworkDocumentation in interface Feature
      Parameters:
      generatorContext - Generator Context
      Returns:
      Returns a link to Framework documentation about the feature. eg. https://micronaut-projects.github.io/micronaut-cache/latest/guide/index.html#hazelcast
    • minJdk

      public JdkVersion minJdk()
      Specified by:
      minJdk in interface MinJdkFeature
      Returns:
      The mininum JDK this feature requires