Uploaded image for project: 'Comdev GSOC'
  1. Comdev GSOC
  2. GSOC-194

Apache APISIX: Java Plugin Runner Improvement

    XMLWordPrintableJSON

Details

    Description

      Background:

       

      At the moment, the Java runner plugin requires you to use an existing template project and change it according to one’s needs.

      Task:

      Improve developer experience on the existing Java plugin runner so that we can attract and increase the number of users from the Java community.

      Limitations:

      • The architecture doesn’t manage multiple plugins. All need to be set in the same project
      • The standard Java unit of deployment is the JAR.
      • The plugin doesn’t allow for other widespread JVM-based languages (e.g., Scala, Kotlin, Clojure, Groovy). Though it would be technically feasible, we would need to change the template’s language

      Requirements:

      The new plugin runner:

      • MUST use the JAR as the unit of deployment
      • MUST not require the usage of a project template
      • MAY require the plugin to follow a certain class hierarchy (i.e., extends JavaPlugin)
      • MAY use a more specific format to enforce a structure
      • MUST allow multiple plugins to be deployed
      • MUST use isolated classloader for each plugin
      • MUST allow any JVM-compatible bytecode to run, whatever the language it was generated from
      • MAY allow hot reloading of Java plugins
      • MAY require a single JAR per plugin (to ease the classpath management of shared libraries)
      • MUST define a minimum JVM version

       

      Difficulty: Normal
      Project size: ~350 hours.

      Attachments

        Activity

          People

            Unassigned Unassigned
            bumurzokov Bobur Umurzokov
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

            Dates

              Created:
              Updated: