[ 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: dev-unsubscr...@community.apache.org For additional commands, e-mail: dev-h...@community.apache.org