Skip to content

Commit

Permalink
Migrate from EE 8 to EE 9 (#393)
Browse files Browse the repository at this point in the history
  • Loading branch information
basil authored Feb 3, 2025
1 parent 0f00735 commit 6440569
Show file tree
Hide file tree
Showing 6 changed files with 20 additions and 20 deletions.
8 changes: 4 additions & 4 deletions src/main/java/io/jenkins/plugins/designlibrary/Links.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import hudson.Extension;
import jenkins.model.ModelObjectWithChildren;
import jenkins.model.ModelObjectWithContextMenu;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.StaplerRequest2;
import org.kohsuke.stapler.StaplerResponse2;

/**
* @author Kohsuke Kawaguchi
Expand All @@ -29,7 +29,7 @@ public Category getCategory() {
/**
* This method is called via AJAX to obtain the context menu for this model object.
*/
public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception {
public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception {
if (false) {
// this implementation is suffice for most ModelObjects. It uses sidepanel.jelly/.groovy to
// generate the context menu
Expand All @@ -49,7 +49,7 @@ public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse respons
}
}

public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception {
public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception {
// You implement this method in much the same way you do doContextMenu
return new ContextMenu()
.add("https://yahoo.com/", "Yahoo")
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -16,17 +16,17 @@ invokingMethod.description.1=As you can see above, one can invoke methods on the
invokingMethod.description.2=If the Java method returns an object value (such as <code>int, String, Collection, Object[], JSONObject</code>, etc.), \
you can use the <code>responseObject()</code> method to evaluate the response into a JavaScript object and use it. \
If the Java method renders more complex HTTP response (for example by writing directly to \
<code>StaplerResponse</code> or returning an <code>HttpResponse</code>), JavaScript can use other <code>Ajax.Response</code> methods to access the full HTTP response.
<code>StaplerResponse2</code> or returning an <code>HttpResponse</code>), JavaScript can use other <code>Ajax.Response</code> methods to access the full HTTP response.
invokingMethod.description.3=The method call uses <code>XmlHttpRequest</code> underneath, \
and it gets eventually routed to the corresponding method call on the exact instance that was exported.
tips=Tips
tips.description.1=Parameters of the server Java method.
tips.description.1.body=The Java method can define arbitrary number of parameters for JavaScript. \
Each parameter is converted from JSON to Java via <code>StaplerRequest.bindJSON</code>, \
Each parameter is converted from JSON to Java via <code>StaplerRequest2.bindJSON</code>, \
so aside from primitive Java data types and typeless <code>JSONObject</code> / <code>JSONArray</code>, \
you can use Stapler databinding to accept typed structured data.
tips.description.1.more=After defining the parameters from JavaScript, you can additionally define parameters that are \
injectable by Stapler, such as <code>StaplerRequest</code> or <code>StaplerResponse</code>.
injectable by Stapler, such as <code>StaplerRequest2</code> or <code>StaplerResponse2</code>.
tips.description.2=Exporting null
tips.description.2.body=If the value attribute of a <code>st:bind</code> tag evaluates to \
<code>null</code>, then the corresponding JavaScript proxy will be <code>null</code>.
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ description.2=Pour exposer une m\u00e9thode d''une classe Java \u00e0 un proxy J
description.3=Ensuite, \u00e0 partir des scripts Jelly, utilisez la balise <code>st:bind</code> pour exporter un objet Java dans un proxy. L''attribut "value" est \u00e9valu\u00e9 vers un objet Java c\u00f4t\u00e9 serveur \u00e0 exporter, et la balise produit une expression JavaScript qui cr\u00e9e un proxy. Dans l''exemple ci-dessous, nous faisons semblant que l''expression <a href="https://commons.apache.org/proper/commons-jexl/">JEXL</a> est \u00e9valu\u00e9e \u00e0 une certaine instance de Foo.
invokingMethod=Invocation de la m\u00e9thode
invokingMethod.description.1=Comme vous pouvez le voir ci-dessus, on peut appeler des m\u00e9thodes sur le proxy cr\u00e9\u00e9es par la balise <code>st:bind</code> . La m\u00e9thode JavaScript prend les arguments que prend la m\u00e9thode Java, et elle peut de fa\u00e7on optionnelle prendre une fonction en tant que param\u00e8tre suppl\u00e9mentaire. Cette derni\u00e8re est utilis\u00e9e comme m\u00e9thode de callback lorsque la valeur retourn\u00e9e est disponible. La m\u00e9thode callback re\u00e7oit un objet Ajax.Response.
invokingMethod.description.2=Si la m\u00e9thode Java retourne une valeur d''objet (comme <code>int, String, Collection, Object[], JSONObject</code>, etc.) , vous pouvez utiliser la m\u00e9thode <code>responseObject()</code> pour \u00e9valuer la r\u00e9ponse dans un objet JavaScript et l''utiliser. Si la m\u00e9thode Java retourne une r\u00e9ponse HTTP plus complexe (par exemple en \u00e9crivant directement dans <code>StaplerResponse</code> ou en renvoyant un <code>HttpResponse</code>), JavaScript peut utiliser d''autres m\u00e9thodes <code>Ajax.Response</code> pour acc\u00e9der \u00e0 la r\u00e9ponse HTTP compl\u00e8te.
invokingMethod.description.2=Si la m\u00e9thode Java retourne une valeur d''objet (comme <code>int, String, Collection, Object[], JSONObject</code>, etc.) , vous pouvez utiliser la m\u00e9thode <code>responseObject()</code> pour \u00e9valuer la r\u00e9ponse dans un objet JavaScript et l''utiliser. Si la m\u00e9thode Java retourne une r\u00e9ponse HTTP plus complexe (par exemple en \u00e9crivant directement dans <code>StaplerResponse2</code> ou en renvoyant un <code>HttpResponse</code>), JavaScript peut utiliser d''autres m\u00e9thodes <code>Ajax.Response</code> pour acc\u00e9der \u00e0 la r\u00e9ponse HTTP compl\u00e8te.
invokingMethod.description.3=L''appel \u00e0 la m\u00e9thode utilise <code>XmlHttpRequest</code> par derri\u00e8re, et cet appel est finalement rout\u00e9 vers l''appel de m\u00e9thode correspondant sur l''instance exacte qui a \u00e9t\u00e9 export\u00e9e.
tips=Astuces
tips.description.1=Param\u00e8tres de la m\u00e9thode Java c\u00f4t\u00e9 serveur
tips.description.1.body=La m\u00e9thode Java peut d\u00e9finir un nombre arbitraire de param\u00e8tres pour JavaScript. Chaque param\u00e8tre est converti depuis JSON vers Java via <code>StaplerRequest.bindJSON</code>, donc en plus des types de donn\u00e9es Java primitifs et de <code>JSONObject</code>/<code>JSONArray</code> non typ\u00e9s, vous pouvez utiliser le couplage de donn\u00e9es Stapler pour accepter les donn\u00e9es structur\u00e9es typ\u00e9es.
tips.description.1.more=Apr\u00e8s avoir d\u00e9fini les param\u00e8tres de JavaScript, vous pouvez \u00e9galement d\u00e9finir des param\u00e8tres qui sont injectables par Stapler, comme <code>StaplerRequest</code> ou <code>StaplerResponse</code>.
tips.description.1.body=La m\u00e9thode Java peut d\u00e9finir un nombre arbitraire de param\u00e8tres pour JavaScript. Chaque param\u00e8tre est converti depuis JSON vers Java via <code>StaplerRequest2.bindJSON</code>, donc en plus des types de donn\u00e9es Java primitifs et de <code>JSONObject</code>/<code>JSONArray</code> non typ\u00e9s, vous pouvez utiliser le couplage de donn\u00e9es Stapler pour accepter les donn\u00e9es structur\u00e9es typ\u00e9es.
tips.description.1.more=Apr\u00e8s avoir d\u00e9fini les param\u00e8tres de JavaScript, vous pouvez \u00e9galement d\u00e9finir des param\u00e8tres qui sont injectables par Stapler, comme <code>StaplerRequest2</code> ou <code>StaplerResponse2</code>.
tips.description.2=Exportation de null
tips.description.2.body=Si l''attribut value d''une balise &lt;st:bind&gt; est \u00e9valu\u00e9 \u00e0 <code>null</code>, alors le proxy JavaScript correspondant sera <code>null</code>.
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ description.2=Para expor um m\u00e9todo de uma classe Java a um procurador JavaS
description.3=Ent\u00e3o a partir de scripts do Jelly, use a etiqueta <code>st:bind</code> para exportar um objeto Java para um procurador. O atributo "valor" \u00e9 avaliado para um objeto Java do lado do servidor a ser exportado e a etiqueta produz uma express\u00e3o JavaScript que cria um procurador. No exemplo abaixo, estamos fingindo que a express\u00e3o <a href="https://commons.apache.org/proper/commons-jexl/">JEXL</a> avalia alguma inst\u00e2ncia de Foo.
invokingMethod=M\u00e9todo de chamada
invokingMethod.description.1=Como voc\u00ea pode ver acima, pode-se invocar m\u00e9todos no procurador criado pela etiqueta <code>st:bind</code>. O m\u00e9todo JavaScript utiliza os argumentos que o m\u00e9todo Java recebe, ent\u00e3o ele pode opcionalmente aceitar uma fun\u00e7\u00e3o como par\u00e2metro adicional, cujo o qual \u00e9 usado como m\u00e9todo de chamada de retorno quando o valor de retorno estiver dispon\u00edvel. O m\u00e9todo de chamada de retorno recebe um objeto Ajax.Response.
invokingMethod.description.2=Se o m\u00e9todo Java retorna um valor de objeto (como <code>int, String, Collection, Object[], JSONObject</code>, etc.), voc\u00ea pode usar o m\u00e9todo <code>responseObject()</code> para avaliar a resposta em um objeto JavaScript e us\u00e1-lo. Se o m\u00e9todo Java renderizar uma resposta HTTP mais complexa (por exemplo, escrevendo diretamente para <code>StaplerResponse</code> ou retornando um <code>HttpResponse</code>), o JavaScript pode usar outros m\u00e9todos do <code>Ajax.Response</code> para acessar a resposta HTTP completa.
invokingMethod.description.2=Se o m\u00e9todo Java retorna um valor de objeto (como <code>int, String, Collection, Object[], JSONObject</code>, etc.), voc\u00ea pode usar o m\u00e9todo <code>responseObject()</code> para avaliar a resposta em um objeto JavaScript e us\u00e1-lo. Se o m\u00e9todo Java renderizar uma resposta HTTP mais complexa (por exemplo, escrevendo diretamente para <code>StaplerResponse2</code> ou retornando um <code>HttpResponse</code>), o JavaScript pode usar outros m\u00e9todos do <code>Ajax.Response</code> para acessar a resposta HTTP completa.
invokingMethod.description.3=O m\u00e9todo de chamada usa <code>XmlHttpRequest</code> nos bastidores e \u00e9 eventualmente encaminhado para a chamada do m\u00e9todo correspondente na inst\u00e2ncia exata exportada.
tips=Dicas
tips.description.1=Par\u00e2metros do m\u00e9todo do servidor Java
tips.description.1.body=O m\u00e9todo Java pode definir um n\u00famero arbitr\u00e1rio de par\u00e2metros para o JavaScript. Cada par\u00e2metro \u00e9 convertido do JSON para Java atrav\u00e9s do <code>StaplerRequest.bindJSON</code>, ent\u00e3o al\u00e9m dos tipos de dados primitivos do Java e <code>JSONObject</code> / <code>JSONArray</code> sem tipagem, voc\u00ea pode usar a amarra\u00e7\u00e3o de dados do Stapler para aceitar dados tipados estruturados.
tips.description.1.more=Ap\u00f3s definir os par\u00e2metros do JavaScript voc\u00ea pode adicionalmente definir par\u00e2metros injet\u00e1veis pelo Stapler, como <code>StaplerRequest</code> ou <code>StaplerResponse</code>.
tips.description.1.body=O m\u00e9todo Java pode definir um n\u00famero arbitr\u00e1rio de par\u00e2metros para o JavaScript. Cada par\u00e2metro \u00e9 convertido do JSON para Java atrav\u00e9s do <code>StaplerRequest2.bindJSON</code>, ent\u00e3o al\u00e9m dos tipos de dados primitivos do Java e <code>JSONObject</code> / <code>JSONArray</code> sem tipagem, voc\u00ea pode usar a amarra\u00e7\u00e3o de dados do Stapler para aceitar dados tipados estruturados.
tips.description.1.more=Ap\u00f3s definir os par\u00e2metros do JavaScript voc\u00ea pode adicionalmente definir par\u00e2metros injet\u00e1veis pelo Stapler, como <code>StaplerRequest2</code> ou <code>StaplerResponse2</code>.
tips.description.2=Exportando nulo
tips.description.2.body=Se o atributo valor de uma etiqueta &lt;st:bind&gt; for avaliado como <code>null</code>, ent\u00e3o o procurador JavaScript correspondente ser\u00e1 <code>null</code>.
Original file line number Diff line number Diff line change
Expand Up @@ -3,11 +3,11 @@ description.2=\u82e5\u8981\u5728 JavaScript \u4ee3\u7406\u4e2d\u66b4\u9732\u4e00
description.3=\u7136\u540e\u4ece Jelly \u811a\u672c\uff0c\u4f7f\u7528 <code>st:bind</code> \u6807\u7b7e\u5bfc\u51fa\u4e00\u4e2a Java \u5bf9\u8c61\u5230\u4ee3\u7406\u5bf9\u8c61\u3002 "value"\u5c5e\u6027\u8bc4\u4f30\u5230\u8981\u5bfc\u51fa\u7684\u670d\u52a1\u5668\u7aefJava \u5bf9\u8c61\uff0c\u6807\u7b7e\u4ea7\u751f\u4e86\u4e00\u4e2a\u521b\u5efa\u4ee3\u7406\u7684JavaScript\u8868\u8fbe\u5f0f\u3002 \u5728\u4e0b\u9762\u7684\u793a\u4f8b\u4e2d\uff0c\u6211\u4eec\u5047\u88c5 <a href="https://commons.apache.org/proper/commons-jexl/">JEXL</a> \u8868\u8fbe\u5f0f\u5bf9\u4e00\u4e9bFoo\u5b9e\u4f8b\u8fdb\u884c\u4e86\u8bc4\u4ef7\u3002
invokingMethod=\u8c03\u7528\u65b9\u5f0f
invokingMethod.description.1=\u6b63\u5982\u60a8\u53ef\u4ee5\u5728\u4e0a\u9762\u770b\u5230\u7684\u90a3\u6837\uff0c\u4eba\u4eec\u53ef\u4ee5\u5728 <code>st:bind</code> \u6807\u7b7e\u6240\u521b\u5efa\u7684\u4ee3\u7406\u4e0a\u8c03\u7528\u65b9\u6cd5\u3002 JavaScript \u65b9\u6cd5\u91c7\u7528\u4e86\u8ba4\u4e3aJava \u65b9\u6cd5\u7684\u53c2\u6570\uff0c\u7136\u540e\u5b83\u53ef\u4ee5\u5c06\u4e00\u4e2a\u51fd\u6570\u4f5c\u4e3a\u4e00\u4e2a\u989d\u5916\u53c2\u6570\uff0c \u5f53\u8fd4\u56de\u503c\u53ef\u7528\u65f6\uff0c\u5b83\u7528\u4f5c\u56de\u8c03\u65b9\u5f0f\u3002 \u56de\u8c03\u65b9\u6cd5\u63a5\u6536\u4e00\u4e2a Ajax.response \u5bf9\u8c61\u3002
invokingMethod.description.2=\u5982\u679cJava \u65b9\u6cd5\u8fd4\u56de\u5bf9\u8c61\u503c (\u5982 <code>int\u3001String\u3001Collection\u3001Object[]\u3001JSONObject</code>\u7b49) \uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528 <code>responseObject()</code> \u65b9\u6cd5\u6765\u8bc4\u4f30\u5bf9JavaScript \u5bf9\u8c61\u7684\u53cd\u5e94\u5e76\u4f7f\u7528\u5b83\u3002 \u5982\u679cJava \u65b9\u6cd5\u8868\u73b0\u66f4\u590d\u6742\u7684 HTTP \u53cd\u5e94(\u4f8b\u5982\u76f4\u63a5\u5199\u5165 <code>StaplerResponse</code> \u6216\u9001\u56de <code>HttpResponse</code>), JavaScript \u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6 <code>Ajax. esponse</code> \u65b9\u6cd5\u5b58\u53d6\u5b8c\u6574\u7684 HTTP \u53cd\u5e94\u3002
invokingMethod.description.2=\u5982\u679cJava \u65b9\u6cd5\u8fd4\u56de\u5bf9\u8c61\u503c (\u5982 <code>int\u3001String\u3001Collection\u3001Object[]\u3001JSONObject</code>\u7b49) \uff0c\u60a8\u53ef\u4ee5\u4f7f\u7528 <code>responseObject()</code> \u65b9\u6cd5\u6765\u8bc4\u4f30\u5bf9JavaScript \u5bf9\u8c61\u7684\u53cd\u5e94\u5e76\u4f7f\u7528\u5b83\u3002 \u5982\u679cJava \u65b9\u6cd5\u8868\u73b0\u66f4\u590d\u6742\u7684 HTTP \u53cd\u5e94(\u4f8b\u5982\u76f4\u63a5\u5199\u5165 <code>StaplerResponse2</code> \u6216\u9001\u56de <code>HttpResponse</code>), JavaScript \u53ef\u4ee5\u4f7f\u7528\u5176\u4ed6 <code>Ajax. esponse</code> \u65b9\u6cd5\u5b58\u53d6\u5b8c\u6574\u7684 HTTP \u53cd\u5e94\u3002
invokingMethod.description.3=\u65b9\u6cd5\u8c03\u7528\u4f7f\u7528 <code>XmlHttpRequest</code> \u4e0b\u9762\uff0c\u5b83\u6700\u7ec8\u88ab\u5b9a\u8def\u7ebf\u7531\u5230\u76f8\u5e94\u7684\u65b9\u6cd5\u8c03\u7528\u5230\u5df2\u8f93\u51fa\u7684\u786e\u5207\u5b9e\u4f8b\u4e0a\u3002
tips=\u63d0\u793a
tips.description.1=\u670d\u52a1\u5668 Java \u65b9\u6cd5\u7684\u53c2\u6570
tips.description.1.body=Java \u65b9\u6cd5\u53ef\u4ee5\u5b9a\u4e49JavaScript\u7684\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570\u3002\u6bcf\u4e2a\u53c2\u6570\u90fd\u4f7f\u7528\n <code>StaplerRequest.bindJSON</code>\u7531 JSON \u8f6c\u6362\u5230 Java, \u9664\u539f\u59cb\u7684 Java \u6570\u636e\u7c7b\u578b\u548c\u65e0\u7c7b\u578b <code>JSONObject</code> / <code>JSONArray</code>, \u60a8\u53ef\u4ee5\u4f7f\u7528 Stapler \u6570\u636e\u7ed1\u5b9a\u6765\u63a5\u53d7\u8f93\u5165\u7684\u7ed3\u6784\u5316\u6570\u636e\u3002
tips.description.1.more=\u5b9a\u4e49\u6765\u81eaJavaScript\u7684\u53c2\u6570\u540e\uff0c\u60a8\u53ef\u4ee5\u53e6\u5916\u5b9a\u4e49Stapler\u53ef\u4ee5\u6ce8\u5165\u7684\u53c2\u6570\u3002 \u4f8b\u5982 <code>StaplerRequest</code> \u6216 <code>StaplerResponse</code>\u3002
tips.description.1.body=Java \u65b9\u6cd5\u53ef\u4ee5\u5b9a\u4e49JavaScript\u7684\u4efb\u610f\u6570\u91cf\u7684\u53c2\u6570\u3002\u6bcf\u4e2a\u53c2\u6570\u90fd\u4f7f\u7528\n <code>StaplerRequest2.bindJSON</code>\u7531 JSON \u8f6c\u6362\u5230 Java, \u9664\u539f\u59cb\u7684 Java \u6570\u636e\u7c7b\u578b\u548c\u65e0\u7c7b\u578b <code>JSONObject</code> / <code>JSONArray</code>, \u60a8\u53ef\u4ee5\u4f7f\u7528 Stapler \u6570\u636e\u7ed1\u5b9a\u6765\u63a5\u53d7\u8f93\u5165\u7684\u7ed3\u6784\u5316\u6570\u636e\u3002
tips.description.1.more=\u5b9a\u4e49\u6765\u81eaJavaScript\u7684\u53c2\u6570\u540e\uff0c\u60a8\u53ef\u4ee5\u53e6\u5916\u5b9a\u4e49Stapler\u53ef\u4ee5\u6ce8\u5165\u7684\u53c2\u6570\u3002 \u4f8b\u5982 <code>StaplerRequest2</code> \u6216 <code>StaplerResponse2</code>\u3002
tips.description.2=\u6b63\u5728\u8f93\u51fanull
tips.description.2.body=\u5982\u679c\u4e00\u4e2a &lt;st:bind&gt; \u6807\u7b7e\u7684\u503c\u5c5e\u6027\u4e3a <code>null</code>, \u90a3\u4e48\u76f8\u5e94\u7684 JavaScript \u4ee3\u7406\u5c06\u4e3a <code>null</code>\u3002
8 changes: 4 additions & 4 deletions src/main/webapp/Links/Links.java
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
import hudson.Extension;
import jenkins.model.ModelObjectWithChildren;
import jenkins.model.ModelObjectWithContextMenu;
import org.kohsuke.stapler.StaplerRequest;
import org.kohsuke.stapler.StaplerResponse;
import org.kohsuke.stapler.StaplerRequest2;
import org.kohsuke.stapler.StaplerResponse2;

/**
* @author Kohsuke Kawaguchi
Expand All @@ -19,7 +19,7 @@ public String getIconFileName() {
/**
* This method is called via AJAX to obtain the context menu for this model object.
*/
public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse response) throws Exception {
public ContextMenu doContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception {
if (false) {
/*
this implementation is sufficient for most ModelObjects. It uses sidepanel.jelly to
Expand All @@ -41,7 +41,7 @@ public ContextMenu doContextMenu(StaplerRequest request, StaplerResponse respons
}
}

public ContextMenu doChildrenContextMenu(StaplerRequest request, StaplerResponse response) throws Exception {
public ContextMenu doChildrenContextMenu(StaplerRequest2 request, StaplerResponse2 response) throws Exception {
/* You implement this method in much the same way you do doContextMenu */
return new ContextMenu()
.add("https://yahoo.com/","Yahoo")
Expand Down

0 comments on commit 6440569

Please sign in to comment.