[
https://issues.apache.org/jira/browse/COMDEV-451?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Bobur Umurzokov updated COMDEV-451:
-----------------------------------
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.
was:
*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.
> Apache APISIX: Java Plugin Runner Improvement
> ---------------------------------------------
>
> Key: COMDEV-451
> URL: https://issues.apache.org/jira/browse/COMDEV-451
> Project: Community Development
> Issue Type: New Feature
> Components: GSoC/Mentoring ideas
> Reporter: Bobur Umurzokov
> Priority: Major
> Labels: APISIX, full-time, gsoc2022
>
> *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.
--
This message was sent by Atlassian Jira
(v8.20.1#820001)
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]