[ 
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

Reply via email to